我正在开发我们学校的实验室清单和审核。如果每个实验室都有PC转移,它需要跟踪。每个实验室都有自己的网络。因此,如果仅通过IP地址,甚至不可能知道转移。是否可以从PC连接的交换机端口获取数据?
答案 0 :(得分:0)
是的,如果您的交换机支持SNMP。您可以通过网络接口卡的MAC地址跟踪PC(只要它们不会发生变化)。有一些OID可能对获取此信息很有意义。首先是:
1.3.6.1.2.1.17.4.3.1.1
(dot1dTpFdbAddress):
网桥具有转发和/或过滤信息的单播MAC地址。
如果您的网络非常简单,就像实验室的一台交换机,没有VLAN等,您可以走第一个OID并从交换机获取MAC地址,与您的PC数据库交叉引用它们并检查您的身份需要检查。
如果您有VLAN,或者有多个实验室连接到单个交换机,则需要更深入地找到PC所连接的端口。
1.3.6.1.2.1.17.4.3.1.2
(dot1dTpFdbPort):
值" 0"或者已经看到源地址等于dot1dTpFdbAddress对应实例值的帧的端口号。
1.3.6.1.2.1.17.1.4.1.2
(dot1dBasePortIfIndex):
对应于此端口的接口,在MIB-II中定义的ifIndex对象实例的值。
1.3.6.1.2.1.31.1.1.1.1
(ifName):
界面的文字名称。此对象的值应该是本地设备指定的接口名称,并且应该适用于在设备的“控制台”中输入的命令。
以下是手动执行此操作的示例(在某些Linksys交换机上),但您可以轻松编写脚本来执行此操作并返回他们所学习的MAC地址和端口列表。
# snmpwalk -v2c -c "your_community" switch.example.com 1.3.6.1.2.1.17.4.3.1.1
SNMPv2-SMI::mib-2.17.4.3.1.1.64.85.57.242.44.224 = Hex-STRING: 40 55 39 F2 2C E0
通过此OID行走将列出交换机已学习的所有MAC地址。在我的例子中,为简单起见,只有一个MAC地址(40:55:39:f2:2c:e0)。接下来,您要查找MAC地址的桥接端口号:
# snmpget -v2c -c "your_community" switch.example.com 1.3.6.1.2.1.17.4.3.1.2.64.85.57.242.44.224
SNMPv2-SMI::mib-2.17.4.3.1.2.64.85.57.242.44.224 = INTEGER: 6
您在OID中看到的附加数字是MAC地址的点分十进制表示。在此之后,您将从桥接端口号获取接口索引,最后获取接口名称(端口名称)。
# snmpget -v2c -c "your_community" switch.example.com 1.3.6.1.2.1.17.1.4.1.2.6
SNMPv2-SMI::mib-2.17.1.4.1.2.6 = INTEGER: 6
# snmpget -v2c -c "your_community" switch.example.com 1.3.6.1.2.1.31.1.1.1.1.6
IF-MIB::ifName.6 = STRING: Port6
你发现40:55:39:f2:2c:e0 MAC地址的主机连接到Port6。如果您正在处理一些更高质量的设备(如思科),您应该知道他们可能会为每个VLAN保留单独的实例,并使用称为SNMP社区字符串索引的内容,您可以将Vlan索引添加到您的社区字符串中(对于Vlan 123):
# snmpwalk -v2c -c "your_community"@123 switch.example.com 1.3.6.1.2.1.17.4.3.1.1