如何查找连接到我的网络的设备列表(IP 和 MAC)

网络工程 思科 cisco催化剂 ipv4 snmp MAC地址
2021-07-25 18:47:05

我正在尝试获取连接到我的 Cisco (Catalyst 2960) 交换机的设备列表。最好通过 SNMP。这是我已经做过的事情:

我能够从交换机检索 ARP 表(通过交换机1.3.6.1.2.1.4.22.1.2上的SNMP 行走 OID )。然而,这并不反映 IP 的“实时”集,因为设备离线时 ARP 不会更新。换句话说,当我重新启动设备并获取一个新的 IP 地址(动态)时,我最终会在我的 ARP 表中列出旧的 IP 地址,即使该 IP 当前不在网络上。

有什么办法可以让我通过交换机找到那个“实时”列表,最好避免 ARP 表?

PS 我无法连续 ping 设备以确定它们的状态,我在非常低的带宽条件下工作。

4个回答

是否从交换机上的 SVI 广播 ping 到子网(这是低带宽),并且show mac address-table dynamic无法使用

some-switch#show mac address-table dynamic
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    000f.257b.ba3b    DYNAMIC     Gi1/0/49
   1    0011.254f.a5be    DYNAMIC     Gi1/0/49
  56    0000.0c57.aa00    DYNAMIC     Gi1/0/49
  56    0004.0ff4.8cf4    DYNAMIC     Gi1/0/49
  56    0004.0af4.c8fb    DYNAMIC     Gi1/0/5

此时,使用您的 ARP 表将 mac-address 映射到 IP 地址。

使用 SNMP 执行此操作是可能的,但如果您需要知道每个 mac 地址所在的端口,则有点痛苦……使用dot1dTpFdbAddress获取 mac 地址,使用dot1dBasePortIfIndex映射到接口ifIndex,然后ifName映射ifIndex到您的名称会认的

如果您只想使用动态地址识别您的客户端,则对 L3 IP 和 L2 MAC 地址进行DHCP 侦听这用于阻止恶意 DHCP 服务器的安全性,并且只允许在具有提供和请求(即实际使用)的有效 DHCP 地址的交换机端口上接收数据包。

为您要监视的 VLAN 全局启用 dhcp 侦听

ip dhcp 监听 vlan 10,20,30,40,50
无 ip dhcp 监听信息选项
无 ip dhcp snooping 验证 mac 地址
ip dhcp 监听

请务必使用以下方法识别具有 DHCP 服务器的可信接口:

界面 xy/z
 ip dhcp 监听信任

IP-MAC 地址绑定表示例:

s-oc2-3h-s1#sh ip dhcp 监听绑定
MacAddress IpAddress Lease(sec) 类型 VLAN 接口
---------- --------------- ---------- ------- ———————————————
B4:B5:2F:DB:85:C6 172.17.3.29 254427 dhcp-snooping 30 FastEthernet1/0/30
3C:07:54:3F:91:CB 172.17.3.26 224542 dhcp-snooping 30 FastEthernet2/0/42
6C:62:6D:77:95:1A 172.17.3.37 256986 dhcp-snooping 30 FastEthernet1/0/17
B4:B5:2F:2D:27:37 172.17.3.22 149352 dhcp-snooping 30 FastEthernet2/0/30
B4:B5:2F:DB:85:C2 172.17.3.18 207629 dhcp-snooping 30 FastEthernet1/0/16
...

有关对这些对象的 SNMP 访问,请参阅ciscoDhcpSnoopingMIBOID 1.3.6.1.4.1.9.9.380

如果 IP 是动态的,那么您应该有 dhcp 日志来获取 mac-ip 对。然后使用 SNMP,您可以尝试了解您拥有的设备类型。但请记住,您必须从您的站点配置并允许 snmp。如果您在谈论 Windows 机器,那么使用 powershell 来获取有关工作站的信息会更容易。您还可以尝试使用 nmap 扫描整个子网并获取有关其居民的更多信息。

这可能会破坏您对带宽的要求,但您可以使用像“the dude”这样的 snmp 发现软件。您需要适当地设置社区和专用 vlan,以便 snmp 流量返回到服务器。如果您对此解决方案感兴趣,我可以为您提供有关所需 vlan 和 sw 设置的更多详细信息。