LLDP(LLDPLink Layer Discovery Protocol,链路层发现协议)是IEEE 802.1AB中定義的第二层发现协议通过采用LLDP技术,在网络规模迅速扩大时网管系统可以快速掌握二层网络拓扑信息和拓扑变化信息。
为了方便WLAN网络嘚维护监控网管需要展示有线无线一体化的拓扑关系,即展示AP的邻居关系(包括AP以及AP直连的交换机)通过LLDP标准协议,AP将本地LLDP信息通过標准的LLDP TLV(Type Length
Value类型长度值)定期向邻居发送组播报文。如果邻居AP也使能了LLDP功能则双方建立邻居关系,如果AP上行口连接的是交换机(具备LLDP功能的设备)同时该交换机使能了LLDP功能,则交换机也将是AP的邻居AP将向交换机发送LLDP信息,同时接收交换机发送的LLDP组播报文网管通过SNMP协议獲取AP的LLDP信息,维护拓扑信息
LLDP协议规定设备的每个接口上都有标准的SNMP(Simple Network Management Protocol)MIB库,存储着本地状态信息(例如设备ID、接口ID、管理地址等信息)并且设备可以向其邻居节点发送本地状态信息及状态更新的信息。邻居节点将接收到的信息存储在标准的SNMP MIB库中以便网管系统提取
网管系统从管理范围内的所有设备的本地MIB和远端MIB处收集拓扑信息,并分析出当前网络第二层的拓扑结构以及拓扑结构中存在的问题
企业或运營商通过该功能可以清楚的了解整个网络的拓扑结构,给设备管理和故障排查带来便利并节省大量人力物力。
如图 1所示是以Ethernet II格式封装嘚LLDP报文,其中各字段的含义如下:
|
目的MAC地址为固定的组播MAC地址0x0E
|
源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址否則使用设备桥MAC地址)
|
|
|
|
如图 2所示,是以SNAP格式封装的LLDP报文其中各字段的含义如下:
|
目的MAC地址,为固定的组播MAC地址0x0E
|
源MAC地址为端口MAC地址或设备橋MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)
|
|
|
|
LLDPDU就是封装在LLDP报文数据部分的数据单元。在组成LLDPDU之前设备先将本地信息封装成TLV格式,再由若干个TLV组合成一个LLDPDU封装在LLDP报文的数据部分进行传送
基本TLV是网络设备管理基础的一组TLV,802.1组织定义TLV、802.3组织定义TLV和LLDP-MED TLV则是由標准组织或其他机构定义的TLV用于增强对网络设备的管理,可根据实际需要选择是否在LLDPDU中发送
在基本TLV中,有几种TLV对于实现LLDP功能来说是必選的即必须在LLDPDU中发布,如表3所示
|
|
发送设备的桥MAC地址
|
标识LLDPDU发送端的端口。当设备不发送MED TLV时内容为端口名称;当设备发送MED TLV时,内容为端ロ的MAC地址没有端口MAC时使用桥MAC
|
本设备信息在邻居设备上的存活时间
|
以太网端口的描述字符串
|
|
|
系统的主要功能以及已使能的功能项
|
管理地址,以及对应的接口号和OID(Object Identifier对象标识)
|
LLDP-MED TLV为VoIP(Voice over IP,在IP上传送语音)提供了许多高级的应用包括基本配置、网络策略配置、地址信息以及目录管理等,满足了语音设备的不同生产厂商在成本有效、易部署、易管理等方面的要求并解决了在以太网中部署语音设备的问题,为语音設备的生产者、销售者以及使用者提供了便利LLDP-MED TLV的内容如表 6所示。
|
|
端口的VLAN ID、支持的应用(如语音和视频)、应用优先级以及使用策略等
|
|
|
|
|
|
|
|
MED设備的资产标识符以便目录管理和资产跟踪
|
位置标识信息,供其它设备在基于位置的应用中使用
|
MIB用于管理通过LLDP收到的信息数据库
|
用来保存本地设备信息。包括设备ID、接口ID、系统名称、系统描述、接口描述、设备能力、网络管理地址.
|
用来保存相邻设备的信息包括设备ID、接ロID、系统名称、系统描述、接口描述、设备能力、网络管理地址.
|
LLDP代理用于管理接口的LLDP
操作,主要完成下列任务:
- 维护LLDP本地MIB的信息
- 在本地狀态发生变化的情况下,提取LLDP本地MIB信息并向邻居节点发送在本地状态没有变化的情况下,按照一定的周期提取
LLDP本地MIB信息向邻居节点发送
- 识别并处理收到的LLDP报文。
- LLDP本地MIB或LLDP远端MIB的状态发生变化的情况下向网管发送LLDP告警。
管理地址是供网络管理系统标识网络设备并进行管理嘚地址管理地址可以明确地标识一台设备,从而有利于网络拓扑的绘制便于网络管理。管理地址被封装在LLDP报文的Management Address TLV中向外发布
LLDP告警是茬LLDP本地MIB库或远端MIB库发生变化的情况下,设备向网管系统发送的更新拓扑的提示信息触发告警的原因为:
- 全局LLDP使能的状态变化。
- 邻居信息發生变化包括添加删除老化邻居。
LLDP有以下四种工作模式:
- TxRx:既发送也接收LLDP报文
- Tx:只发送不接收LLDP报文。
- Rx:只接收不发送LLDP报文
- Disable:既不发送也不接收LLDP报文。
当端口的LLDP工作模式发生变化时端口将对协议状态机进行初始化操作。为了避免端口工作模式频繁改变而导致端口不断執行初始化操作可配置端口初始化延迟时间,当端口工作模式改变时延迟一段时间再执行初始化操作
LLDP报文的发送机制
当端口工作在TxRx或Tx模式时,设备会周期性地向邻居设备发送LLDP报文如果设备的本地配置发生变化则立即发送LLDP报文,以将本地信息的变化情况尽快通知给邻居設备但为了防止本地信息的频繁变化而引起LLDP报文的大量发送,每发送一个LLDP报文后都需延迟一段时间后再继续发送下一个报文
当设备的笁作模式由Disable/Rx切换为TxRx/Tx,或者发现了新的邻居设备(即收到一个新的LLDP报文且本地尚未保存发送该报文设备的信息)时该设备将自动启用快速發送机制,即将LLDP报文的发送周期缩短为1秒并连续发送指定数量的LLDP报文后再恢复为正常的发送周期。
LLDP报文的接收机制
当端口工作在TxRx或Rx模式時设备会对收到的LLDP报文及其携带的TLV进行有效性检查,通过检查后再将邻居信息保存到本地并根据TTL(Time To Live,生存时间) TLV中TTL的值来设置邻居信息在本地设备上的老化时间若该值为零,则立刻老化该邻居信息
LLDP是一个二层拓扑结构发现协议,其基本原理是:网络中设备向其邻接設备发出其状态信息的通知并且所有设备的每个端口上都存储着自己的信息,如果本地设备有状态发生变化还可以向与它直接连接的菦邻设备发送更新的信息,近邻的设备会将信息存储在标准的SNMP MIB库网络管理系统可以从SNMP
MIB库查询出当前第二层的连接情况。需要注意的是LLDP呮是一个远端设备状态信息发现协议,它并不能完成网络设备配置和端口控制等功能 为了更好的说明LLDP协议实现原理,我们首先看一下LLDP
的框架结构图如图4所示
我们可以看到图中右边出现的四个MIB库:
同时,它接收远端设备发过来的LLDP帧来更新LLDP remote system MIB即LLDP远端系统MIB库。这样此设备会通过所有连接到相邻设备上的接口,来更新或者维护自己的远端LLDP
系统MIB库通过这个MIB库,就很清楚的知道了自己相邻的设备
的信息包括连接的是远方设备的哪个接口,连接的远端设备的桥
MAC地址等等整个LLDP模块的收发信息,都是通过MIB来组织的其基本实现原理就是这样。总的來说LLDP
协议需要完成的工作主要有以下几个方面:
- 初始化并维护本地 MIB库中的信息。
- 从本地MIB库中提取信息并将信息封装到LLDP帧中,以一定的時间间隔或者当设备状态发生变化时将LLDP帧发送出去,通告邻接设备
- 对收到的LLDP帧进行确认和处理。
- 通过收到的LLDP帧维护远端设备LLDP MIB信息库
拓扑发现过程中,适当调整LLDP参数能够及时有效地发现拓扑结构并且减少资源的浪费。LLDP参数包括:
- 发送LLDP报文的周期
- 发送LLDP报文的延迟时间
- 本哋信息在邻居节点中保持的时间倍数
- 接口LLDP功能重新使能的延迟时间发送
- LLDP告警的延迟时间
发送LLDP报文的周期
设备状态没有变化的情况下设备周期性的向邻居节点发送LLDP报文,该间隔时间称为发送LLDP报文的周期 配置该周期之后,设备上每一个使能LLDP功能的接口都以该间隔为周期向邻居节点发送LLDP报文但是各个接口发送报文的时间点可以不一致。通过调整该参数能够调整网络拓扑的发现速率
需要根据网络负载适当调節该参数:
- 取值大,能够减少LLDP报文交互频率从而节省系统资源。但是取值过大会导致设备状态不能及时地通知到邻居节点从而影响网絡拓扑结构的及时发现。
- 取值小能够增加本地状态信息向邻居节点发送的频率,从而能够及时发现网络拓扑结构但是取值过小会导致LLDP報文交互过于频繁,从而增加系统的负担造成资源浪费.
发送LLDP报文的延迟时间
设备状态发生变化的情况下,AP会立即向邻居节点发送LLDP报文並启动定时器。若在延迟时间内设备的状态发生变化AP不会立即发送LDP报文;直到定时器超时后,AP才会将当前设备的最新状态发送给邻居节點并再次启动定时器。若在延迟时间内设备的状态没有发生变化AP会在下一个周期向邻居节点发送LLDP报文。
当设备的状态频繁发生变化的凊况下增加该参数取值能够减少
LLDP模块向邻居节点发送信息的频率。同时需要根据网络负载适当调节该参数:
本地信息在邻居节点中保持的时间倍数
消息保持时间的倍数用于计算发送的LLDP报文在邻居节点中保存的有效时间通过修改该參数的取值能够调整本地设备的信息在邻居节点中储存的有效时间。邻居节点接收到报文后用这个有效时间更新其邻居节点(即发送端)的信息老化时间。
消息保持有效时间计算公式是:
- interval代表设备向邻居节点发送LLDP报文的周期
- hold-multiplier代表设备消息在邻居节点中保持的倍数。
功能偅新使能的延迟时间
通过命令手工切换接口的LLDP功能为使能状态时如果配置了
LLDP功能重新使能的延迟时间,AP会等待一段时间后再将状态变囮的消息通知邻居节点。通过该参数可以防止由于LLDP
功能状态频繁切换导致邻居节点拓扑振荡。
丢弃邻居节点数 配置LLDP告警延迟时间后每┅个使能LLDP
功能的接口都以该值为最小延迟时间向网管系统发送邻居信息变化告警,但是各个接口发送告警的时间点可以不一致当邻居
信息频繁发生变化的时候,延长该延迟时间来减少设备频繁向网管系统发送信息以达到抑制拓扑振荡目的。