目录

  • 背景
  • 基本概念
    • LLDP报文
      • Ethernet II格式封装的LLDP报文
      • SNAP格式封装的LLDP报文
    • LLDPDU
    • TLV
  • 特点
  • 工作机制
    • LLDP的工作模式
    • LLDP报文的发送机制
    • LLDP报文的接收机制
  • 参考

背景

目前,网络设备的种类日益繁多且各自的配置错综复杂,为了使不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息,需要有一个标准的信息交流平台。

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

基本概念

LLDP(链路层发现协议)是定义在802.1ab中的一个二层协议,接入网络的设备可以通过其,将管理地址、设备标识、接口标识等信息发送给同一个局域网络的其它设备。

LLDP报文

封装有LLDPDU的报文称为LLDP报文,其封装格式有两种:Ethernet II和SNAP(Subnetwork Access Protocol,子网访问协议)。

Ethernet II格式封装的LLDP报文


如图 1所示,是以Ethernet II格式封装的LLDP报文,其中各字段的含义如下

  • Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E;
  • Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)。
  • Type:报文类型,为0x88CC
  • Data:数据,为LLDPDU
  • FCS:帧检验序列。

SNAP格式封装的LLDP报文


如图 2所示,是以SNAP格式封装的LLDP报文,其中各字段的含义如下

Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E;
Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)
Type:报文类型,为0xAAAA-0300-0000-88CC
Data:数据,为LLDPDU
FCS:帧检验序列

LLDPDU

LLDPDU就是封装在LLDP报文数据部分的数据单元。在组成LLDPDU之前,设备先将本地信息封装成TLV格式,再由若干个TLV组合成一个LLDPDU封装在LLDP报文的数据部分进行传送。

如图 3所示,每个LLDPDU共可携带28种TLV,其中深蓝色的Chasis ID TLV、Port ID TLV、TTL TLV和End TLV这四种是必须携带的,其余的TLV则为可选携带。

TLV

TLV是组成LLDPDU的单元,每个TLV都代表一个信息。LLDP可以封装的TLV包括基本TLV、802.1组织定义TLV、802.3组织定义TLV和LLDP-MED(Media Endpoint Discovery,媒体终端发现) TLV。
基本TLV是网络设备管理基础的一组TLV,802.1组织定义TLV、802.3组织定义TLV和LLDP-MED TLV则是由标准组织或其他机构定义的TLV,用于增强对网络设备的管理,可根据实际需要选择是否在LLDPDU中发送。

特点

  • 单向
    DP 发送的信息通告不需要确认ACK,不能发送一个请求来请求获取某些信息。也就是说 LLDP 是一个单向的协议,只有主动通告一种工作方式,无需确认,不能查询、请求(比如像 ARP 协议那样请求某个 IP 的MAC 地址)。

工作机制

LLDP的工作模式

LLDP 主要完成如下工作:
1.初始化并维护本地MIB 库中的信息。
2.从本地 MIB 库中提取信息,并将信息封装到 LLDP 帧中。LLDP 帧的发送有两种触发方式,一是定时器到期触发,一是设备状态发生了变化触发。
3.识别并处理接收到的 LLDP DU 帧
4.维护远端设备 LLDP MIB 信息库。
5.当本地或远端设备 MIB 信息库中有信息发生变化时,发出通告事件。

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 帧的接收由3个阶段组成:帧的识别、帧的校验以及 LLDP 远端 MIB 信息库更新。

  • 帧的识别
    帧识别由在 LLDP/LSAP(链路服务访问点)进行,检查的内容是帧的目的地是否是 LLDP 的组播 MAC 地址,帧的类型是否是 LLDP。

  • 帧的验证
    该过程会首先根据 TLV 的格式定义依次校验 Chassis ID TLV,Port ID TLV, Time To Live TLV,如果这三个TLV都存在且有效,才会进一步的解码可选的 TLV 直到遇到 End Of LLDPDU TLV,然后根据获得的信息更新远端 MIB 信息库。

  • 远端MIB 信息库更新
    在前两步都通过之后,LLDP DU 的接收者就需要根据解析出来的信息更新远端 MIB 信息库。在 MIB 信息库中,LLDP 使用 chassis ID + Port ID 来标识、存储来自不同源的信息。

如果远端 MIB 库中已经有对应于该 chassis ID + Port ID 的信息,则使用收到的帧中的新的 TTL 来更新 TTL。并用对于收到的新的 LLDPP DU 中的每一种 type,如果有变化就进行更新,如果某种 type 原来不存在,则需要将其添加到MIB库中。

LLDP DU 携带的TTL(Time To Live)值会影响接收端的处理方式,如果它不为0,则更新相应信息的老化时间,如果接收到的 LLDPDU 中的 TTL 等于0,则将立刻老化掉相应的信息(即与该 LLDP DU 的发送者相关的MIB信息)。
如果一个 chassis ID+Port ID 标识的信息的 TTL 超时,则相应的 MIB 信息会被删除。

参考

