命令行工具--LLDP


命令行工具--LLDP

一、場景引入

有的時候,我們需要知道服務器上聯交換機的那個口,想遠程查看一下,但是又不想去機房一根一根線的查找, 對號入座。那么我們該怎么辦呢?

二、什么是LLDP?

LLDP是Link Layer Discovery Protocol 鏈路層發現協議的簡稱,幾乎所有的以太網交換機都內置了這個功能。

在我們日常debug過程中,我們需要知道物理網卡喝交換機接口對應的信息的時候,我們就可以在服務器上直接查看,而不需要去機房現場查看。很nice。

三、在CentOS上安裝LLDP

操作系統環境: CentOS 7.6

軟件包: lldpad、 lldpad-libs

1、安裝rpm 包

# 倉庫配置部分省略,自行配置
# 安裝
yum install lldpad -y

2、首先要啟動lldpad 服務

systemctl start  lldpad 
或者 lldpad  -d

# 加入到開機自啟里面(可選)
systemctl enable lldpad

3、然后執行如下腳本

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

4、設置服務器的lldp 管理地址

lldptool -T -i eth2 -V mngAddr ipv4=192.168.24.185 

5、重新啟動lldpad

systemctl restart lldpad
或者
lldpad -d

6、查看服務器端口,對應交換機上端口

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM