命令行工具--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

命令行工具--LLDP的更多相关文章

  1. windows下的命令行工具babun

    什么是babun babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell.用官方的题目说就是 ...

  2. 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...

  3. 命令行工具aspnet_regiis.exe实现加密和解密web.config

    命令行工具aspnet_regiis.exe,是一个类似于DOS的命令工具,称之为命令解释器.使用命令行工具加密和解密web.config文件中的数据库连接字符串时,只需要简单的语法命令即可. 加密语 ...

  4. nodejs 编写(添加时间戳)命令行工具 timestamp

    Nodejs除了编写服务器端程序还可以编写命令行工具,如gulp.js就是Nodejs编写的. 接下来我们来实现一个添加时间戳的命令: $ timestamp action https://www.n ...

  5. 如何用Node编写命令行工具

    0. 命令行工具 当全局安装模块之后,我们可以在控制台下执行指定的命令来运行操作,如果npm一样.我把这样的模块称之为命令行工具模块(如理解有偏颇,欢迎指正) 1.用Node编写命令行工具 在Node ...

  6. Orchard中的命令行工具

    在Orchard中提供了一个命令行工具,我们可以使用这个命令行工具创建用户.创建博客.生成代码.配置网站.打包模块等.并且这个命令行工具是可以扩充的,只要我们在自己开发的模块中创建一个Command类 ...

  7. Linux 性能监控之命令行工具

    引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...

  8. 命令行工具解析Crash文件,dSYM文件进行符号化

    备份   文/爱掏蜂窝的熊(简书作者)原文链接:http://www.jianshu.com/p/0b6f5148dab8著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 序 在日常开发 ...

  9. MySQL 命令行工具之 mysqldump 深入研究

    mysqldump 是MySQL的一个命令行工具,用于逻辑备份.可以将数据库和表的结构,以及表中的数据分别导出成:create database, create table, insert into的 ...

随机推荐

  1. k8s管理机密信息(9)

    一.启动应用安全信息的保护: Secret介绍: 应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥.将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 ...

  2. Python实现按照指定要求逆序输出一个数字的方法

    Python实现按照指定要求逆序输出一个数字的方法 这篇文章主要介绍了Python实现按照指定要求逆序输出一个数字的方法,涉及Python针对字符串的遍历.判断.输出等相关操作技巧,需要的朋友可以参考 ...

  3. mac Access denied for user 'root'@'localhost' (using password: YES)

    1:苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 2: Start it in safe mode 进入终端 输入: cd /usr/local/mysql ...

  4. JAVA连接Sql-Server教程

    一.下载相应的版本的jar文件(官网:https://docs.microsoft.com/zh-cn/sql/connect/jdbc/system-requirements-for-the-jdb ...

  5. 最新 汽车之家java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.汽车之家等10家互联网公司的校招Offer,因为某些自身原因最终选择了汽车之家.6.7月主要是做系统复习.项目复盘.Leet ...

  6. WCF中事务处理

    一.引言 今天来介绍下WCF对事务的支持. 二.WCF事务详解 2.1 事务概念与属性 首先,大家在学习数据库的时候就已经接触到事务这个概念了.所谓事务,它是一个操作序列,这些操作要么都执行,要么都不 ...

  7. 43.QQ聊天软件GUI窗口编写

    QQ聊天软件代码功能编写 一,Tkinter聊天界面编写 1,聊天软件客户端界面开发-1 Tkinter的模块(“TK接口”)是标准的Python接口从Tk的GUI工具包 https://i.cnbl ...

  8. Mysql 索引失效场景

    例如:一张USER表   有字段属性 name,age   其中name为索引 下面列举几个索引失效的情况 1. select * from USER where name=‘xzz’ or age= ...

  9. centos7:ssh免密登陆设置及常见错误

    目录 一.免密登录设置 二.常见错误 三.CentOS7再ssh-copy-id时的错误 一.免密登录设置 1.使用root用户登录,进入到目录/root/.ssh 2.执行命令:ssh-keygen ...

  10. [LuoguP2163][SHOI2007]园丁的烦恼_CDQ分治

    园丁的烦恼 题目链接:https://www.luogu.org/problem/P2163 数据范围:略. 题解: 树套树过不去,那就$CDQ$分治好了. 有点小细节,但都是$CDQ$分治必要的. ...