文章目录
- LLDP协议(链路层链路发现协议)
- TLV
- LLDPDU
- LLDP工作机制
- LLDP 报文
- ethernet II
- SNAP
LLDP协议(链路层链路发现协议)
随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息,LLDP协议(Link Layer Discovery Protocol,链路层发现协议)就是用于这个目的的协议。
LLDP协议使得接入网络的一台设备可以将本端的设备管理的地址、设备标识、接口标识等构成不同的TLV(Type/Length/Value,类型/长度/值)将其**封装在LLDPDU(Link Layer Discovery Protocol Data Unit,链路层发现协议数据单元)发送给接入同一个局域网络的其它设备。当一个设备从网络中接收到其它设备的这些信息时,它就将这些信息以MIB(Management Information Base,管理信息库)**的形式存储起来,以供网络管理系统查询及判断链路的通信状况。
LLDP的实体主要维护了两个MIB库,一个 local system MIB,一个remote system MIB;一个用于维护本地相关的设备MIB信息,一个用于维护远端设备MIB信息。
LLDP信息的通告以及接收处理不受端口的STP状态的影响
TLV
TLV是组成LLDPDU的最小单元,表示一个对象的类型、长度和信息。每个TLV代表设备的一种信息,例如设备ID、接口ID、管理地址等都各自对应Chassis ID TLV、Port ID TLV、Management Address TLV等固定的TLV。
- Type:表示TLV的类型,它占7个bits。每个TLV的类型值不同,比如End of LLDPDU TLV的类型值为0,Chassis ID TLV的类型值为1等。
- information string length:表示TLV内容的长度,它占9个bit。
- information string:表示TLV的内容,最大支持511bytes长度的内容
LLDPDU
组成LLDPDU之前,设备先将本地信息封装成TLV(Type-Length-Value)格式,再由若干个TLV组合成一个LLDPDU封装在LLDP报文的数据部分进行传送。
LLDP协议规定每个LLDPDU共可携带28种TLV,且每个LLDPDU固定以Chassis ID TLV、Port ID TLV和Time to Live TLV开始,以End of LLDPDU TLV为结束,这四个 TLV为必选的TLV,其他则为可选TLV。
LLDP工作机制
LLDP是一个用于信息通告和获取的协议,但是需要注意的一点是,LLDP发送的信息通告不需要确认,不能发送一个请求来请求获取某些信息,也就是说LLDP是一个单向协议,只有主动通告一种工作方式,无需确认,不能查询、请求(比如像ARP协议那样请求某个IP的MAC地址)。
LLDP主要完成如下工作:
- 初始化并维护本地MIB 库中的信息。
- 从本地MIB 库中提取信息,并将信息封装到LLDP 帧中。LLDP帧的发送有两种触发方式,一是定时器到期触发,一是设备状态发生了变化触发。
- 识别并处理接收到的LLDPDU帧
- 维护远端设备LLDP MIB 信息库。
- 当本地或远端设备MIB信息库中有信息发生变化时,发出通告事件。
LLDP 报文
LLDP报文封装有两种格式,一是ethernet II,另外一个是SNAP。
ethernet II
- Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
- Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)。
- Type:报文类型,为0x88CC。
- Data:数据,为LLDPDU。
- FCS:帧检验序列。
SNAP
- Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
- Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)。
- Type:报文类型,为0xAAAA-0300-0000-88CC。
- Data:数据,为LLDPDU。
- FCS:帧检验序列