Linux-1-网络1. lldp配置
摘取自:
centos配置lldp与交换机建立邻居关系_achejq的专栏-CSDN博客
Linux之lldptool命令 - ReevesMeng - 博客园
有修改。
lldpad(lldpd)
centos上开启lldp的程序为lldpad。ubuntu上为lldpd。
首先安装:
yum install -y lldpad
如果主机不能联网,可以挂载安装光盘,并配置光盘yum源;或进入光盘下的package目录,使用yum localinstall来安装。
然后运行:
lldpad -d #或者systemctl start lldpad;
在所有接口开启【可以复制到shell脚本中执行】
【grep可以这么写:egrep 'em|eth|ens'】:
for i in `ls /sys/class/net/ | grep "em\|eth\|ens"` ; do echo "enabling lldp for interface: $i" ; lldptool set-lldp -i $i adminStatus=rxtx ; lldptool -T -i $i -V sysName enableTx=yes ; lldptool -T -i $i -V portDesc enableTx=yes ; lldptool -T -i $i -V sysDesc enableTx=yes ; lldptool -T -i $i -V sysCap enableTx=yes ; lldptool -T -i $i -V mngAddr ipv4=`hostname -I` ; lldptool -T -i $i -V mngAddr enableTx=yes ; done
这样交换机就可以发现了。
lldpad在服务器上有命令行调试工具:
lldptool get-tlv -n -i "interface"
Ubuntu要好用一些,直接有lldpcli命令行进行调试。
1. lldptool 描述
当我们想在操作系统里面查看网口和交换机连接的状态信息,我们可以使用lldptool这个工具。
2. LLDP 协议
LLDP是一个数据链路层发现协议,LLDP协议使得接入网络的一台设备可以将其主要的能力,管理地址,设备标识,接口标识等信息发送给接入同一个局域网络的其它设备。lldptool工具采用的是LLDP协议,一般我们使用lldptool是为了得到设备的物理拓扑结构以及管理配置信息,比如说,和eth1网口相连的网络交换机的Vlan ID是多少?网络交换机的名称是什么?网线插在网络交换机的什么地方?
在这里我们不去讨论LLDP协议的架构和具体时序状态码等,这里仅仅介绍怎么用它。
LLDP 协议有四种工作模式【adminStatus】:
- TxRx:既发送也接收LLDP 帧
- Tx:只发送不接收LLDP 帧
- Rx:只接收不发送LLDP 帧
- Disable:既不发送也不接收
一般设置LLDP工作在TxRx模式。
3. lldptool 的命令格式
[root@SJ-S-hlw-DB-Ser01 ~]# lldptool --help Usage: lldptool [options] [arg] general command line usage format lldptool go into interactive mode [options] [arg] general interactive command format Options: -i [ifname] network interface -V [tlvid] TLV identifier may be numeric or keyword (see below) -c used with get TLV command to specify that the list of configuration elements should be retrieved -d use to delete specified argument from the configuration. (Currently implemented for DCBX App TLV settings) -n "neighbor" option for command -r show raw message -R show only raw messages -g destination agent (may be one of): - nearestbridge (nb) (default) - nearestcustomerbridge (ncb) - nearestnontpmrbridge (nntpmrb) Commands: license show license information -h|help show command usage information -v|version show version -p|ping ping lldpad and query pid of lldpad -q|quit exit lldptool (interactive mode) -S|stats get LLDP statistics for ifname -t|get-tlv get TLVs from ifname -T|set-tlv set arg for tlvid to value -l|get-lldp get the LLDP parameters for ifname -L|set-lldp set the LLDP parameter for ifname TLV identifiers: chassisID : Chassis ID TLV portID : Port ID TLV TTL : Time to Live TLV portDesc : Port Description TLV sysName : System Name TLV sysDesc : System Description TLV sysCap : System Capabilities TLV mngAddr : Management Address TLV macPhyCfg : MAC/PHY Configuration Status TLV powerMdi : Power via MDI TLV linkAgg : Link Aggregation TLV MTU : Maximum Frame Size TLV LLDP-MED : LLDP-MED Settings medCap : LLDP-MED Capabilities TLV medPolicy : LLDP-MED Network Policy TLV medLoc : LLDP-MED Location TLV medPower : LLDP-MED Extended Power-via-MDI TLV medHwRev : LLDP-MED Hardware Revision TLV medFwRev : LLDP-MED Firmware Revision TLV medSwRev : LLDP-MED Software Revision TLV medSerNum : LLDP-MED Serial Number TLV medManuf : LLDP-MED Manufacturer Name TLV medModel : LLDP-MED Model Name TLV medAssetID : LLDP-MED Asset ID TLV CIN-DCBX : CIN DCBX TLV CEE-DCBX : CEE DCBX TLV evb : EVB Configuration TLV evbcfg : EVB draft 0.2 Configuration TLV vdp : VDP draft 0.2 protocol configuration IEEE-DCBX : IEEE-DCBX Settings ETS-CFG : IEEE 8021QAZ ETS Configuration TLV ETS-REC : IEEE 8021QAZ ETS Recommendation TLV PFC : IEEE 8021QAZ PFC TLV APP : IEEE 8021QAZ APP TLV PVID : Port VLAN ID TLV PPVID : Port and Protocol VLAN ID TLV vlanName : VLAN Name TLV ProtoID : Protocol Identity TLV vidUsage : VID Usage Digest TLV mgmtVID : Management VID TLV linkAggr : Link Aggregation TLV uPoE : Cisco 4-wire Power-via-MDI TLV ARGUMENTS【截取于man lldptool】 This section lists arguments which are available for administration of LLDP parameters. Arguments for basic TLV's (non-organizationally specific TLVs) are also described. See the SEE ALSO section for references to other lldptool man pages which contain usage details and arguments for various organizationally specific TLVs. adminStatus:Argument for the get-lldp/set-lldp commands. Configures the LLDP adminStatus parameter for the specified interface. Valid values are: disabled, rx, tx, rxtx enableTx:Argument for the get-tlv/set-tlv commands. May be applied per interface for a specified TLV. Valid values are: yes, no. If the DCBX TLV enableTx is set to no, then all of the DCB feature TLVs DCBX advertise settings will be turned off as well. Setting enableTx to yes will enable the DCBX advertise settings. ipv4:Argument for the get-tlv/set-tlv commands with respect to the Management Address TLV. The get command will retrieve the configured value. Set values take the form of an IPv4 address: A.B.C.D ipv6:Argument for the get-tlv/set-tlv commands with respect to the Management Address TLV. The get command will retrieve the configured value. Set values take the form of an IPv6 address: 1111:2222:3333:4444:5555:6666:7777:8888 and various shorthand variations. |
4. lldptool 使用举例
ip a查看启用网口:
[root@SJ-S-hlw-DB-Ser01 ~]# ip add | grep "state UP" 2: ens4f0: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000 4: ens5f0: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000 50: bond0: mtu 1500 qdisc noqueue state UP group default qlen 1000 51: bond0.1501@bond0: mtu 1500 qdisc noqueue state UP group default qlen 1000
先看一些有没有lldptool工具,如果没有的话yum装一下:
[root@wow ~]# service lldpad status lldpad is stopped [root@wow ~]# service lldpad start Starting lldpad: [ OK ]
先设置lldptool的工作模式:
[root@wow ~]# lldptool set-lldp -i eth0 adminStatus=rxtx
adminStatus = rxtx #这样就和网络交换机建立了邻居关系,接下来就可以查询连接的交换机信息了;
使用lldptool查看网口与交换机连接状态:
[root@wow ~]# lldptool -tni eth0 Chassis ID TLV MAC: 48:xx:xx:xx:xx:51 #mac地址 Port ID TLV Ifname: GE1/0/1 #网线插在交换机上的端口位置 Time to Live TLV 120 System Name TLV xx-xx-CE5850-xxxxx #交换机设备名 System Description TLV Huawei Versatile Routing Platform Software VRP (R) software, Version 8.150 (CE5855EI V200R002C50SPC800) Copyright (C) 2012-2017 Huawei Technologies Co., Ltd. HUAWEI CE5855-xxxx-xxx #华为的交换机 System Capabilities TLV System capabilities: Bridge, Router Enabled capabilities: Bridge, Router Management Address TLV IPv4: xx.xxx.xxx.xx #ip地址 Ifindex: 4 OID: +[) Port VLAN ID TLV PVID: Port and Protocol VLAN ID TLV PVID: 0, not supported, not enabled VLAN Name TLV VID 3652: Name VLAN3652 MAC/PHY Configuration Status TLV Auto-negotiation supported and enabled PMD auto-negotiation capabilities: 0xxxxx MAU type: 1000 BaseXFD Link Aggregation TLV Aggregation capable Currently not aggregated Aggregated Port ID: 0 Maximum Frame Size TLV 9216 End of LLDPDU TLV
如果想利用lldptool对网口进行一些设置,可以参考手册,下面是在Linux上找男人看到的一些例子:
Configure LLDP adminStatus to Receive and Transmit for interface eth2 #为网口eth2配置LLDP的收发工作模式 lldptool -L -i eth2 adminStatus=rxtx lldptool set-lldp -i eth2 adminStatus=rxtx Disable the LLDP adminStatus for all interfaces #让所有网口都不可用LLDP lldptool set-lldp adminStatus=disabled Query the LLDP adminStatus for interface eth3 #查询网口eth3的LLDP状态 lldptool -l -i eth3 adminStatus lldptool get-lldp -i eth3 adminStatus Query the LLDP statistics for interface eth3 #查询网口eth3的统计信息 lldptool -S -i eth3 adminStatus lldptool stats -i eth3 adminStatus Query the local TLVs which are being transmitted for a given interface: #查询为给定接口传输的本地 lldptool -t -i eth3 lldptool get-tlv -i eth3 Query the received neighbor TLVs received on a given interface: #查询给定接口上收到的接收邻居TLV lldptool -t -n -i eth3 lldptool get-tlv -n -i eth3 Query the value of the System Description TLV as received from the neighbor on a given interface: lldptool -t -n -i eth3 -V sysDesc lldptool get-tlv -n -i eth3 -V 6 Disable transmit of the IEEE 802.3 MAC/PHY Configuration Status TLV for a given interface: lldptool -T -i eth3 -V macPhyCfg enableTx=no lldptool set-tlv -i eth3 -V 0x120f01 enableTx=no Enable transmit of the Port Description TLV for all interfaces: lldptool -T -V portDesc enableTx=yes lldptool set-tlv -V 4 enableTx=yes Query value of the transmit setting for the Port Description TLV for a given interface: lldptool -t -V portDesc -c enableTx lldptool get-tlv -V 4 -c enableTx Set a Management Address TLV on eth3 to carry IPv4 address 192.168.10.10 lldptool -T -i eth3 -V mngAddr ipv4=192.168.10.10 Set a Management Address TLV on eth3 to carry IPv6 address ::192.168.10.10 lldptool -T -i eth3 -V mngAddr ipv6=::192.168.10.10 Get the configured IPv4 address for the Management Address TLV on eth3 lldptool -t -i eth3 -V mngAddr -c ipv4 Get all configured attributes for the Management Address TLV on eth3 lldptool -t -i eth3 -V mngAddr -c Query the current DCBX mode that will be used if lldpad is restarted. (this is not a persistent setting) lldptool -t -i eth3 -V IEEE-DCBX -c mode Reset the DCBX mode to be 'auto' (start in IEEE DCBX mode) after the next lldpad restart lldptool -T -i eth3 -V IEEE-DCBX mode=reset Enable transmit of the Edge Virtual Bridging TLV for interface eth4 lldptool -i eth4 -T -V evbCfg enableTx=yes Configure EVB TLV to set reflective relay and RTE,ECP and VDP capabilities lldptool -T -i eth4 -V evbCfg fmode=reflectiverelay lldptool -T -i eth4 -V evbCfg capabilities=rte,ecp,vdp Enable transmit of the VDP for interface eth4 lldptool -i eth4 -T -V vdp enableTx=yes Configurations per port have higher precedence than global configurations.
# #
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~