目录

# 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。原因如下:

  1. lldpd比较新。

lldpad:https://github.com/jrfastab/lldpad

lldpd:https://github.com/vincentbernat/lldpd

通过对比可以看到lldpad最近一次更新,已经是5年前了。而lldpd的最近一次更新在本月。

  1. 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命令相关推荐

  1. SQLmap工具常用命令

    SQLmap工具常用命令 SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具.它有一个非常棒的特性,即对检测与利用进行自动化处理,如获取数据库指纹.访问底层文件系统.执行命令等等.

  2. LINUX网络状态工具SS命令使用详解

    ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...

  3. php把proto解析为文档,Protobuf 文件生成工具 Prototool 命令详解

    Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...

  4. Linux网络状态工具ss命令操作详解

    ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom ...

  5. CentOS 下 yum(基于rpm的包管理工具) 命令详解

    Yum: 即Yellowdog Update Modifier,是一种基于rpm的包管理工具 yum命令使用示例(转载自:https://www.cnblogs.com/vathe/p/6736094 ...

  6. 判断端口是否能用_【图文】 Windows自带入侵检测工具—Netstat命令查询 是否中木马...

    Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是否有被中木马, ...

  7. Memcache监控小工具stats命令

    1.美图 2.概述 这里介绍memcache自带的监控小工具stats命令,可以监控基本的memcache信息,像服务器信息,内存分配数据等 3.stats 显示服务器信息.统计数据等 (base) ...

  8. 2.SDK目录结构和adb工具及命令介绍

    安卓开发学习笔记 1.安卓开发之环境搭建 2.SDK目录结构和adb工具及命令介绍 1.SDK目录介绍: ******************************** add-ons:Androi ...

  9. windows命令_Windows自带强大的入侵检测工具——Netstat 命令 查询是否中木马

    " Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是 ...

最新文章

  1. 大小端以及字节序的问题
  2. 一文搞懂select语句在MySQL中的执行流程!
  3. Android 自定义Dialog背景透明及显示位置设置
  4. java代码打包成jar以及转换为exe
  5. android 关闭软键盘_HTC官方社区明天正式关闭,收入持续下滑或是直接原因
  6. HANA kernel dump
  7. 用Java获取vSphere相关数据
  8. SAP与GE开展工业物联网合作
  9. android 系统GPS模块
  10. windows 定时重启Tomcat服务
  11. 微信公众号——分享给朋友/分享至朋友圈(Vue)
  12. 黑群晖二合一已损毁_手动修复黑群晖已损毁磁盘空间
  13. NodeJS启动vue项目的坑
  14. 猜拳小游戏java_java 猜拳小游戏
  15. 泰坦尼克 (有剧透)
  16. MySQL中的next-key lock
  17. linux色彩配置文件,Xfce得到颜色配置文件的支持
  18. Android 高新面试题
  19. 在线语音转文字如何进行在线转换的
  20. Yelp Dataset(Yelp业务-评论-用户数据集)

热门文章

  1. intro.min.js_使用Intro.js构建分步指南[教程]
  2. 剑指泛娱乐,互联网企业产业布局再度升级
  3. 刷题-Leetcode-1207. 独一无二的出现次数
  4. 【SSLGZ 1618】剑鱼行动
  5. 哪些war3魔兽图凭什么火
  6. Setup of IT shop in demo environment
  7. 怎样下载安装python编程软件视频_程序员如何利用Python下载视频?几串代码轻松搞定...
  8. 18030228邢若楠
  9. c语言选择排序法程序设计,C语言基础之选择排序算法和代码
  10. pta:L1-028 判断素数