CDP实施中的错误

我们正在开发一个基于Linux的以太网交换机,它有6个端口。 我们完成了CDP协议。 我连接了一个思科设备到端口2.当我为思科设备连接时,我得到了答复,而不是获取lan1(端口1 – lan0 ..端口6 = lan5),我总是将接口名称作为eth0。 所有的港口也是如此。 需要进行哪些更改才能获得正确的界面名称? 我将非常感激这些信息。 捕获包在文件“linux._2.6.XX / net / 802 / psnap.c”中的例程snap_rcv()中被接收;

问候,苏拉杰..

下面是一个show cdp neigh的例子:

 Device ID Local Intrfce Holdtme Capability Platform Port ID akira2 Eth 0/0 142 [redacted Eth 0/1 

在这个例子中,路由器自己的akira2连接到本地路由器。 它在本地路由器上连接的端口是en0/0 ,它在远程路由器上连接的端口是en0/1 。 在这种情况下,CDP数据包提供了端口ID(来自标记为0x3的字段),并在接收数据包时推断本地接口。

它默认以这种方式工作,所以如果你得到的数据显然是错误的,你应该更新你的固件和/或调用思科支持。

思科设备上的端口名称通常不被命名为lanN; 通常情况下,如果它们是100baseT端口,它们将以fe为前缀,而千兆以太网端口将以ge为前缀。 如果您发现设备始终报告en0(或以太网0或Eth 0),则很可能设备是作为路由器在其前面有一个集线器(非托pipe)来分割端口。