我们公司最近关闭了一半闲置的办公空间。我们将闲置的空间交还给大楼管理部门,并用墙围起来。在关闭之前,我记下了要关闭一侧的网络插孔编号,并确保将它们与服务器机房的交换机断开连接。
今天,我正在重新创建一个电子表格,其中列出了我们当前的所有物理网络插孔及其在调整大小的办公室中的位置。
两个问题:
1) 一些网络插孔编号似乎与中继架上的标签不同步。例如,有一台已登录的笔记本电脑插入插孔# 28。因此,我前往中继架,找到端口 28,并将其追踪到交换机。问题是,交换机上插入的端口没有亮起,显示它处于非活动状态。但是,它肯定是活动的并且位于网络上。有没有办法(通过 IP 或名称)查询 Cisco 交换机以告诉您该特定 PC 插入了哪个端口号?
2) 交换机上有几个端口亮起,表示有活动,但当我将它们追溯到中继架时,它们连接到不再使用或不再存在的端口。我想我的问题与上述问题一样,有没有办法显示连接到交换机上该端口的 IP 或名称?
答案1
不算重复,但有一个类似的问题这里,其中有一些关于将 IP 地址映射到交换机端口的建议。
在这种情况下,最好的选择似乎是识别连接到您知道的设备的所有交换机端口。我对此的建议(假设 Cisco 管理的路由器/交换机):
识别已知设备
从您的第一跳路由器开始,对中继到支持办公空间(而不是您可能拥有的任何数据中心空间)的交换机的每个子网执行广播 ping。请注意,这应该是每个子网的定向广播地址,而不是“所有设备”广播 IP 255.255.255.255 在 Cisco IOS 中,这只能从特权执行模式完成。例如,要 ping 子网 192.168.100.0/25 上的所有计算机,请使用:
ping ip 192.168.100.127
这将使用每个子网上所有响应 ping 的机器的条目来填充路由器的 ARP 缓存。
再次在第一跳路由器上,提取每个子网的 ARP 条目列表:
show ip arp interface vlan 100
这将为您提供响应 ping 的每个设备的所有 IP 和 MAC 地址。您可以根据 DNS(或其他命名服务)检查 IP 列表以识别特定设备的名称。任何无法匹配名称的 IP 地址都应被标记以供进一步调查。
将已知设备映射到交换机端口
获取 MAC 地址列表并使用它来确定每个设备连接到哪个交换机端口。
show mac-address-table address <mac-address>
将显示该特定 MAC 的 MAC 地址表条目,包括它连接到哪个交换机端口。或者:
show mac-address-table vlan <vlan number>
将显示该 VLAN 中所有端口的 MAC 地址表。请注意,Cisco 设备上的 MAC 地址表的默认超时时间为 5 分钟;您可能需要再次运行广播 ping 才能重新填充它。
将未知设备映射到交换机端口
对于那些无法映射到已知设备的 IP,上一节中的命令将告诉您需要检查哪个端口。
另外,运行:
show mac-address-table
不带任何参数。获取输出,删除任何已知 MAC 地址以及任何路由器-路由器和交换机-交换机链接的行。剩下的 MAC 地址是连接到交换机但未通过 IP 与第一跳路由器通信的设备。这些出现的端口也应标记以供调查。
将标记的端口映射到出口
对于您标记的所有端口(即您无法识别的设备),您需要从交换机端口到办公室楼层的接入端口进行物理跟踪。如果您很幸运,您的房东将使用管理布线基础设施;如果没有,请准备好用老式方法掀起地砖并拉线。祝你好运。
答案2
如果您启用了 CDP 并安装了最新的 IOS,那么通过 MAC 来查找 PC 插入的位置是一种快速而好用的方法。在 Cisco 路由器的 CLI 中使用此命令:
traceroute mac xxxx.xxxx.xxxx xxxx.xxxx.xxxx
其中 xxxx.xxxx.xxxx 是 PC 的 MAC 地址。如果您不知道 MAC,我会在 arp 缓存中查找 IP,然后以此方式找到 MAC。您可能需要 ping 广播 IP 以使所有内容都进入 arp,这样空闲的设备就会显示出来。
router#traceroute mac 0000.0000.0000 0000.0000.0000
Source 0000.0000.0000 found on switch5
1 switch5 (10.11.12.5) : Gi0/43 => Gi0/43
Destination 0000.0000.0000 found on switch5
Layer 2 trace completed
一种更需要输入大量文字的方法是:
router#show mac- | inc 0000.0000.0000
100 0000.0000.0000 DYNAMIC Po1
router#show int Po1 | inc Gi
Members in this channel: Gi1/0/1 Gi2/0/1
router#show cdp neighbors Gi1/0/1 detail | inc IP
IP address: 10.11.12.5
Cisco IOS Software, C3560 Software (C3560-IPBASEK9-M), Version 12.2(46)SE, RELEASE SOFTWARE (fc2)
IP address: 10.11.12.5
然后,您将通过 telnet/ssh 进入 10.11.12.5 并重复此操作,直到找不到更多的 CDP 邻居,这很可能意味着您找到的端口就是 PC 所连接的端口。
答案3
CiscoWorks(无论他们现在叫它什么)肯定会为您做到这一点。还有 SNMP OID 可以枚举端口、端口状态和 CAM 表。这至少会告诉您 MAC 地址位于哪个交换机端口上。根据您的交换机型号,您可能还可以查看 ARP 表。
我会首先搜索您的特定交换机型号,看看有哪些类型的 SNMP OID 可用。您还可以查看 NetDisco,它是一种开源网络发现/监控工具。过去几年,开发速度有所放缓,但目前正在开发新版本。
答案4
首先对您想要查找的机器和网络中的其他机器进行连续 ping。您可以使用
pint -t <ip address>
在 Windows 上进行连续 ping。
之后,使用 ssh / telnet / console 连接到 cisco 交换机,然后你就可以使用
show ip arp | include <ip address>
命令来查找特定机器的 mac 地址。如果您有权访问它,您也可以简单地查找机器的 mac 地址。然后您可以使用命令
show mac address-table | include <mac listed above in show ip arp>
or
show mac-address-table | include <mac listed above in show ip arp>
取决于您使用的交换机。这将告诉您将转发属于该 MAC 地址的数据包的端口。如果该端口是中继端口,即另一台交换机连接到该端口,那么您可以在另一台交换机上执行相同的步骤,直到找到主机连接的端口。如果启用了 cdp,您可以使用命令
show cdp nei detail
查找连接到该端口的交换机的 IP 地址/主机名。
要使该过程正常工作,您必须从顶层 3 层交换机/路由器开始,并且应该连续 ping 另一个子网中的 IP。此外,假设整个网络仅使用 cisco 可管理交换机。