在我们的机房服务器上,启用了LLDPD服务,通过LLDP协议实现网络层的自动发现,从而根据收到的消息绘制网络拓扑关系。
之前的大部分机器一直工作正常,也没有多关注,然而今天突然发现有一批机器工作不太正常,因为后期的工作依赖这个拓扑关系,如果关系不正确,后面的工作就没办法进行,所以遇到不正常的机器还是需要具体分析一下为什么。
正常情况下,启动lldpd服务,并调用lldpctl可以看到网卡连接到的交换机信息:
可以看到机器的eth0网口连接到了sw1.ichenfu.com这个交换机的Twenty-FiveGigE1/0/10这个口。
但是在出问题的机器上,执行lldpctl却什么也不会显示,第一反应,先重启试试,于是重启了lldpd进程,发现也不行,又尝试重启机器,还是不行。更奇怪的是,让网络组看了一下这台交换机底下其他的机器,都是正常的,这就很奇怪了。既然不知道怎么回事,那就抓个包试试:
出问题的机器,发现抓包只能看到本机发出去的LLDP包,看不到交换机发出的LLDP包。
正常的机器上,可以看到本机发出去的和交换机发出来的LLDP包。
难不成交换机发的包被丢了?在这个时候,注意到了一个细节,出问题的机器,网卡是Intel Corporation Ethernet Connection X722,而没有问题的网卡是Intel Corporation 82599ES 10-Gigabit,难道是网卡问题?
于是打开Google,先用X722 LLDP类似关键词搜索了一下