CDP 实现中的错误

CDP 实现中的错误

我们正在开发一款基于 Linux 的以太网交换机,该交换机有 6 个端口。我们已经完成了 CDP 协议。我已将 Cisco 设备连接到端口 2。当我查询 Cisco 设备时,我得到的答复不是 lan1(端口 1 - lan0 .. 端口 6 = lan5),而是始终将接口名称设为 eth0。所有端口都是如此。需要进行哪些更改才能获得正确的接口名称?我将非常感谢这些信息。快照数据包在文件“linux._2.6.XX/net/802/psnap.c”中的例程 snap_rcv() 中接收;

问候,苏拉杰。

答案1

以下是一个例子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(或 Ethernet 0 或 Eth 0),则很可能该设备被实现为路由器,其前面有一个集线器(非托管)将端口分开。

相关内容