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

链路层发现协议(LLDP)是一个厂商无关的二层协议,它允许网络设备在本地子网中通告自己的设备标识和性能。它提供了一种标准的链路层发现方式。LLDP协议使得接入网络的一台设备的主要能力,管理地址,设备标识,接口标识等信息发送给同一个局域网的其他设备,当一个设备从网络中接收到其它设备的信息时,就将这些信息以MIB的形式存储起来。

1.1 LLDP结构

LLDP是一个信息发现与通告协议,LLDP的实体中维护了两个MIB库(管理信息库),一个local system MIB,用于维护本地相关设备MIB信息,一个remote system MIB,用于维护远端设备MIB信息。

LLDP通过PTOPO MIB、Enitity MIB、Interface MIB、Other MIB等库来维护local system MIB,并将本地的相关信息通告。当接收到其他设备的信息时就将其更新到remote system MIB中。

LLDP结构.png

1.2 LLDP帧格式

1.2.1 Ethernet II格式封装的LLDP帧

组播地址(DA)

设备的以太网地址(SA)

0x88cc(以太网类型)

LLDPDU(DATA+PAD)

FCS

各个字段的含义:

DA:目的MAC地址,为固定组播地址0x0180-C200-000E

SA:源MAC地址,为端口MAC地址或设备MAC地址。

Type:帧类型,为0x88cc。

data:数据,为LLDPDU.

FCS:帧检验

SNAP(子网访问协议)格式封装的LLDP帧

组播地址(DA)

设备的以太网地址(SA)

0xAAAA-0300-0000-88CC(以太网类型)

LLDPDU(DATA+PAD)

FCS

各个字段的含义:

DA:目的MAC地址,为固定组播地址0x0180-C200-000E

SA:源MAC地址,为端口MAC地址或设备MAC地址。

Type:帧类型,为0xAAAA-0300-0000-88CC。

data:数据,为LLDPDU.

FCS:帧检验

注:两者的差别在于LLDPDU部分,第一种封装格式为固定1500字节,第二种封装为n 字节。

1.3 三种组播以太网地址

名称

数值

说明

Nearest Bridge

01-80-C2-00-00-0E

任何类型的网桥都不能转发目的地址为该地址的帧,目的地址为该地址的帧被限制在连接两个网桥接口的连接上传输。

Nearest non-TPMR Bridge

01-80-C2-00-00-03

对于目地地址为该地址的帧,Two-Port MAC Relay (TPMR)组件将成为一个中继器,即不接收它。而S-VLAN组件,C-VLAN组件,以及802.1D网桥不能转发它,而是需要进行接收并处理。因此目地地址为该地址的帧将跨越TPMR。

Nearest Customer Bridge

01-80-C2-00-00-00

最近客户桥代理,对于目地地址为该地址的帧,Two-Port MAC Relay (TPMR)组件以及S-VLAN组件将成为中继器,即不接收它。而C-VLAN组件,以及802.1D网桥不能转发它,而是需要进行接收并处理。因此目地地址为该地址的帧将跨越TPMR以及S-VLAN。

LLDP中作为目标地址使用的以太网地址为全局性组播地址。

名称

数值

说明

Nearest Bridge

01-80-C2-00-00-0E

任何类型的网桥都不能转发目的地址为该地址的帧,目的地址为该地址的帧被限制在连接两个网桥接口的连接上传输。

Nearest non-TPMR Bridge

01-80-C2-00-00-03

对于目地地址为该地址的帧,Two-Port MAC Relay (TPMR)组件将成为一个中继器,即不接收它。而S-VLAN组件,C-VLAN组件,以及802.1D网桥不能转发它,而是需要进行接收并处理。因此目地地址为该地址的帧将跨越TPMR。

Nearest Customer Bridge

01-80-C2-00-00-00

最近客户桥代理,对于目地地址为该地址的帧,Two-Port MAC Relay (TPMR)组件以及S-VLAN组件将成为中继器,即不接收它。而C-VLAN组件,以及802.1D网桥不能转发它,而是需要进行接收并处理。因此目地地址为该地址的帧将跨越TPMR以及S-VLAN。

1.4 LLDPDU格式

LLDP帧的有效载荷部分称为LLDPDU。在组成LLDPDU之前,设备先将本地信息封装成TLV格式,再由若干个TLV组合成一个LLDPDU封装在LLDP报文的数据部分传输。

LLDPDU格式如下:

Chassis ID TLV

Port ID TLV

Time To Live TLV

Optional TLV

---

Optional TLV

End Of LLDUDU TLV

Chassis ID TLV:用于描述设备信息。

Port ID TLV:描述发送端口信息。

Time To Live TLV:表示该LLDPDU有效时间

End Of LLDUDU TLV:作为LLDPDU结尾。

以上四种只能各存在一个,不能存在多个。且必须存在。

TLV是处理数据包的协议经常采用的结构。在LLDPDU中,开始部分的标签(Tag)是表示该TLV类型的TLV Type,之后是数据长度(Length),最后是数据内容(Value)。

Tag

Length

Value

基本TLV种类:

数值

名称

说明

0

End Of LLDUDU

必备,在LLDPDU最后必须配置的TLV

1

Chassis ID

必备,包含设备信息

2

Port ID

必备,包含发送端口信息

3

TTL

必备,表示LLDPDU中所记载信息的有效期限

4

Port Description

RFC 2863的ifDescr对象

5

System Name

RFC 3418的sysName对象

6

System Description

RFC 3418的sysDcscr对象

7

System Capabilities

包含以比特的形式表现的显示桥接功能的标记

8

Management Address

提供更高位服务的管理地址

9-126

-

为将来实现标准化预留

127

Organizationally Specific TLVs

