我想编写 SNMP 库存程序。我知道如何检索 MIB 字符串,但我不知道如何找到设备型号。我希望能够找到 Cisco 2920 交换机等设备的型号。
谢谢
在 Cisco 设备上,通常可以通过轮询system.sysDescr.0
OID 找到模型类型。这可以通过运行以下命令来获得:
snmpwalk -v 2c -c <InsertCommunityStringHere> <DeviceIPAddress> system.sysDescr.0
特定的 OID,这里可以是.iso.org.dod.internet.mgmt.mib-2.system.sysDescr
or1.3.6.1.2.1.1.1
然后解析出您认为合适的所需字段(Perl、bash 等)
如果您要轮询其他供应商设备,我建议您首先手动运行 ansnmpwalk -v 2c -c <InsertCommunityStringHere> <DeviceIPAddress> system
以大致了解各种设备如何响应并帮助您确定您有兴趣用于应用程序的正确字段。下面是 Cisco 2900 交换机的示例输出。
您还可以查看实体 mib,它通常包含有关 SNMP 设备的机箱和其他组件的大量信息。思科似乎很好地填充了这个 MIB...
Cisco 设备也应该可以从 sysDescr 解析模型信息。但是,您必须为所有不同的硬件平台处理不同的格式。
从 SNMP 标准中,您可以找到有关设备型号检测的有限信息,因为它为供应商提供了足够的自由度。
有两个常用对象.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID
,它们.iso.org.dod.internet.mgmt.mib-2.system.sysDescr
的值应该用于查询您自己(或从供应商渠道)构建的现有模型数据库。
她是你想要的OID:entPhysicalModelName
.1.3.6.1.2.1.47.1.1.1.1.13.1
两者都在工作:
$ snmpwalk -v 2c -c ssss 195.149.160.226 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C2900 Software (C2900-UNIVERSALK9-M), Version 15.2(4)M3, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2013 by Cisco Systems, Inc.
Compiled Tue 26-Feb-13 03:42 by prod_rel_team
$ snmpwalk -v 2c -c ssss 195.149.160.226 1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C2900 Software (C2900-UNIVERSALK9-M), Version 15.2(4)M3, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2013 by Cisco Systems, Inc.
问题是您需要在设备配置中允许来自投票站的请求。
示例:
snmp-server community sssss RO 10
CPE-TIBC0-IPAC-58844#sh ip access-lists 10
Standard IP access list 10
10 permit 199.99.99.9
20 permit 199.99.99.8
我建议从您可以在 Internet 上找到的简单 MIB 开始,然后使用您的库存程序中的数据类型重新编写它。还有一些好书,例如“SNMP MIB 手册”和“理解 SNMP MIB”,它们都是很好的资源。