LLDP

LLDP(Link Layer Discovery Protocol)是一种用于掌握网络拓扑及变化的协议,其可用于无操作系统的硬件集成阶段,通过包含配置Bonding、vSwitch卸载卡等在内的物理网口,在交换机、AP、服务器网口等间传输LLDP报文,从而维护拓扑信息。

每个设备接口均有MIB(Management Information Base),其包括设备ID、接口ID、系统名称、系统描述、接口描述、设备能力、网络管理地址。local MIB记录本地信息,remote MIB记录相邻设备信息,通过LLDP Agent管理接口的LLDP操作,如表1所示。当本地状态变化或接收的LLDP报文变化时,将会修改MIB,代理向网管系统发送更新拓扑信息。

表1 LLDP报文操作

名称

描述

TxRx

既发送也接收LLDP报文

Tx

只发送不接收LLDP报文

Rx

只接收不发送LLDP报文

Disable

既不发送也不接收LLDP报文

模式包含Tx时,若MIB无变化会周期性向邻近节点组播,有变化会立即发送,但依据interval与delay按一定规则设定发送间隔。

模式包含Rx时,设备对所收到LLDP报文进行检查,网管系统进行提取分析。

LLDP帧格式

LLDP帧格式定义了设备如何通告自己的存在和连接信息。LLDP帧是直接封装在以太网帧中的,以太网帧的类型字段被设置为0x88CC,以标识这是一个LLDP帧。

LLDP帧格式如LLDP所示。

图1 LLDP帧格式

LLDP帧包含的字段含义如下:

  1. 以太网帧头部:LLDP帧是以太网帧的一种类型,因此包含标准的以太网帧头部,包括目的MAC地址、源MAC地址和长度字段等。
  2. LLDP数据单元(LLDPDU):LLDP数据单元是LLDP帧的核心部分,所有要发送的设备配置信息都是封装在LLDPDU中。其基本信息单元是TLV(Type-Length-Value),其中T代表信息的类型,TYPE;L代表信息的长度,LENGTH;V是代表信息的值,也就是真正所要传输的内容,VALUE。LLDPDU主要由以下几个字段组成:
    • Chassis ID TLV:标识设备的唯一ID,可以是MAC地址、本地端口号等。
    • Port ID TLV:标识端口的唯一ID,通常是端口号或名称。
    • Time to Live TLV:LLDP帧在网络中存活的时间,防止信息在网络中无限循环。
    • Optional TLVs:可选的TLV字段,包括系统名称、系统描述、端口描述等。
  3. LLDP帧结束标志:LLDP帧以一种特殊的TLV结尾,称为End of LLDPDU TLV,标志着LLDPDU的结束。
    当端口的状态发生改变(例如去使能LLDP或者端口shut down)时,端口会向邻接设备发送一个LLDPDU,其中Time to Live TLV中的TTL=0,这个报文就是shutdown报文。所以End of LLDPDU TLV只有类型和长度,没有TLV information string字段,其类型值Type为0,占7bit;长度值为0,占9bit。
    图2 End of LLDPDU TLV格式

LLDPDU数据单元的组成字段介绍如下:

LLDP参数

在LLDP拓扑发现的过程中,适当调整LLDP参数可以及时有效地发现拓扑结构,减少资源的浪费。具体LLDP参数如表2所示。

表2 LLDP参数

名称

描述

发送LLDP报文的周期

设备状态无变化时周期性向邻居节点发送LLDP报文的间隔时间。

发送LLDP报文的延迟时间

设备状态发生变化时,所推延向邻居节点发送LLDP报文的时间。

本地信息在邻居节点中保持的时间倍数

用于计算发送的LLDP报文在邻居节点中保存的有效时间。

接口LLDP功能重新使能的延迟时间

与报文延迟时间类似,聚焦于手工切换接口的使能状态下。

发送LLDP告警的延迟时间

使能LLDP告警时,远端设备向网管系统发送LLDP告警的最小延迟时间。

以上参数均需根据网络负载进行调解,从LLDP报文交互频率出发,关注不过于频繁交互以增加系统负担的同时尽可能及时地发现网络拓扑结构,从而在性能与开销中达到折中。