用于独自扩展的TLV

1.5 LLDP工作机制

1.5.1 LLDP的工作模式

LLDP有以下四种工作模式:

TxRx:既发送也接收LLDP报文。

Tx:只发送不接收LLDP报文。

Rx:只接收不发送LLDP报文。

Disable:既不发送也不接收LLDP报文。

当端口的LLDP工作模式发生变化时,端口将对协议状态机进行初始化操作。为了避免端口工作模式频繁改变而导致端口不断执行初始化操作,可配置端口初始化延迟时间,当端口工作模式改变时延迟一段时间再执行初始化操作。

1.5.2 LLDP报文的发送机制

当端口工作在TxRx或Tx模式时,设备会周期性地向邻居设备发送LLDP报文。如果设备的本地配置发生变化则立即发送LLDP报文,以将本地信息的变化情况尽快通知给邻居设备。但为了防止本地信息的频繁变化而引起LLDP报文的大量发送,每发送一个LLDP报文后都需延迟一段时间后再继续发送下一个报文。

当设备的工作模式由Disable/Rx切换为TxRx/Tx,或者发现了新的邻居设备(即收到一个新的LLDP报文且本地尚未保存发送该报文设备的信息)时,该设备将自动启用快速发送机制,即将LLDP报文的发送周期缩短为1秒,并连续发送指定数量的LLDP报文后再恢复为正常的发送周期。

1.5.3 LLDP报文的接收机制

当端口工作在TxRx或Rx模式时,设备会对收到的LLDP报文及其携带的TLV进行有效性检查,通过检查后再将邻居信息保存到本地,并根据TTL(Time To Live,生存时间) TLV中TTL的值来设置邻居信息在本地设备上的老化时间,若该值为零,则立刻老化该邻居信息。

2.OpenFlow中LLDP的处理概要

在OpenFlow中,主要通过OpenFlow控制器完成LLDP处理。

如下图所示,

OpenFlow控制器向OpenFlow交换机2发送Packet-Out消息,以此来发送LLDP帧。

OpenFlow交换机2通过OpenFlow交换机1上连接的网络接口发送包含packet-Out消息中的LLDP帧。

OpenFlow交换机1接收来自openflow交换机2的LLDP帧后,将LLDP帧添加到Packet-In消息中,然后发送给OpenFlow控制器,OpenFlow控制器依据OpenFlow交换机1发来的Packet-In消息中所包含的信息,构建网络拓扑检测的数据库。

OpenFlow中LLDP处理.png

OpenFlow交换机不对LLDP帧做任何处理,而是由OpenFlow控制器进行网络拓扑检测。

LLDP与OpenFlow二者之间的关系仅仅是在OpenFlow框架内运用LLDP,即使OpenFlow规范中并未标明LLDP,该规范也支持LLDP,但并不意味着必须要用LLDP来进行网络拓扑检测,同样,利用IS-IS或OSPF也能实现网络拓扑检测。

参考:

lldp协议代码阅读_LLDP(链路层发现协议)和OpenFlow相关推荐

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

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

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

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

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

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

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

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

  5. LLDP链路层发现协议介绍

    目录 背景 基本概念 LLDP报文 Ethernet II格式封装的LLDP报文 SNAP格式封装的LLDP报文 LLDPDU TLV 特点 工作机制 LLDP的工作模式 LLDP报文的发送机制 LL ...

  6. LLDP链路层发现协议

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

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

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

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

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

  9. 网络 链路层 | 以太网协议与ARP协议

    数据链路层是计算机网络的底层,主要负责相邻设备之间的数据帧传输 链路层就是负责每一个相邻结点之间的数据传输,但是相邻设备之间也需要描述识别,主要是因为每一个设备都有可能有多个相邻的设备.这种识别在链路 ...

最新文章

  1. 大学生创业难?现在已不是问题!
  2. 使用HTML5监測站点性能
  3. PostgreSQL切换用户,提示对等认证失败的解决方案
  4. java中的抽象类和抽象方法
  5. VMware发布新版vSphere6.5虚拟化平台,助力企业数字化转型
  6. Python的Crypto模块使用:自动输入Shell中的密码
  7. CodeForces - 594A Warrior and Archer(思维+博弈)
  8. 微博polg什么意思_成都网站代运营是什么意思?-建站
  9. 【FZU - 2254】英语考试(最小生成树,思维,建图)
  10. easyui源码翻译1.32--SearchBox(搜索框)
  11. C#_MVC 自定义AuthorizeAttribute实现权限管理
  12. 关于如何写代码和学习代码
  13. CAN详解--各家CAN分析仪与软件的比较
  14. 安装LaTex(图文教程)
  15. UOS系统如何给软件签名
  16. 细等线体cass_CAD中,刚打开一个文件,细等线体显示不出来,然后换个字体后在换回细等线体才正常显示,怎么回事?...
  17. 双线性对在密码学中的应用(下)
  18. CS架构客户端软件升级方案
  19. 物理建模钢琴-Arturia Piano V2 v2.5.0.3410 MacOSX
  20. 博客系统-写文章之富文本编辑器editor

热门文章

  1. dnsmasq搭建DNS服务器详解
  2. PowerShell运行脚本却用记事本打开
  3. 斯特林数(Stirling)
  4. CSS卡片样式-阴影
  5. 数据库mysql角度转化弧度_弧度和角度的转换
  6. Kubernetes Admission Webhook Validating 与 mutating 实践
  7. 认真学习套壳技巧-消息队列-日志模块
  8. 计算机网络笔记P3(数据链路层功能概述)
  9. 揭秘:清末时期老北京的四大头牌名妓的悲喜人生
  10. HTML基础-------HTML标签(2)