一、简介
LLDP,即链路层发现协议(Link Layer Discovery Protocol),是一种与厂商无关的网络协议,用于发现直接相连的设备、设备类型、数量、端口号等信息。它是标准的以太网物理层协议,于2001年被IEEE 802.1AB标准化。
二、消息格式
LLDP协议通过发送和接收LLDP数据单元来实现设备之间的通信。LLDP数据单元由类型、长度、值组成,格式如下:
┌────┬───────┬────┬───────┬────┬───────┐ │头部 │ TLV1 │ TLV2 │ TLV3 │ 尾部 │ └────┴───────┴────┴───────┴────┴───────┘
其中:
- 头部:包含参数如版本、长度等。
- TLV:即type、length、value,包含四个部分:
- type:描述信息的类型,占用7个比特位,最多定义255种。例如,邻居设备的端口ID为2的时候TLP的type值为2;
- length:描述type字段后面长度,占用9个比特位,最多支持511字节;
- value:具体描述信息,占据(type+length)个字节;
- 尾部:占用0个字节,其目的是帮助接收者正确解读LLDPDU。
三、发送流程
发送LLDP数据单元的主机,需要执行以下操作:
- 设置LLDP报文头的长度字段。
- 将端口的MAC地址(即源MAC地址)作为LLDP报文的源MAC地址。
- 逐个添加需要发送的TLV类型。
- 在LLDP报文尾部添加一个空的TLV,以帮助接收方识别LLDP帧结束。
- 设置以太网帧的目标MAC地址为LLDP多播地址 01:80:c2:00:00:0e(交叉域多播地址)。
- 通过选定的物理层介质(例如,有线或无线)传输该帧,以便其到达邻接交换机或直接连接的设备。
图示如下:
┌──────────────────────────┐ │ Ethernet II │ ├───────────┬──────────────┤ │LLDP头部 │ TLV1 │ ├───────────┼──────────────┤ │TLV2 │ TLV3 │ ├───────────┼────────────────┤ │ │ TLVn │ 尾部 │ └───────────┴────────────────┘
四、接收流程
接收LLDP数据单元的主机,需要执行以下操作:
- 解析以太网帧,以识别LLDP帧。
- 验证LLDP帧头,以确定它的长度是否正确。
- 查找源MAC地址,用于确定LLDP报文源。
- 处理每个TLV类型的值,以确定是否与其他LLDP帧有冲突。
五、应用场景
LLDP协议常用于以下场景:
- 拓扑发现:通过LLDP协议,可以发现与自己直接相连的交换机及设备的信息,从而了解整个网络拓扑结构。
- 伺服系统识别:LLDP协议可以帮助伺服系统识别邻居的信息和端口配置,从而更加智能地管理网络资源。
- 安全控制:LLDP协议可以提供设备之间必要的信息,以实现安全控制和网络监控。
六、总结
LLDP协议是一种典型的链路层发现协议,主要用于发现直接相连的设备、设备类型、数量、端口号等信息,具有良好的跨平台兼容性和零配置简便性。在实际应用中,LLDP协议经常作为网络管理中的一个重要组成部分,应被广泛关注和使用。