Linux之lldptool命令

Stella981
• 阅读 906

1. 描述

当我们想在操作系统里面查看网口和交换机连接的状态信息,我们可以使用lldptool这个工具。

2.LLDP协议

LLDP是一个数据链路层发现协议,LLDP协议使得接入网络的一台设备可以将其主要的能力,管理地址,设备标识,接口标识等信息发送给接入同一个局域网络的其它设备。lldptool工具采用的是LLDP协议,一般我们使用lldptool是为了得到设备的物理拓扑结构以及管理配置信息,比如说,和eth1网口相连的网络交换机的Vlan ID是多少?网络交换机的名称是什么?网线插在网络交换机的什么地方?

在这里我们不去讨论LLDP协议的架构和具体时序状态码等,这里仅仅介绍怎么用它。

LLDP协议有四种工作模式:

  • TxRx:既发送也接收LLDP 帧
  • Tx    :只发送不接收LLDP 帧
  • Rx:只接收不发送LLDP 帧
  • Disable:既不发送也不接收

一般设置LLDP工作在TxRx模式。

3.lldptool的命令格式

lldptool [options] [参数]

Options

-i [ifname]

specifies the network interface to which the command applies

-V [tlvid]

specifies the TLV identifier
The tlvid is an integer value used to identify specific LLDP TLVs. The tlvid value is the Type value for types not equal to 127 (the organizationally specific type). For organizationally specific TLVs, the tlvid is the value represented by the 3 byte OUI and 1 byte subtype - where the subtype is the lowest order byte of the tlvid.
The tlvid can be entered as a numerical value (e.g. 10 or 0xa), or for supported TLVs, as a keyword. Review the  lldptool help output to see the list of supported TLV keywords.

-n

"neighbor" option for commands which can use it (e.g. get-tlv)

-g [bridge scope]

specify the bridge scope this command operates on. Allows to set and query all LLDP TLV modules for "nearest_bridge" (short: "nb"), "nearest_customer_bridge" ("ncb") and "nearest_nontpmr_bridge" ("nntpmrb") group mac addresses. Configurations are saved into independent sections in lldpad.conf. If no bridge scope is supplied this default to "nearest bridge" to preserve the previous behaviour.

-c

"config" option for TLV queries. Indicates that the query is for the configuration elements for the specified TLV. The argument list specifies the specific elements to query. If no arguments are listed, then all configuration elements for the TLV are returned.

-r

show raw client interface messages

-R

show only raw Client interface messages

Commands

license

show license information

-h, help

show usage information

-v, version

show version information

-S, stats

get LLDP statistics

-t, get-tlv

get TLV information

-T, set-tlv

set TLV information

-l, get-lldp

get LLDP parameters

-L, set-lldp

set LLDP parameters

-q, quit

exit from interactive mode

4.lldptool使用举例

ip a查看启用网口:

Linux之lldptool命令

先看一些有没有lldptool工具,如果没有的话yum装一下:

[root@wow ~]# service lldpad status
lldpad is stopped
[root@wow ~]# service lldpad start
Starting lldpad:                                           [  OK  ]
[root@wow ~]# 

先设置lldptool的工作模式:

[root@wow ~]# lldptool set-lldp -i eth0 adminStatus=rxtx
adminStatus = rxtx  #这样就和网络交换机建立了邻居关系,接下来就可以查询连接的交换机信息了

使用lldptool查看网口与交换机连接状态:

[root@wow ~]# lldptool -t -n -i 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
[root@wow ~]#

如果想利用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.
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4天前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
(绝对有用)iOS获取UUID,并使用keychain存储
UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了,如果有更好的解决办法,欢迎留言。(我整理的解决办法的参
Wesley13 Wesley13
2年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
5个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这