当我使用 ipNetToPhysicalEntry OID 时,需要帮助了解通过 SNMP 传输的内容

网络工程 思科 snmp
2021-07-11 04:40:31

我需要一点帮助才能理解 ipNetToPhysicalEntry OID 1.3.6.1.2.1.4.35.1 究竟包含哪些信息。我认为它是 Neighbor Cache 和 ARP Cache 之间的组合,但是当我读完这个 OID 时,比如说 snmpwalk,我没有得到我的路由器 Neighbor Cache 和 ARP Cache 中的所有内容。哪些信息在里面,哪些不在里面的标准是什么?我在哪里可以看到它的定义?

2个回答

除了 Ricky 的回答之外,您还可以使用该snmptranslate实用程序来转储有关 SNMP 表的信息以及表条目的索引方式等。这些-Tp -IR标志将告诉snmptranslate您打印表的树视图。一个非常有用(和被忽视)的实用程序 IMO。

这是ipNetToPhysicalTable(这是 ipNetToPhysicalEntry 所属的表对象)的输出:

jjensen@VA1-NETOPS-DEV-01:~/.snmp$ snmptranslate -M +mibs -m +ALL -Tp -IR ipNetToPhysicalTable
+--ipNetToPhysicalTable(35)
   |
   +--ipNetToPhysicalEntry(1)
      |  Index: ipNetToPhysicalIfIndex, ipNetToPhysicalNetAddressType, ipNetToPhysicalNetAddress
      |
      +-- ---- Integer32 ipNetToPhysicalIfIndex(1)
      |        Textual Convention: InterfaceIndex
      |        Range: 1..2147483647
      +-- ---- EnumVal   ipNetToPhysicalNetAddressType(2)
      |        Textual Convention: InetAddressType
      |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3), ipv6z(4), dns(16)
      +-- ---- String    ipNetToPhysicalNetAddress(3)
      |        Textual Convention: InetAddress
      |        Size: 0..255
      +-- CR-- String    ipNetToPhysicalPhysAddress(4)
      |        Textual Convention: PhysAddress
      |        Size: 0..65535
      +-- -R-- TimeTicks ipNetToPhysicalLastUpdated(5)
      |        Textual Convention: TimeStamp
      +-- CR-- EnumVal   ipNetToPhysicalType(6)
      |        Values: other(1), invalid(2), dynamic(3), static(4), local(5)
      +-- -R-- EnumVal   ipNetToPhysicalState(7)
      |        Values: reachable(1), stale(2), delay(3), probe(4), invalid(5), unknown(6), incomplete(7)
      +-- CR-- EnumVal   ipNetToPhysicalRowStatus(8)
               Textual Convention: RowStatus
               Values: active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6)

现在您可以看到表中的条目应该如何被索引,以及构成表的 OID。前 3 个条目是索引。表中的每个条目都将具有这 3 个索引 - 本质上是 ipNetToPhysicalIfIndex + ipNetToPhysicalNetAddressType + ipNetToPhysicalNetAddress。然后随后在该表的一行中有 5 个“列”:

  1. ipNetToPhysicalPhysAddress
  2. ipNetToPhysicalLastUpdated
  3. ipNetToPhysicalType
  4. ipNetToPhysicalState
  5. ipNetToPhysicalRowStatus

这是我的一台设备的示例:

IP-MIB::ipNetToPhysicalPhysAddress.1.ipv4."10.200.17.34" = STRING: 74:8e:f8:62:59:41

所以把它想象成表中的一个行条目,我们从行中挑选出第 1 列,即 ipNetToPhysicalPhysAddress。所以在这个特定的条目中,.1.ipv4."10.200.17.34"部分是条目的索引。1 是学习 ARP 条目的接口的 ifIndex,'ipv4' 是 ipNetToPhysicalNetAddressType,它是其中之一:unknown(0), ipv4(1), ipv6(2), ipv4z(3), ipv6z(4), dns(16)最后是 ARP 条目的 IP 地址,10.200.17.34。这三件事构成了该条目的索引。然后,该特定索引处的 ipNetToPhysicalPhysAddress 值就是 MAC 地址748e.f862.5941

但是当我读完这个 OID 时,比如说 snmpwalk,我没有得到我的路由器邻居缓存和 ARP 缓存中的所有内容。

这很可能是您设备的 SNMP 实现的问题(顺便说一下,您已经向我们提供了零信息)。如果您可以编辑原始问题以包含此信息以及snmpbulkwalk针对ipNetToPhysicalTable表格的输出,那将会很有用此外,你可以尝试做一个snmpbulkwalk反对ipv6NetToMediaTable,看看你是否从中得到了结果。

用于从 IP 地址映射到物理地址的 IP 地址转换表。

地址转换表包含 IP 地址到“物理”地址的等效项。某些接口不使用转换表来确定地址等价性(例如,DDN-X.25 具有算法方法);如果所有接口都属于这种类型,则地址转换表为空,即具有零个条目。

虽然可以使用许多协议来填充此表,但 ARP 和邻居发现是最有可能的选项。

( Cisco IP-MIB-V1SMI.my )

(使用 c1811 @ 15.1.4-M7 进行测试)

snmpwalk(或snmpbulkwalk) 显示 20 个元素。这是完全正确的:19 个 IPv4 和 1 个 IPv6。snmptable但是,除非被告知使用批量请求,否则无法正确填充。

