欢迎user
目前,网络设备的种类日益繁多且各自的配置错综复杂,为了使不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息,需要有一个标准的信息交流平台。
LLDP(Link Layer Discovery Protocol,链路层发现协议)就是在这样的背景下产生的,它提供了一种标准的链路层发现方式,可以将本端设备的的主要能力、管理地址、设备标识、接口标识等信息组织成不同的TLV(Type/Length/Value,类型/长度/值),并封装在LLDPDU(Link Layer Discovery Protocol Data Unit,链路层发现协议数据单元)中发布给与自己直连的邻居,邻居收到这些信息后将其以标准MIB(Management Information Base,管理信息库)的形式保存起来,以供网络管理系统查询及判断链路的通信状况。
封装有LLDPDU的报文称为LLDP报文,其封装格式有两种:Ethernet II和SNAP(Subnetwork Access Protocol,子网访问协议)。
(1) Ethernet II格式封装的LLDP报文
图 1 Ethernet II格式封装的LLDP报文
如图 1所示,是以Ethernet II格式封装的LLDP报文,其中各字段的含义如下:
l Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
l Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)。
l Type:报文类型,为0x88CC。
l Data:数据,为LLDPDU。
l FCS:帧检验序列。
(2) SNAP格式封装的LLDP报文
图 2 SNAP格式封装的LLDP报文
如图 2所示,是以SNAP格式封装的LLDP报文,其中各字段的含义如下:
l Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
l Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)。
l Type:报文类型,为0xAAAA-0300-0000-88CC。
l Data:数据,为LLDPDU。
l FCS:帧检验序列。
LLDPDU就是封装在LLDP报文数据部分的数据单元。在组成LLDPDU之前,设备先将本地信息封装成TLV格式,再由若干个TLV组合成一个LLDPDU封装在LLDP报文的数据部分进行传送。
如图 3所示,每个LLDPDU共可携带28种TLV,其中深蓝色的Chasis ID TLV、Port ID TLV、TTL TLV和End TLV这四种是必须携带的,其余的TLV则为可选携带。
TLV是组成LLDPDU的单元,每个TLV都代表一个信息。LLDP可以封装的TLV包括基本TLV、802.1组织定义TLV、802.3组织定义TLV和LLDP-MED(Media Endpoint Discovery,媒体终端发现) TLV。
基本TLV是网络设备管理基础的一组TLV,802.1组织定义TLV、802.3组织定义TLV和LLDP-MED TLV则是由标准组织或其他机构定义的TLV,用于增强对网络设备的管理,可根据实际需要选择是否在LLDPDU中发送。
(1) 基本TLV
在基本TLV中,有几种TLV对于实现LLDP功能来说是必选的,即必须在LLDPDU中发布,如表 1所示。
TLV名称 | 说明 | 是否必须发布 |
End of LLDPDU | 标识LLDPDU结束 | 是 |
Chassis ID | 发送设备的桥MAC地址 | 是 |
Port ID | 标识LLDPDU发送端的端口。当设备不发送MED TLV时,内容为端口名称;当设备发送MED TLV时,内容为端口的MAC地址,没有端口MAC时使用桥MAC | 是 |
Time To Live | 本设备信息在邻居设备上的存活时间 | 是 |
Port Description | 以太网端口的描述字符串 | 否 |
System Name | 设备的名称 | 否 |
System Description | 系统描述 | 否 |
System Capabilities | 系统的主要功能以及已使能的功能项 | 否 |
Management Address | 管理地址,以及对应的接口号和OID(Object Identifier,对象标识) | 否 |
(2) 802.1组织定义TLV
IEEE 802.1组织定义TLV的内容如表 2所示。
表 2 IEEE 802.1组织定义的TLV
TLV名称 | 说明 |
Port VLAN ID | 端口的VLAN ID |
Port And Protocol VLAN ID | 端口的协议VLAN ID |
VLAN Name | 端口VLAN的名称 |
Protocol Identity | 端口支持的协议类型 |
(3) 802.3组织定义TLV
IEEE 802.3组织定义TLV的内容如表 3所示。
表 3 IEEE 802.3组织定义的TLV
TLV名称 | 说明 |
MAC/PHY Configuration/Status | 端口的速率和双工状态、是否支持端口速率自动协商、是否已使能自动协商功能以及当前的速率和双工状态 |
Power Via MDI | 端口的供电能力 |
Link Aggregation | 端口是否支持链路聚合以及是否已使能链路聚合 |
Maximum Frame Size | 端口支持的最大帧长度,取端口配置的MTU(Max Transmission Unit,最大传输单元) |
(4) LLDP-MED TLV
LLDP-MED TLV为VoIP(Voice over IP,在IP上传送语音)提供了许多高级的应用,包括基本配置、网络策略配置、地址信息以及目录管理等,满足了语音设备的不同生产厂商在成本有效、易部署、易管理等方面的要求,并解决了在以太网中部署语音设备的问题,为语音设备的生产者、销售者以及使用者提供了便利。LLDP-MED TLV的内容如表 4所示。
TLV名称 | 说明 |
LLDP-MED Capabilities | 当前设备的MED设备类型以及在LLDPDU中可封装的LLDP-MED TLV类型 |
Network Policy | 端口的VLAN ID、支持的应用(如语音和视频)、应用优先级以及使用策略等 |
Extended Power-via-MDI | 当前设备的供电能力 |
Hardware Revision | MED设备的硬件版本 |
Firmware Revision | MED设备的固件版本 |
Software Revision | MED设备的软件版本 |
Serial Number | MED设备的序列号 |
Manufacturer Name | MED设备的制造厂商 |
Model Name | MED设备的模块名 |
Asset ID | MED设备的资产标识符,以便目录管理和资产跟踪 |
Location Identification | 位置标识信息,供其它设备在基于位置的应用中使用 |
管理地址是供网络管理系统标识网络设备并进行管理的地址。管理地址可以明确地标识一台设备,从而有利于网络拓扑的绘制,便于网络管理。管理地址被封装在LLDP报文的Management Address TLV中向外发布。
LLDP有以下四种工作模式:
l TxRx:既发送也接收LLDP报文。
l Tx:只发送不接收LLDP报文。
l Rx:只接收不发送LLDP报文。
l Disable:既不发送也不接收LLDP报文。
当端口的LLDP工作模式发生变化时,端口将对协议状态机进行初始化操作。为了避免端口工作模式频繁改变而导致端口不断执行初始化操作,可配置端口初始化延迟时间,当端口工作模式改变时延迟一段时间再执行初始化操作。
当端口工作在TxRx或Tx模式时,设备会周期性地向邻居设备发送LLDP报文。如果设备的本地配置发生变化则立即发送LLDP报文,以将本地信息的变化情况尽快通知给邻居设备。但为了防止本地信息的频繁变化而引起LLDP报文的大量发送,每发送一个LLDP报文后都需延迟一段时间后再继续发送下一个报文。
当设备的工作模式由Disable/Rx切换为TxRx/Tx,或者发现了新的邻居设备(即收到一个新的LLDP报文且本地尚未保存发送该报文设备的信息)时,该设备将自动启用快速发送机制,即将LLDP报文的发送周期缩短为1秒,并连续发送指定数量的LLDP报文后再恢复为正常的发送周期。
当端口工作在TxRx或Rx模式时,设备会对收到的LLDP报文及其携带的TLV进行有效性检查,通过检查后再将邻居信息保存到本地,并根据TTL(Time To Live,生存时间) TLV中TTL的值来设置邻居信息在本地设备上的老化时间,若该值为零,则立刻老化该邻居信息。