【lldptool】LLDP工具|lldptool命令
目录
# lldptool描述
#LLDP协议
#安装lldp包
#守护进程及配置
#lldptool常用命令
#样例
语法
格式
command
options
lldpad与lldpd的对比
LLDP的工作原理
# lldptool描述
可使用lldptool在操作系统里查看网口和交换机连接的状态信息
#LLDP协议
LLDP = Link Layer Discovery Protocol = 链路层发现协议,以太网交换机基本都内置该功能。
LLDP协议使一台设备可将其主要的 配置信息,发送给同一个局域网的其它设备。
lldptool是使用LLDP协议获取 设备的物理拓扑结构和 管理配置信息的工具。
比如说,获取和eth1网口相连的网络交换机的Vlan ID是多少?网络交换机的名称是什么?网线插在网络交换机的什么地方?
#安装lldp包
yum install lldpad -y
启动lldpad 服务
systemctl start lldpad
#守护进程及配置
1、首先确保交换机上已经启用lldp协议。
2、待安装完软件之后默认配置文件是没有的,当启动lldp守护进程时自动生成。
# lldpad –d 或 /etc/init.d/lldpad start
默认的配置文件存放路径:/var/lib/lldpad/lldpad.conf
#lldptool常用命令
lldptool set-lldp -i $i adminStatus=rxtx 【配置LLDP模式】
4种模式:
TxRx:既发送也接收LLDP报文。
Tx:只发送不接收LLDP报文。
Rx:只接收不发送LLDP报文。
Disable:既不发送也不接收LLDP报文。
(rxtx 配置LLDP模式为既发送也接收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
#为网口eth2配置LLDP的收发工作模式(Configure LLDP adminStatus to Receive and Transmit for interface eth2)
lldptool -L -i eth2 adminStatus=rxtx
lldptool set-lldp -i eth2 adminStatus=rxtx
#让所有网口都不可用LLDP(Disable the LLDP adminStatus for all interfaces )
lldptool set-lldp adminStatus=disabled
#查询网口eth3的LLDP状态(Query the LLDP adminStatus for interface eth3)
lldptool -l -i eth3 adminStatus
lldptool get-lldp -i eth3 adminStatus
#查询网口eth3的统计信息(Query the LLDP statistics for interface 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
#查询给定接口上收到的接收邻居TLV(Query the received neighbor TLVs received on a given interface: )
lldptool -t -n -i eth3
lldptool get-tlv -n -i eth3
#查询从邻居给定接口上的接收的系统描述TLV的值: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
#禁用给定接口的IEEE 802.3 MAC/PHY配置状态TLV的传输: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
#启用所有接口的端口的“Description TLV”的传输:Enable transmit of the Port Description TLV for all interfaces:
lldptool -T -V portDesc enableTx=yes
lldptool set-tlv -V 4 enableTx=yes
#查询给定接口的"端口描述TLV传输"的设定值: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
#在eth3上设置一个 管理地址的TLV 以携带IPv4地址192.168.10.10(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
#在eth3上设置一个 管理地址的TLV 以携带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
#获取eth3管理地址TLV里配置IPv4地址(Get the configured IPv4 address for the Management Address TLV on eth3)
lldptool -t -i eth3 -V mngAddr -c ipv4
#获取eth3管理地址TLV里的所有信息(Get all configured attributes for the Management Address TLV on eth3)
lldptool -t -i eth3 -V mngAddr -c
#查询lldpad重新启动时将使用的当前DCBX模式。(这不是持久设置)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
#在下一次lldpad重启后,将DCBX模式重置为“自动”(以IEEE DCBX模式启动)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
#启用接口eth4的Edge Virtual Bridging TLV传输(Enable transmit of the Edge Virtual Bridging TLV for interface eth4)
lldptool -i eth4 -T -V evbCfg enableTx=yes
#配置EVB TLV以设置reflective relay 和RTE、ECP和VDP功能(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
#启用接口eth4的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.
使用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
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
End of LLDPDU TLV
```
语法
格式
lldptool <command> [options] [argument]
command
license
显示许可证信息
-h、 帮助
显示使用信息
-v、 版本
显示版本信息
-S、 统计数据
获取指定接口的LLDP统计信息
-t、 获取tlv
获取指定接口的TLV信息
-T、 设置tlv
设置指定接口的TLV信息
-l、 获取lldp
获取指定接口的LLDP参数
-五十、 设置lldp
为指定接口设置LLDP参数
-p、 ping(ping)
显示正在运行的lldpad进程的进程标识符
-q、 退出
退出交互模式
options
-i [ifname]
网口名,如eth0
-V[tlvid]
指定TLV标识符
tlvid是用于识别特定LLDP TLV的整数值。tlvid值是不等于127(组织特定类型)的类型的Type值。对于组织特定的TLV,tlvid是由3字节OUI和1字节子类型表示的值,其中子类型是tlvid的最低阶字节。
tlvid可以作为数值(例如10或0xa)输入,或者对于支持的TLV,可以作为关键字输入。查看lldptool帮助输出以查看支持的TLV关键字列表。-n
"neighbor" option for commands which can use it (e.g. get-tlv)-g[bridge scope]
指定此命令操作的网桥作用域。允许设置和查询所有LLDP TLV模块的“nearest_bridge”(简称:“nb”)、“nearest_customer_bridge”(“ncb”)和“nearest_nontpmr_bridge(“nntpmrb”)组mac地址。配置保存在lldpad.conf中的独立部分中。如果未提供网桥作用域,则默认为“最近的网桥”以保持先前的行为。
-c<参数列表>
TLV查询的“config”选项。指示查询针对指定TLV的配置元素。参数列表指定要查询的特定元素。如果未列出任何参数,则返回TLV的所有配置元素。
-r(r)
显示原始客户端界面消息-R(R)
仅显示原始客户端界面消息
ARGUMENTS
本节列出了可用于LLDP参数管理的参数。还描述了基本TLV(非组织特定TLV)的论点。有关其他lldptool手册页的参考信息,请参阅See ORO部分,其中包含各种组织特定TLV的用法详细信息和参数。
adminStatus
get-lldp/set-lldp命令的参数。为指定接口配置LLDP adminStatus参数。有效值为:disabled、rx、tx、rxtx
enableTx
get-tlv/set-tlv命令的参数。可以针对指定TLV的每个接口应用。有效值为:yes,no。如果DCBX TLV enableTx设置为no,则所有DCB功能TLV DCBX通告设置也将关闭。将enableTx设置为yes将启用DCBX播发设置。
ipv4
与管理地址tlv相关的get-tlv/set-tlv命令的参数。get命令将检索配置的值。设置值采用IPv4地址的形式:A.B.C.D
ipv6
与管理地址tlv相关的get-tlv/set-tlv命令的参数。get命令将检索配置的值。设置值采用IPv6地址的形式:1111:2222:3333:4444:5555:66666:7777:8888和各种速记变体。
lldpad与lldpd的对比
实现交换机端口的抓取,目前我知道的有两种工具,一种是lldpad,另一种是lldpd。
这两个工具做了一下对比,最终选择了lldpd。原因如下:
- lldpd比较新。
lldpad:https://github.com/jrfastab/lldpad
lldpd:https://github.com/vincentbernat/lldpd
通过对比可以看到lldpad最近一次更新,已经是5年前了。而lldpd的最近一次更新在本月。
- lldpd使用方便。
lldpd可以将输出的信息转化为json格式,非常方便使用。
关于更多lldpd见链接:https://www.jianshu.com/p/1c4aca526f1f
LLDP的工作原理
LLDP协议,从本质上来讲就是一个信息发现和通告协议。设备中的LLDP实体维护了两个MIB(Management Information Base) 库,一个是local system MIB,用来维护本地设备的相关信息;一个是remote system MIB,用来维护远端设备的相关信息。
LLDP 通过与相关的MIB库交互来初始化并维护本地MIB,并经本地的相关信息通告出去,同时接收其他设备的通告信息,并将其更新到remote system MIB。通过这种方式,就可以获取设备的邻居信息。用户就可以使用这两个MIB 库来完成自己的需求。
LLDP 报文格式
封装有LLDPDU (lldp 协议的协议数据单元)的报文,称之为LLDP帧。其封装格式有两种:Ethernet II 和 SNAP(Subnetwork Access Protocol,子网访问协议)。我们经常使用的就是以太帧,所以这儿就重点说一下基于Ethernet II 的LLDP报文。
Destination MAC address:目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
Source MAC address:源MAC地址,为端口MAC地址或设备桥MAC地址(如果有端口地址则使用端口MAC地址,否则使用设备桥MAC地址)
Type:报文类型,固定为0x88CC。
Data:数据,为LLDPDU
FCS:帧检验序列
其中LLDPDU 就是封装在LLDP报文数据部分的数据单元。只不过在组成LLDPDU之前,设备会先将本地的相关信息封装成TLV,然后再将多个TLV组合成一个LLDPDU,封装在LLDP报文的数据部分进行传送。
LLDPDU 格式
每个LLDPDU 最多可以携带28种TLV,LLDP报文预订,Chasis ID TLV, Port ID TLV, TTL TLV 和 End TLV 这四种是必须携带的,其余的TLV则是可选的。
下面是一个基本TLV的list:
TLV 格式
TLV是组成LLDPDU的单元,其基本格式如下:
其中TLV Type 和 TLV Info String Length 称为TLV的header, 剩下的信息就是TLV的数据部分,根据TLV Length字段的值,就可以拿到具体的TLV数据。
其中 TLV Type的定义和分配如下表:
其中type 0-8为基本的TLV集合,其中Mandatory 则为必须的TLV,必须包含在lldp 数据报文中。
使用例子
ethtool -a ens5f0
lldpad -d
ethtool --set-priv-flags ens5f0 fw-lldp-agent off
lldptool -Ti ens5f0 -V PFC willing=no enabled=0
lldptool -Ti ens5f0 -V ETS-CFG willing=no up2tc=0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0 tsa=0:ets,1:strict,2:strict,3:strict,4:strict,5:strict,6:strict,7:strict tcbw=100,0,0,0,0,0,0,0
【lldptool】LLDP工具|lldptool命令相关推荐
- SQLmap工具常用命令
SQLmap工具常用命令 SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具.它有一个非常棒的特性,即对检测与利用进行自动化处理,如获取数据库指纹.访问底层文件系统.执行命令等等.
- LINUX网络状态工具SS命令使用详解
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...
- php把proto解析为文档,Protobuf 文件生成工具 Prototool 命令详解
Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...
- Linux网络状态工具ss命令操作详解
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...
- CentOS 下 yum(基于rpm的包管理工具) 命令详解
Yum: 即Yellowdog Update Modifier,是一种基于rpm的包管理工具 yum命令使用示例(转载自:https://www.cnblogs.com/vathe/p/6736094 ...
- 判断端口是否能用_【图文】 Windows自带入侵检测工具—Netstat命令查询 是否中木马...
Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是否有被中木马, ...
- Memcache监控小工具stats命令
1.美图 2.概述 这里介绍memcache自带的监控小工具stats命令,可以监控基本的memcache信息,像服务器信息,内存分配数据等 3.stats 显示服务器信息.统计数据等 (base) ...
- 2.SDK目录结构和adb工具及命令介绍
安卓开发学习笔记 1.安卓开发之环境搭建 2.SDK目录结构和adb工具及命令介绍 1.SDK目录介绍: ******************************** add-ons:Androi ...
- windows命令_Windows自带强大的入侵检测工具——Netstat 命令 查询是否中木马
" Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是 ...
最新文章
- 大小端以及字节序的问题
- 一文搞懂select语句在MySQL中的执行流程!
- Android 自定义Dialog背景透明及显示位置设置
- java代码打包成jar以及转换为exe
- android 关闭软键盘_HTC官方社区明天正式关闭,收入持续下滑或是直接原因
- HANA kernel dump
- 用Java获取vSphere相关数据
- SAP与GE开展工业物联网合作
- android 系统GPS模块
- windows 定时重启Tomcat服务
- 微信公众号——分享给朋友/分享至朋友圈(Vue)
- 黑群晖二合一已损毁_手动修复黑群晖已损毁磁盘空间
- NodeJS启动vue项目的坑
- 猜拳小游戏java_java 猜拳小游戏
- 泰坦尼克 (有剧透)
- MySQL中的next-key lock
- linux色彩配置文件,Xfce得到颜色配置文件的支持
- Android 高新面试题
- 在线语音转文字如何进行在线转换的
- Yelp Dataset(Yelp业务-评论-用户数据集)
热门文章
- intro.min.js_使用Intro.js构建分步指南[教程]
- 剑指泛娱乐,互联网企业产业布局再度升级
- 刷题-Leetcode-1207. 独一无二的出现次数
- 【SSLGZ 1618】剑鱼行动
- 哪些war3魔兽图凭什么火
- Setup of IT shop in demo environment
- 怎样下载安装python编程软件视频_程序员如何利用Python下载视频?几串代码轻松搞定...
- 18030228邢若楠
- c语言选择排序法程序设计,C语言基础之选择排序算法和代码
- pta:L1-028 判断素数