rtr1811#show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.xx.xx.1              -   0023.5ee6.1d38  ARPA   Vlan1
Internet  10.xx.xx.201          205   001b.243e.1226  ARPA   Vlan1
Internet  10.xx.xx.202            0   001b.245d.686a  ARPA   Vlan1
Internet  10.xx.xx.252           65   0009.3d10.c3c7  ARPA   Vlan1
Internet  72.xxx.xxx.1            0   00a0.c8a7.5f19  ARPA   FastEthernet0
Internet  72.xxx.xxx.11           -   0023.5ee6.1d38  ARPA   FastEthernet0
Internet  72.xxx.xxx.14           0   00d0.b780.a68f  ARPA   FastEthernet0
Internet  192.168.xx.1           12   0004.23c6.a4ec  ARPA   FastEthernet1
Internet  192.168.xx.5           69   001c.581d.0d1b  ARPA   FastEthernet1
Internet  192.168.xx.8            -   0023.5ee6.1d39  ARPA   FastEthernet1
Internet  192.168.xx.9           40   0013.807a.7773  ARPA   FastEthernet1
Internet  192.168.xx.25          10   0009.3d10.c3c6  ARPA   FastEthernet1
Internet  192.168.xx.42           8   0021.2875.9eb6  ARPA   FastEthernet1
Internet  192.168.xx.100          1   0014.2232.d375  ARPA   FastEthernet1
Internet  192.168.xx.103          0   4061.860d.aa18  ARPA   FastEthernet1
Internet  192.168.xx.113          0   4061.860d.aa2e  ARPA   FastEthernet1
Internet  192.168.xx.171          0   0009.3d12.d8a1  ARPA   FastEthernet1
Internet  192.168.xx.172          0   0009.3d12.e10a  ARPA   FastEthernet1
Internet  192.168.xx.249         10   d07e.28d1.4201  ARPA   FastEthernet1
rtr1811#show ipv6 neighbors 
IPv6 Address                              Age Link-layer Addr State Interface
...:021B:24FF:FE3E:1226           0 001b.243e.1226  REACH Vl1

[批量请求]

[root:pts/5{4}]spork:~/[05:52 PM]:snmptable -CB -v 2c -c [] -m ALL 192.168.xx.8 ipNetToPhysicalTable
SNMP table: IP-MIB::ipNetToPhysicalTable

 ipNetToPhysicalPhysAddress ipNetToPhysicalLastUpdated ipNetToPhysicalType ipNetToPhysicalState ipNetToPhysicalRowStatus
       "00 A0 C8 A7 5F 19 "               0:0:00:45.10             dynamic              unknown                   active
       "00 23 5E E6 1D 38 "               0:0:00:45.10              static              unknown                   active
       "00 D0 B7 80 A6 8F "               0:0:00:45.10             dynamic              unknown                   active
       "00 04 23 C6 A4 EC "               0:0:00:45.14             dynamic              unknown                   active
       "00 1C 58 1D 0D 1B "               0:0:00:45.14             dynamic              unknown                   active
       "00 23 5E E6 1D 39 "               0:0:00:45.14              static              unknown                   active
       "00 13 80 7A 77 73 "               0:0:00:45.14             dynamic              unknown                   active
       "00 09 3D 10 C3 C6 "               0:0:00:45.14             dynamic              unknown                   active
       "00 21 28 75 9E B6 "               0:0:00:45.14             dynamic              unknown                   active
       "00 14 22 32 D3 75 "               0:0:00:45.14             dynamic              unknown                   active
       "40 61 86 0D AA 18 "               0:0:00:45.14             dynamic              unknown                   active
       "40 61 86 0D AA 2E "               0:0:00:45.14             dynamic              unknown                   active
       "00 09 3D 12 D8 A1 "               0:0:00:45.14             dynamic              unknown                   active
       "00 09 3D 12 E1 0A "               0:0:00:45.14             dynamic              unknown                   active
       "D0 7E 28 D1 42 01 "               0:0:00:45.14             dynamic              unknown                   active
       "00 23 5E E6 1D 38 "               0:0:00:45.22              static              unknown                   active
       "00 1B 24 3E 12 26 "               0:0:00:45.22             dynamic              unknown                   active
       "00 1B 24 5D 68 6A "               0:0:00:45.22             dynamic              unknown                   active
       "00 09 3D 10 C3 C7 "               0:0:00:45.22             dynamic              unknown                   active
       "00 1B 24 3E 12 26 "             45:17:36:28.75             dynamic                stale                   active

[非散装]

[root:pts/5{4}]spork:~/[05:53 PM]:snmptable -v 2c -c [] -m ALL 192.168.xx.8 ipNetToPhysicalTable
SNMP table: IP-MIB::ipNetToPhysicalTable

 ipNetToPhysicalPhysAddress ipNetToPhysicalLastUpdated ipNetToPhysicalType ipNetToPhysicalState ipNetToPhysicalRowStatus
       "00 D0 B7 80 A6 8F "               0:0:00:45.10             dynamic              unknown                   active
       "D0 7E 28 D1 42 01 "               0:0:00:45.14             dynamic              unknown                   active
       "00 21 28 75 9E B6 "               0:0:00:45.14             dynamic              unknown                   active
       "00 14 22 32 D3 75 "               0:0:00:45.14             dynamic              unknown                   active
       "40 61 86 0D AA 18 "               0:0:00:45.14             dynamic              unknown                   active
       "40 61 86 0D AA 2E "               0:0:00:45.14             dynamic              unknown                   active
       "00 09 3D 10 C3 C7 "               0:0:00:45.22             dynamic              unknown                   active
       "00 1B 24 3E 12 26 "             45:17:41:29.78             dynamic                stale                   active