5

通过tcpdump抓取lldp/cdp报文判断服务器上联网络配置

 1 year ago
source link: https://blog.51cto.com/u_11555417/6007582
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

通过tcpdump抓取lldp/cdp报文判断服务器上联网络配置

精选 原创

羊草 2023-01-14 12:41:41 博主文章分类:网络应用 ©著作权

文章标签 服务器 链路 网络设备 文章分类 路由交换 网络/安全 阅读数246

在一般运维工作中,时常要检查服务器的网络配置,例如服务器有几个网卡,有没有做绑定,上联网络情况等。一般可以从以下几个方面判断:

  • 查看布线表
  • 查看CMDB搜索相关信息
  • 通过上行交换机接口mac地址以及接口描述确认
  • 拔网线查看交换机接口up/down

但是如果布线表不准确,或者cmdb信息录入错误,交换机接口描述错误,查错交换机,轻则影响运维工作,重则会导致生产事故,拔网线一般都是最后的无奈之举。

在这种情况下我们可以在服务器上通过tcpdump抓包程序,抓取lldp报文来判断。

TOR交换机

现在的数据中心服务器基本上是通过TOR方式连入网络。所谓TOR就是接入交换机的布线方式(Top of Rack),既每个机柜或者每组机柜上放置一个或者多个交换机,这个交换机就叫做TOR交换机,服务器连接TOR交换机,TOR交换机连接上一级交换机。

通过tcpdump抓取lldp/cdp报文判断服务器上联网络配置_网络设备

TOR交换机作为接入层网络设备,采用万兆电口或者电口连接服务器网卡,配置链路聚合对应服务器的网卡绑定,或者是使用单接口连接服务器单网卡。一般TOR交换机都会配置lldp协议,广播报文抑制,VLAN等基础配置。

LLDP协议

LLDP的协议号 :0x88cc

LLDP(Link Layer Discovery Protocol)是IEEE 802.1ab中定义的链路层发现协议。LLDP是一种标准的二层发现方式,可以将本端设备的管理地址、设备标识、接口标识等信息组织起来,并发布给自己的邻居设备,邻居设备收到这些信息后将其以标准的管理信息库MIB(Management Information Base)的形式保存起来,以供网络管理系统查询及判断链路的通信状况。

LLDP提供了一种标准的链路层发现方式。通过LLDP获取的设备二层信息能够快速获取相连设备的拓扑状态;显示出客户端、交换机、路由器、应用服务器以及网络服务器之间的路径;检测设备间的配置冲突、查询网络失败的原因。企业网用户可以通过使用网管系统,对支持运行LLDP协议的设备进行链路状态监控,在网络发生故障的时候快速进行故障定位。

LLDP报文

通过tcpdump抓取lldp/cdp报文判断服务器上联网络配置_网络设备_02
  • DA(Destination MAC Address):目的MAC地址,为固定的组播MAC地址0x0180-C200-000E。
  • SA(Source MAC Address):源MAC地址,为发送端的MAC地址。
  • Type:报文类型,LLDP报文中该字段的值为0x88CC。
  • LLDPDU:LLDP数据单元,LLDP信息交换的主体。
  • FCS:帧检验序列。

TLV(Type/Length/Value),包含了链路状态的一些基础信息。

基本TLV字段描述如下

通过tcpdump抓取lldp/cdp报文判断服务器上联网络配置_网络设备_03

在思科或者锐捷网络设备中,使用的是CDP协议,协议号是0x2000

CDP是Cisco Discovery Protocol的缩写,它是由思科公司推出的一种私有的二层网络协议,它能够运行在大部分的思科设备上面。通过运行CDP 协议,思科设备能够在与它们直连的设备之间分享有关操作系统软件版本,以及IP地址,硬件平台等相关信息。

使用场景根LLDP类似。

tcpdump

tcpdump是一个可以根据需求来抓取网络上传输的数据包的工具

 常用的命令选项有:

-c:设定抓取的数量

-i:指定监听的网口

-w:将抓取的数据包保存到文件

-s:截取报文的内容,默认截取96字节,-s0表示截取全部

-r:读取数据包内容

-C 10:每10M保存一个包

-G 600:每10分钟保存一个包

1、抓取所有的经过eth0网卡的网络包,并存到 result.cap 文件中。
tcpdump -i eth0 -w result.cap
2、抓取源地址是192.168.22.16的包,并将结果保存到 result.cap 文件中。
tcpdump src host 192.168.22.16 -w result.cap
3、抓取地址包含是192.168.22.16的包,并将结果保存到 result.cap 文件中。
tcpdump host 192.168.22.16 -w result.cap
4、抓取目的地址包含是192.168.22.16的包,并将结果保存到 result.cap 文件中。
tcpdump dest host 192.168.22.16 -w result.cap
5、抓取主机地址为 192.168.22.16 的数据包
tcpdump -i eth0 -vnn host 192.168.22.16
6、抓取包含192.168.1.0/24网段的数据包
tcpdump -i eth0 -vnn net 192.168.1.0/24
7、抓取网卡eth0上所有包含端口22的数据包
tcpdump -i eth0 -vnn port 22
8、抓取指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种,例如以下命令:
tcpdump udp -i eth0 -vnn
9、抓取经过 eth0 网卡的源 ip 是 192.168.22.16 数据包,src参数表示源。
tcpdump -i eth0 -vnn src host 192.168.22.16
10、抓取经过 eth0 网卡目的 ip 是 192.168.22.16 数据包,dst参数表示目的。
tcpdump -i eth0 -vnn dst host 192.168.22.16
11、抓取源端口是22的数据包
tcpdump -i eth0 -vnn src port 22
12、抓取源ip是 192.168.22.16 且目的ip端口是22的数据包
tcpdump -i eth0 -vnn src host 192.168.22.16 and dst port 22
13、抓取源ip是192.168.22.16或者包含端口是22的数据包
tcpdump -i eth0 -vnn src host 192.168.22.16 or port 22
14、抓取源ip是192.168.22.16且端口不是22的数据包
tcpdump -i eth0 -vnn src host 192.168.22.16 and not port 22
15、抓取源ip是192.168.22.16且目的端口是22,或源ip是192.168.1.102且目的端口是80的数据包。
tcpdump -i eth0 -vnn ( src host 192.168.22.16 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 )
16、把抓取的数据包记录存到/tmp/result文件中,当抓取100个数据包后就退出程序。
tcpdump –i eth0 -vnn -w /tmp/result -c 100
17、从/tmp/result记录中读取tcp协议的数据包
tcpdump -i eth0 tcp -vnn -r /tmp/result
18、想要截获所有192.168.22.16 的主机收到的和发出的所有的数据包:
tcpdump host 192.168.22.16
19、如果想要获取主机192.168.22.16除了和主机192.168.1.101之外所有主机通信的ip包,使用命令:
tcpdump ip host 192.168.22.16 and ! 192.168.1.101
20、如果想要获取主机 192.168.22.16 接收或发出的 telnet 包,使用如下命令:
tcpdump tcp port 23 host192.168.22.16

服务器上抓取报文

tcpdump -i eth0 -nve ether proto 0x88cc -A -s0 -t -c 1 #lldp协议
tcpdump -i eth0 -nve ether proto 0x2000 -A -s0 -t -c 1 #cdp协议

抓取结果如下:

通过tcpdump抓取lldp/cdp报文判断服务器上联网络配置_网络设备_04

通过system name和port description就能判断出上联交换机名称和接口

  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK