有的時候,咱們須要知道服務器上聯交換機的那個口,想遠程查看一下,可是又不想去機房一根一根線的查找, 對號入座。那麼咱們該怎麼辦呢?centos
LLDP是Link Layer Discovery Protocol 鏈路層發現協議的簡稱,幾乎全部的以太網交換機都內置了這個功能。bash
在咱們平常debug過程當中,咱們須要知道物理網卡喝交換機接口對應的信息的時候,咱們就能夠在服務器上直接查看,而不須要去機房現場查看。很nice。服務器
操做系統環境: CentOS 7.6工具
軟件包: lldpad、 lldpad-libs操作系統
一、安裝rpm 包命令行
# 倉庫配置部分省略,自行配置 # 安裝 yum install lldpad -y
二、首先要啓動lldpad 服務debug
systemctl start lldpad 或者 lldpad -d # 加入到開機自啓裏面(可選) systemctl enable lldpad
三、而後執行以下腳本rest
for i in `ls /sys/class/net/ | grep eth` ; <---注意網卡名字過濾規則,你的服務器是不是"eth"! 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 enableTx=yes; done
四、設置服務器的lldp 管理地址code
lldptool -T -i eth2 -V mngAddr ipv4=192.168.24.185
五、從新啓動lldpad
systemctl restart lldpad 或者 lldpad -d
六、查看服務器端口,對應交換機上端口
lldptool -t -n -i eth0
lldptool set-lldp -i $i adminStatus=rxtx 【配置LLDP模式】 TxRx:既發送也接收LLDP報文。 Tx:只發送不接收LLDP報文。 Rx:只接收不發送LLDP報文。 Disable:既不發送也不接收LLDP報文。 lldptool -T -i $i -V sysName enableTx=yes; 【啓用系統名稱標識符】 lldptool -T -i $i -V portDesc enableTx=yes ; 【啓用端口描述標識符】 lldptool -T -i $i -V sysDesc enableTx=yes; 【啓用系統描述標識符】 TLV:(Type/Length/Value) portDesc : Port Description TLV sysName : System Name TLV sysDesc : System Description TLV ####################其餘命令 僅查看端口信息:lldptool -t -n -i eth1 -V portDesc (結果以下圖) $ lldptool -t -n -i eth1 -V portDesc Port Description TLV ge-0/0/33.0
#!/bin/bash # install lldpad yum install lldpad -y # enable all interfaces lldp for i in `ls /sys/class/net/ | grep eth` ; 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 enableTx=yes; done # get eth0 and eth3.1124 ip address eth0=$(ip a |grep eth3.1124|grep inet|awk -F '/' '{ print $1 }'|awk -F ' ' '{print $2}') eth3=$(ip a |grep eth0|grep inet|awk -F '/' '{ print $1 }'|awk -F ' ' '{print $2}') # set mgmt ip address lldptool -T -i eth0 -V mngAddr ipv4=$eth0 lldptool -T -i eth3 -V mngAddr ipv4=$eth1 # restart service systemctl restart lldpad