通过 SNMP 从 Cisco Catalyst 3600 查找连接到 VLAN 的客户端 IP

通过 SNMP 从 Cisco Catalyst 3600 查找连接到 VLAN 的客户端 IP

我当然希望使用 SNMP,获取连接到 Cisco Catalyst 3600 中的 VLAN 的客户端 IP 列表。

到目前为止,我已经制作了一个获取这些 IP 地址的伪算法,但我不确定这是否以正确的方式完成:

1)从 Catalyst (oid) 接收所有 IP 地址1.3.6.1.2.1.4.20.1.2我得到类似的信息:

IP-MIB::ipAdEntIfIndex.10.10.2.1 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.2.251 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.3.251 = INTEGER: 151等等。

2)1.3.6.1.2.1.4.20.1.2.10.10.2.1.<IP_ADDRESS>从上面的列表中获取特定 IP 地址的 VLAN(oid)的 ifIndex :

IP-MIB::ipAdEntIfIndex.10.10.2.1 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.2.251 = INTEGER: 152

IP-MIB::ipAdEntIfIndex.10.10.3.251 = INTEGER: 151

3)获取 VLAN 名称 (oid 1.3.6.1.4.1.9.9.46.1.3.1.1.4.1.<IF_INDEX>) If_index 是从上面的列表借用的:

IP-MIB::ipAdEntNetMask.152 = No Such Instance currently exists at this OID

IP-MIB::ipAdEntNetMask.151 = No Such Instance currently exists at this OID

在第三步中我遇到了这个问题,在 OID 中找不到该实例。这很奇怪,因为对于大约 40 个 IP 地址,我可以找到它们所连接的大约 10 个 VLAN 名称。或者也许我做错了?

答案1

我还设法获得了新算法来查找连接到 VLAN 的 IP:

1)获取唯一标识该条目适用的接口的索引值(oid 1.3.6.1.2.1.4.20.1.2:)

示例输出:

IP-MIB::ipAdEntIfIndex.10.10.2.1 = INTEGER: 152
IP-MIB::ipAdEntIfIndex.10.10.2.251 = INTEGER: 152
IP-MIB::ipAdEntIfIndex.10.10.3.250 = INTEGER: 151
IP-MIB::ipAdEntIfIndex.10.10.3.251 = INTEGER: 151
IP-MIB::ipAdEntIfIndex.10.100.0.1 = INTEGER: 312
IP-MIB::ipAdEntIfIndex.10.100.0.251 = INTEGER: 312

等等...

1.3.6.1.2.1.31.1.1.1.1.<INTERFACE_INDEX>2)使用上述索引 (oid: )获取 Catalyst 3600 上的接口名称

示例输出(对于索引 =152):

IF-MIB::ifName.152 = STRING: Vl206

3) 从步骤 1) 中提取特定接口索引的 IP 地址。例如索引152它的 IP 地址如下:

10.10.2.1

10.10.2.251

连接到名为Vl206

我希望我做得好。

相关内容