首页 > 科技 >

使用tcpdump抓取LLDP包获得收集拓扑

2019-03-24 03:14:26 暂无 阅读:983 评论:0

在典型的数据中心收集下,办事器会经由汇集交流机汇集到一路,然后汇集交流机经由焦点交流机进行分歧汇集交流机下办事器数据转发.

使用tcpdump抓取LLDP包获得收集拓扑

典型数据中心收集,图片出处见水印

平日,汇集交流机下面有24到48不等的口儿,占用尺度机柜1U,放在机柜的顶部.机柜中的办事器保持到交流机中.

若是办事器好多,连线不规范,那么要找到哪台办事器保持到哪台交流机的谁人口儿会对照麻烦.此时能够使用抓LLDP包来解决.LLDP和谈介绍

LLDP和谈(link layer discovery protocol)是一个厂商无关的链路层和谈,收集设备用这个和谈在LAN上广播本身的id,capabilities,neigh等信息.

LLDP中广播出来的信息是存储在收集设备的MIB(management information database)中的,这些信息能够使用一个SNMP(simple network management protocol)来获得,当然也能够直接抓包获得. 在一个使能了LLDP和谈的收集中,这个收集的拓扑能够被爬出来.

LLDP包是一个纯2层的包,其包的花样如下

使用tcpdump抓取LLDP包获得收集拓扑

LLDP信息会从收集设备的接口发送出来,发送信息的距离一样是固定的(好比30s),这个信息是一个以太网包.这个以太网包中都是一些type-length-value(TLV)的组合.

这个包的目的MAC地址是一个二层多播地址. 其值一样为固定的01:80:c2:00:00:0e.

每个帧都需要下面的这些强制的TLV:chassis id,prot id, time-to-live.强制的tlv后背是可选的tlv,这个包最后的tlv是一个特别的tlv,其type和length都是0.linux下使用tcpdump来抓lldp包

要在linux办事器上使用tcpdump抓到lldp包,需要上联的交流机使能了LLDP.平日交流机有一个全局设置来使能LLDP,在数据中心收集中,稀奇是下联了办事器的交流机介绍使能LLDP.

平日使用tcpdump是来抓3层ip包或许是4层tcp/udp包. 其实tcpdump的-e选项能够抓取二层链路层包.tcpdump -i enp3s0 -nev ether proto 0x88cc

上面的号令能够抓到机械enp3s0口上联交流机的lldp信息.

个中-i enp3s0透露抓enp3s0口. -n透露输出数字的ip. -e透露输出的内容中也把链路层的信息输出. -v透露tcpdump输出加倍verbose(具体)的信息. ether proto 0x88cc透露抓Ethernet类型的88cc类型的包.从上面的截图中能够看到0x88cc是LLDP包的和谈类型.

下图是抓到的一个包的究竟.我们根基只需要看Port Description和System Name,离别透露上联交流机的端标语和交流机名.有这个信息我们就知道线有没有保持错误了.

使用tcpdump抓取LLDP包获得收集拓扑

实际上细心视察输出,能看到里面还有好多我们能够获得的信息.好比交流机的厂商,是二层交流机照样三层交流机,口儿是否设置了VLAN,是否设置了默认VLAN,口儿的类型,是否主动协商,是否链路聚合,口儿的MTU.若是熟悉交流机设置的同窗应该能看到这些就是设置交流机口儿的时候的常用设置.LLDP都能拉下来.那交流机那边呢?

我们适才说了办事器那边能够经由tcpdump来抓交流机的信息.那交流机能抓办事器的么?

我们知道LLDP包是本身自动从网口发出去的.办事器上面需要安装lldpd才能发送这个包出去(也有其他雷同的软件). 当办事器有发这个包出去的时候,交流机就能收到. 然后交流机上面有响应的号令能够看到上来的机械的主机名和端口名. 如许我们也能反向看到办事器的保持信息.

相关文章