How do I poll the ARP table with an SNMP OID?
When you need to poll the ARP table of a device, conventional wisdom is to use ipNetToMediaPhysAddress
or atPhysAddress
; however, both of these OIDs are deprecated according to Cisco's documentation.
These OIDs work just fine; however, I'm building a new tool so it makes sense to use the most current OID, if possible.
Is there a non-deprecated SNMP OID to query for the ARP table in a device? Google hasn't turned this answer up for me, so far...
Mircea's answer works well on newer IOS...
[mpenning@something]$ snmpbulkwalk -v 2c -c public -Osq 192.0.2.1 ipNetToPhysicalPhysAddress
ipNetToPhysicalPhysAddress.2.ipv4."192.0.2.1" a4:4c:11:90:56:80
ipNetToPhysicalPhysAddress.2.ipv4."192.0.2.2" a4:4c:11:96:68:0
ipNetToPhysicalPhysAddress.2.ipv4."192.0.2.101" 0:90:b:43:80:74
[mpenning@something]$ snmpbulkwalk -v 2c -c public -Oqv 192.0.2.1 sysDescr
Cisco IOS Software, C3900 Software (C3900-UNIVERSALK9-M), Version 15.2(2)T1, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2012 by Cisco Systems, Inc.
Compiled Wed 29-Feb-12 23:44 by prod_rel_team
[mpenning@something]$
Older IOS requires use of ipNetToMediaPhysAddress
Solution 1:
You should use ipNetToPhysicalTable
as defined by RFC 4293. So ipNetToMediaPhysAddress
becomes ipNetToPhysicalPhysAddress
ipNetToMediaTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpNetToMediaEntry
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"The IPv4 Address Translation table used for mapping from
IPv4 addresses to physical addresses.
This table has been deprecated, as a new IP version-neutral
table has been added. It is loosely replaced by the
ipNetToPhysicalTable."
::= { ip 22 }