LLDP简介
链路层发现协议(Link Layer Discovery Protocol,LLDP)是一种数据链路层协议。它提供了一种标准的链路层发现方式,可以将本端设备的的主要能力、管理地址、设备标识、接口标识等信息组织成不同的 TLV,并封装在 LLDP DU 中发布给自己的远端设备,本地设备将收到的远端设备信息以标准MIB的形式保存起来。
简单说来,LLDP是一种邻居发现协议,通过它可以通告和发现直连的远端设备,主要用于维护和诊断等。
Linux LLDP实现过程
Linux上一般通过lldpad和lldpd两种软件来实现,其中CentOS中默认集成lldpad软件包,这里主要通过这个来进行展示。
lldpad安装、启动
$ yum install -y lldpad $ systemctl start lldpad
初始化配置
先设置lldptool的工作模式,通过发送和接收LLDP帧和 络交换机建立邻居关系,注意这里使用的interface是eno1,具体要根据环境情况自行调整:
$ lldptool set-lldp -i eno1 adminStatus=rxtx
四种工作模式:
TxRx:既发送也接收LLDP 帧
Tx:只发送不接收LLDP 帧
Rx:只接收不发送LLDP 帧
Disable:既不发送也不接收
接下来就可以在主机端查询上l连交换机的具体信息了:
$ lldptool -tni eno1Chassis ID TLV MAC: 50:98:b8:c1:xx:xxPort ID TLV Ifname: GigabitEthernet1/0/21Time to Live TLV 121Port Description TLV to node01System Name TLV TEST-Switch-01……
这里看到,服务器连接到了TEST-Switch-01这台交换机,接口是GigabitEthernet1/0/21,很管用~
那么在交换机侧能看到什么呢
<TEST-Switch-01> dis lldp neighbor-information list LocalIf Nbr chassis ID Nbr port ID Nbr system name GE1/0/21 2c44-fd7b-xxxx 2c44-fd7b-xxxx ……
只能看到G1/0/21口连接了一块 卡,MAC地址是2c44-fd7b-xxxx,这是服务器eno1的mac地址,其它信息并没有。
继续调整主机侧发送的LLDP信息
增加发送sysName、sysDesc、portDesc TLV,这基本能满足日常需求了
$ lldptool -T -i eno1 -V sysName enableTx=yes $ lldptool -T -i eno1 -V sysDesc enableTx=yes$ lldptool -T -i eno1 -V portDesc enableTx=yes
查看交换机侧收到的LLDP信息:
<TEST-Switch-01> dis lldp neighbor-information list LocalIf Nbr chassis ID Nbr port ID Nbr system name GE1/0/21 2c44-fd7b-xxxx 2c44-fd7b-xxxx node01……
能看到服务器主机名node01~
看详细的
能看到主机名、接口和系统信息,大功告成~
补充点其它信息,比较枯燥,了解即可
LLDP 文收发机制
LLDP 文发送机制: 设备周期性地向邻居设备发送LLDP 文。如果设备的本地配置发生变化则立即发送LLDP 文,以将本地信息的变化情况尽快通知给邻居设备。为了防止本地信息的频繁变化而引起LLDP 文的大量发送,每发送一个LLDP 文后都需延迟一段时间后再继续发送下一个 文。
LLDP 文接收机制: 设备会对收到的LLDP 文及其携带的TLV进行有效性检查,通过检查后再将邻居信息保存到本地设备,并根据LLDPDU 文中TLV携带的TTL值设置邻居信息在本地设备的老化时间。如果接收到的LLDPDU中的TTL值等于零,将立刻老化掉该邻居信息。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!