LLDP工作原理 - kummer话你知

LLDP解决什么问题

LLDP(Link Layer Discovery Protocol,链路层发现协议),它提供了一种标准的链路层发现方式,可以将本端设备的的主要能力、管理地址、设备标识、接口标识等信息组织成不同的TLV(Type/Length/Value,类型/长度/值),并封装在LLDPDU(Link Layer Discovery Protocol Data Unit,链路层发现协议数据单元)中发布给与自己直连的邻居,邻居收到这些信息后将其以标准MIB(Management Information Base,管理信息库)的形式保存起来,以供网络管理系统查询及判断链路的通信状况。

总的来说,LLDP解决了及个主要问题:
1. 了解网络拓扑:
在一个大型网络中,为了方便管理员管理,需要了解整个网络的拓扑结构,包括:整个网络中有多少台设备,每一台设备有多少接口,设备与设备之间是怎样连接的。
2. 诊断网络故障:
当网络链路出现故障时,更方便快捷地获得链路的通信状况,根据链路状
况可以迅速地找到链路故障所在,省去人工排查的麻烦及效率低下。
3. VOIP中的应用:
可以方便在VoIP环境中,以标准方式部署和配置媒体终端设备,如IP电话。

本地MIB和远端MIB
LLDP协议规定设备的每个接口上都有标准的SNMP(Simple Network Management
Protocol)MIB库,存储着本地状态信息(例如设备ID、接口ID、管理地址等信息),并且设备可以向其邻居节点发送本地状态信息及状态更新的信息。邻居节点将接收到的信息存储在标准的SNMP MIB库中以便网管系统提取。

协议工作机制

LLDP工作在二层,其模型层次如下:

LLDP工作原理 - kummer话你知_第1张图片
LLDP七层模型中的位置

LLDP工作原理非常简单,通过周期性广播自己的设备和链路信息,让邻居和网管了解本设备的信息,具体如下:

LLDP(Link Layer Discovery Protocol,链路层发现协议)是802.1ab中定义的链路层协议,它将本地设备的信息组织成TLV(Type/Length/Value,类型/长度/值)封装在LLDPDU(Link Layer Discovery Protocol Data Unit,链路层发现协议数据单元)中发送给直连的邻居,同时也把从邻居接收的LLDPDU 以标准MIB(Management Information Base,管理信息库)的形式保存起来。通过LLDP,设备可以保存和管理自己以及直连邻居设备的信息,供网络管理系统查询和判断链路的通信状况。LLDP不会配置也不会控制网络元素或流量,它只是报告第二层的配置。802.1ab中的另一个内容是使网络管理软件利用LLDP所提供的信息去发现某些第二层的矛盾之处。

协议工作细节1-协议报文的收发

LLDP 的接口有以下四种工作模式:

  • TxRx:既发送也接收LLDPDU
  • Tx:只发送不接收LLDPDU
  • Rx:只接收不发送LLDPDU
  • Disable:既不发送也不接收LLDPDU

LLDP报文的发送:

  1. 周期发送:当端口工作在TxRx 或Tx 模式时,将按照指定的时间间隔周期性的向邻居设备发送LLDPDU。
  1. 轮询变更:当本地配置发生变化时,为了将本地信息的变更情况尽快通知邻居设备,需要在该端口开启轮询功能并配置轮询周期,当轮询时间到时,将立即发送LLDPDU。如果没有开启轮询功能,则本地配置变化不会立即发送LLDPDU,直到按发送周期发送下一个LLDPDU。为了防止本地信息频繁变化引起大量发送LLDPDU,每发送一个LLDPDU 都需要延迟等待一段时间,才能继续发送下一个LLDPDU。
  2. 快速发送:当本端设备的LLDP相关的某些配置(如:holdtime,选择发布的TLV种类)发生变化,或者开启轮询功能后轮询机制检查到本端系统LLDP关心配置信息变化时,为了让其它设备尽快发现本设备的变化,将启用快速发送机制,即立即连续发送指定数量(3个)的LLDPDU 后再恢复为正常的发送周期。
  3. 正常关闭:当设备全局关闭LLDP或者启用LLDP的端口执行shutdown、加入汇聚组、关闭LLDP使能操作,以及执行系统reload时,为了让邻居知道本端设备关闭LLDP的状况,需要连续发送3个TTL等于零的LLDPDU。

LLDP报文的接收:

  1. 学习邻居信息:当端口工作在TxRx 或Rx 模式时,将对收到的LLDPDU 及其携带的TLV 进行有效性检查。通过有效性检查后,将邻居信息保存到本地设备
  1. 老化过时信息:并根据LLDPDU 携带的TTL(Time To Live,老化时间)值设置邻居信息在本地设备的老化时间,如果接收到的LLDPDU 中的TTL 值等于零,将立刻老化掉该邻居信息。 可通过配置holdtime值来设置本地信息在邻居设备上的老化时间,默认值为120秒。Holdtime的取值范围最大为65535秒。

协议工作细节2-协议报文的内容

LLDP报文格式有两种:Ethernet II和SNAP(Subnetwork Access Protocol,子网访问协议)。

LLDP工作原理 - kummer话你知_第2张图片
SNAP报文格式
LLDP工作原理 - kummer话你知_第3张图片
EthernetII报文格式

其实两种报文格式相差无几:

  • Destination MAC address:目的 MAC 地址,为固定的组播 MAC 地址 0x0180-C200-000E。
  • Source MAC address:源 MAC 地址,为端口 MAC 地址或设备桥 MAC 地址(如果有端口地址则使用端口 MAC 地址,否则使用设备桥 MAC 地址)。
  • Type: 0x88CC(EthernetII) or 0xAAAA-0300-0000-88CC(SNAP)。
  • LLDPDU:LLDP数据,是一组TLV,每个 TLV 都代表一个信息,这些TLV包括:


    LLDP工作原理 - kummer话你知_第4张图片
    基本TLV
LLDP工作原理 - kummer话你知_第5张图片
802.1 TLV
LLDP工作原理 - kummer话你知_第6张图片
802.3TLV
LLDP工作原理 - kummer话你知_第7张图片
LLDP-MED TLV为VoIP业务提供支持

如何利用LLDP发现网络拓扑

网络拓扑的发现是一个经典的图的遍历问题,具体的过程如下:

  1. 网络拓扑发现从一个种子节点开始,通过读取该节点的LLDP信息,获得他是所有邻居节点,并把它加入等待扫描节点队列
  1. 然后从该等待扫描队列中取出一个节点,获取它的所有邻居节点,并将新发现的节点加入等待扫描队列。
  2. 重复该过程,直到所有节点都被发现。最终形成了整个网络的拓扑。

参考:
LLDP技术 - H3C
LLDP技术白皮书 - 华为 Huawei LLDP技术白皮书

你可能感兴趣的:(LLDP工作原理 - kummer话你知)