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.

 

# #

 

posted @ 2021-06-20 11:56  飞飞6779  阅读(2104)  评论(0编辑  收藏  举报