H3c LLDP技术介绍:
http://www.h3c.com/cn/d_200805/605853_30003_0.htm

LLDP链路层发现协议介绍相关推荐

  1. LLDP(链路层发现协议)

    LLDP 链路层发现协议(LLDP)是一个厂商无关的二层协议,它允许网络设备在本地子网中通告自己的设备标识和性能. 目前,网络设备的种类日益繁多且各自的配置错综复杂,为了使不同厂商的设备能够在网络中相 ...

  2. 不会还有人不会配置LLDP链路层发现协议吧?

    实验目的 1.了解链路层发现协议LLDP的运行原理 2.掌握链路层发现协议LLDP的配置方法 实验拓扑 实验需求 1.根据实验拓扑图,完成设备的基本配置: 2.在R1上使用LLDP查看SW1和R2的设 ...

  3. LLDP链路层发现协议

    工作方式相同于思科CDP发现协议 将本端设备的的主要能力.管理地址.设备标识.接口标识等信息组织成不同的TLV(Type/Length/Value),封装在LLDPDU(链路层发现协议数据单元) 周期 ...

  4. lldp协议代码阅读_LLDP链路层发现协议详解

    LLDP(链路层发现协议)是定义在802.1ab中的一个二层协议,接入网络的设备可以通过其,将管理地址.设备标识.接口标识等信息发送给同一个局域网络的其它设备. LLDP 帧格式 封装有 LLDP D ...

  5. lldp协议代码阅读_LLDP(链路层发现协议)和OpenFlow

    1.LLDP(链路层发现协议)机制 链路层发现协议(LLDP)是一个厂商无关的二层协议,它允许网络设备在本地子网中通告自己的设备标识和性能.它提供了一种标准的链路层发现方式.LLDP协议使得接入网络的 ...

  6. 什么是链路层发现协议LLDP和LLDP-MED

    什么是LLDP? LLDP 是一种 IEEE 标准协议(IEEE 802.1AB),它定义封装在以太网帧中的消息,目的是为设备提供向 LAN 上的其他设备宣布基本设备信息的方法.它类似于CDP,用于网 ...

  7. 修改服务器lldp的mac地址,通过命令行界面(CLI)配置链路层发现协议(LLDP)在交换机的端口设置...

    SG350X#CONFIGURE 步骤3.进入您要通过输入以下配置的接口: SG350X(config)#interface [interface-id] Note:在本例中, ge1/0/6使用接口 ...

  8. 计算机网络实验: 使用Wireshark抓包工具进行网络层和链路层网络协议分析(IP部分)

    目录 实验名称: 实验介绍: 实验目的: 背景知识和准备: 实验过程: 一. IP协议分析 二. Ethernet & ARP 协议分析 实验名称: 网络层和链路层网络协议分析 实验介绍: 本 ...

  9. 链路层典型协议(简述)

    链路层 以太网协议,ARP协议: 链路层负责了相邻数据之间的数据转发: 以太网协议: 用于描述相邻设备通信: 协议格式: 48位对端&源端MAC地址:描述了相邻的亮哥指定物理硬件设备: 16位 ...

最新文章

  1. Python编程基础:第十二节 嵌套循环Nested Loops
  2. go项目部署到linux服务器
  3. SAP 电商云 Spartacus UI 里的 InjectionToken 应用场景
  4. adb不识别设备(手机)的若干情形及解决方法
  5. oracle ora 47306,Oracle SQL提示含义与示例 --- 分布式查询和并行提示
  6. WEB编程学习之Wordpress发送邮件
  7. Android开发系列(十二) QQ联系人列表升级版——ListView和ScrollView高阶使用方法...
  8. react 拆分组件于组件
  9. Android基础知识、四大组件(转)
  10. android访问局域网电脑,如何设置电脑使安卓手机能访问局域网共享的文件
  11. java删除文件夹的方法
  12. 6183. 字符串的前缀分数和(每日一难phase2--day18)
  13. C功底挑战Java菜鸟入门概念干货(三)
  14. 《指数基金投资从入门到精通》读书笔记
  15. 应用商店安装ubantu_从 Play 商店下载 Android 应用安装文件 .apk
  16. Ubuntu安装LXDE桌面环境
  17. 关于生成树的一些小东西
  18. Java二维码编码识别
  19. 【数据库】数据库绪论,你都会了吗
  20. 无刷电机控制基础(1)——结构和驱动电路

热门文章

  1. 游戏学院培训 成就高薪梦想
  2. super() 有什么用?
  3. 元旦祝福短信|2010年元旦祝福短信
  4. sharepoint2013 在office365 使用infopath 创建单击事件和视图,并建立切换规则
  5. java编译器源码分析之词法分析器
  6. 银行 1104报表业务流程
  7. linux ftp 用户及目录权限设置,【linux】FTP添加用户,设置权限和目录
  8. C# PDF 全攻略
  9. photon 服务器操作系统,PhotonServer游戏服务器部署及日志输出之美
  10. Python数据分析挖掘案例:Python爬虫助力疫情数据追踪