当前位置:首页 > 技术文章 > 正文内容

在Linux上使用LLDP,自动发现互联设备

douba31个月前 (08-01)技术文章13

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 eno1
Chassis ID TLV
 MAC: 50:98:b8:c1:xx:xx
Port ID TLV
 Ifname: GigabitEthernet1/0/21
Time to Live TLV
 121
Port Description TLV
 to node01
System 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值等于零,将立刻老化掉该邻居信息。

相关文章

Linux 性能更好的ftp客户端 lftp 使用详解

简介LFTP 是一个命令行 FTP 客户端,支持多种文件传输协议,包括 FTP、FTPS、HTTP、HTTPS和SFTP 。它以其通过镜像、后台操作和脚本支持等特性有效管理复杂传输的能力而闻名。安装U...

Ftp、 Samba、NFS服务器的区别(ftp smb nfs哪个快)

Ftp、Samba、NFS服务器的对比情况根据使用的方式来看可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。1:ftp的客户可以是任意平台2:samb...

如何在 Linux 中将 FTP 用户限制为目录

1. 概述在本文中,将配置 vsftpd 以限制用户在通过 FTP 建立连接时浏览父目录。将通过创建 FTP 用户并修改 vsftpd.conf 文件中的默认配置来实现这一点。2. 设置 FTP 用户...

Steam Deck支持安装Windows 11了:新版固件支持fTPM

近期发售的 Steam Deck 虽然预装的是基于 Linux 的 Steam OS 系统,但是 Valve 一直打算让这款游戏掌机支持 Windows 系统。现在该公司消除安装 Windows 11...

linux解压文件命令有哪些(linux解压命令zxvf)

.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!).gz解压1:gunzip FileName.gz解...

Linux系统保存文件命令的详细介绍

在windows中要想保存文件只要使用Ctrl+s即可,但是在Linux系统中呢?也是用快捷键吗?当然不是,下面开源字节为大家详细讲解一下Linux系统保存文件的命令。1.进入文件 vim 文件名(v...