这正是我在大多数情况下会使用的过程。
如果您在所有交换机上都启用了 CDP(Cisco 发现协议),则可以通过运行 Cisco 的 MAC Traceroute 功能来节省大量时间。
traceroute mac ip <<gateway ip>> <<host ip>> detail
<<gateway ip>>>
您尝试跟踪的设备子网的网关地址(或该子网内的任何其他有效 IP)在哪里。
0ffnet-LAB1#traceroute mac ip 172.16.0.1 172.16.0.188 detail
Translating IP to mac .....
172.16.0.1 => 00a0.6125.af0b
172.16.0.188 => 0029.8856.0f60
Source not directly connected, tracing source .....
Source 00a0.6125.af0b found on 0ffnet-LAB1[WS-C3550-48] (172.16.0.1)
1 0ffnet-LAB1 / WS-C3550-48 / 172.16.0.1 :
Fa0/27 [auto, auto] => Fa0/3 [auto, auto]
2 0ffnet-LAB2 / WS-C3550-48 / 172.16.0.2 :
Fa0/1 [auto, auto] => Fa0/2 [auto, auto]
Destination 0029.8856.0f60 found on 0ffnet-LAB2[WS-C3550-48] (172.16.0.2)
Layer 2 trace completed.
0ffnet-LAB1#
如果您需要定期执行此操作(例如:您是网络管理员),那么有一些工具可以通过定期从您的设备收集 MAC 表并将它们存储在数据库中来自动执行此过程,例如:
http://netdbtracking.sourceforge.net
您可以轻松地使用 SNMP 和一些编码经验进行类似的操作。