我如何决定我将在 SNMP 中使用哪个 ifDescr 索引?

How can i decide which ifDescr index i will use in SNMP?

我想监控多个设备的带宽利用率。但是在 SNMP 中,以太网卡的索引对于每台计算机都是不同的。例如,在本地主机中,这些是值:

Sent GET request to localhost : 161

ifDescr.1 Software Loopback Interface 1 ifDescr.2 WAN Miniport (SSTP)

ifDescr.3 WAN Miniport (L2TP) ifDescr.4 WAN Miniport (PPTP)

ifDescr.5 WAN Miniport (PPPOE)

ifDescr.6 WAN Miniport (IPv6)

ifDescr.7 WAN Miniport (Network Monitor)

ifDescr.8 WAN Miniport (IP)

ifDescr.9 RAS Async Adapter

ifDescr.10 WAN Miniport (IKEv2)

ifDescr.11 Microsoft Teredo T?nel Ba§da?t?r?c?s?

ifDescr.12

ifDescr.13

ifDescr.14

ifDescr.15 Realtek PCIe GBE Family Controller

ifDescr.16 Intel(R) Centrino(R) Wireless-N 2230

ifDescr.17 Microsoft Virtual WiFi Miniport Adapter #9

ifDescr.18 Bluetooth Ayg?t? (Ki?isel Alan A§?)

ifDescr.19 Bluetooth Ayg?t? (RFCOMM Protokol? TDI)

ifDescr.20 Microsoft Virtual WiFi Miniport Adapter #10

ifDescr.21 Realtek PCIe GBE Family Controller-QoS Packet Scheduler-0 000

ifDescr.22 Realtek PCIe GBE Family Controller-WFP LightWeight Filter -0000

ifDescr.23 WAN Miniport (IPv6)-QoS Packet Scheduler-0000

ifDescr.24 WAN Miniport (IP)-QoS Packet Scheduler-0000

ifDescr.25 WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000

传入带宽:

Sent GET request to localhost : 161

ifInOctets.1 0

ifInOctets.2 0

ifInOctets.3 0

ifInOctets.4 0

ifInOctets.5 0

ifInOctets.6 0

ifInOctets.7 0

ifInOctets.8 0

ifInOctets.9 0

ifInOctets.10 0

ifInOctets.11 0

ifInOctets.12 0

ifInOctets.13 0

ifInOctets.14 0

ifInOctets.15 54112558

ifInOctets.16 0

ifInOctets.17 0

ifInOctets.18 0

ifInOctets.19 0

ifInOctets.20 0

ifInOctets.21 54112558

ifInOctets.22 54112558

ifInOctets.23 0

ifInOctets.24 0

ifInOctets.25 0

因此,我需要查看索引 15,21 和 22。但是在其他计算机中,索引会有所不同,卡名称也会有所不同(我的是 Realtek PCIe GBE 系列控制器)。我如何找出我应该使用哪个索引?

接口名称的绑定是由 OS 完成的,因此在很大程度上取决于接口是如何启动的,然后由 SNMP 代理发现/枚举。如果您对特定接口(可能通过 ifDescr 的标识符)感兴趣,那么您可以通过拉出 ifDescr 列然后获取索引来进行查找。例如,如果兴趣在

"Realtek PCIe GBE Family Controller"

那就是 ifIndex 15,您应该在特定主机上查询 IfInOctets.15。在另一台主机上,索引可能是其他东西。例如,在我的 MAC 上,我通常将 "en0" 作为接口(在我的 Linux 服务器上,它可能类似于 "eth0"),并获得如下的 ifDescr 值和 IfIndex 5

IF-MIB::ifDescr.5 = 字符串:en1

所以你应该计划相应地进行调整。