On this page
SNMP versions and why v3OIDs and the MIB treeMIB-II standard objectsEnterprise MIBs and the Foundry 1991 branchLoading vendor MIBs into a pollerPolling intervals and counter wrapTraps versus polling, and common mistakesQuestions01 /SNMP versions and why v3
Three SNMP versions are in service. Operations barely changed; security and counter width did.
| Version | Year | Authentication | Encryption | 64-bit counters | Status |
|---|---|---|---|---|---|
| v1 | 1990 (RFC 1157) | Community string in clear text | None | No | Legacy, read-only at most |
| v2c | 1996 (RFC 1901) | Community string in clear text | None | Yes (Counter64, GetBulk) | Common inside trusted networks |
| v3 | 2002 (RFC 3410 to 3418) | Per-user, HMAC-based | Optional (DES, AES) | Yes | Recommended everywhere |
Use v3 with authentication and privacy for anything reachable beyond one management VLAN. Use v2c only where old hardware lacks v3, restricted to read-only communities and a source ACL. Never enable write access through a community string.
02 /OIDs and the MIB tree
Every managed object has an object identifier (OID): a dotted sequence of integers naming a path from the root of one global tree, administered top-down so organisations cannot collide. The prefix that matters is 1.3.6.1, iso.org.dod.internet. Below it, 2.1 holds the standard objects (mib-2) and 4.1 holds private enterprise branches, one per vendor.
1 iso 1.3 org 1.3.6 dod 1.3.6.1 internet 1.3.6.1.2.1 mgmt.mib-2 1.3.6.1.2.1.1.3 sysUpTime 1.3.6.1.2.1.2.2 ifTable 1.3.6.1.4.1 private.enterprises 1.3.6.1.4.1.1991 Foundry Networks
A MIB module is the human-readable file, written in the SMI subset of ASN.1, that assigns names, types, access rules and descriptions to those numbers. Without it a poller still returns values, but as anonymous numbers under anonymous OIDs.
03 /MIB-II standard objects
MIB-II (RFC 1213) defines what every SNMP-capable device should offer. The system group gives sysDescr, sysObjectID (which identifies the model by pointing into the vendor branch), sysUpTime, sysName and sysLocation. The interfaces group gives ifTable: one row per interface with ifDescr, ifSpeed, ifOperStatus, ifInOctets, ifOutOctets and error counters. RFC 2863 added ifXTable with ifName, ifAlias, ifHighSpeed and the 64-bit ifHCInOctets and ifHCOutOctets. Bandwidth graphs should read the HC counters; see counter wrap below.
04 /Enterprise MIBs and the Foundry 1991 branch
Anything the standards do not cover (CPU load, temperature, power and fan state, optical diagnostics, load balancer session counts) lives in the vendor branch under 1.3.6.1.4.1. Each vendor holds an IANA enterprise number; Foundry Networks was assigned 1991, so every Foundry-specific object begins 1.3.6.1.4.1.1991. Second-hand BigIron, FastIron and ServerIron units still answer under that branch, and IronView Network Manager was essentially a front end to it. The original Foundry MIB reference documented the branch as one large PDF.
05 /Loading vendor MIBs into a poller
Obtain the MIB files matching the software release on the device; definitions move between releases. Copy them into the directory your poller or command-line tools search, and make sure every imported module (usually SNMPv2-SMI, SNMPv2-TC, IF-MIB and the vendor root module) is present. Bare numbers under the enterprise branch mean the root module is missing or the file is for another release. Pollers also need a device template mapping vendor objects onto graphs; that is separate from the MIB.
06 /Polling intervals and counter wrap
Octet counters increase monotonically and wrap to zero at their maximum, 4,294,967,295 for 32 bits. The poller computes rate as the difference between two readings divided by the interval, so a counter that wraps more than once between polls gives a silently wrong rate. Wrap time falls with link speed:
Poll interfaces every 60 seconds if the load is affordable, every 300 if not, and always use 64-bit counters above 100 Mbps. A single wrap between polls can be corrected by adding 2 to the power of 32 to a negative difference; a double wrap cannot.
07 /Traps versus polling, and common mistakes
Polling asks the device for values on a schedule. A trap (or in v2c and v3 an acknowledged inform) is sent by the device the moment something happens: a link drops, a power supply fails. Traps arrive on UDP 162 and are defined in the MIB as NOTIFICATION-TYPE objects. Use both: polling gives trends and catches events lost with a dropped UDP packet; traps give sub-second notice without polling every object every second.
The two recurring mistakes are SNMP exposed to the internet and default community strings left in place. In February 2002 the PROTOS test suite from the University of Oulu showed that malformed SNMP messages crashed or compromised agents from almost every vendor; CERT advisory CA-2002-03 covered the industry, Foundry included (see security advisories). The fix then and now: filter UDP 161 and 162 to known managers, replace "public" and "private", prefer v3, disable write access.
08 /Questions
What is the difference between SNMP and a MIB?
SNMP is the protocol: get, set, walk and trap operations over UDP. A MIB is a definition file that names the objects a device exposes, assigns OIDs and types, and describes their meaning. The protocol moves values; the MIB names them.
What is OID 1.3.6.1.4.1.1991?
The private enterprise branch IANA assigned to Foundry Networks. All Foundry-specific objects, such as CPU utilisation, temperature and ServerIron session counts, live under it. Later products from the acquiring companies kept using the branch for backward compatibility.
Why do bandwidth graphs show impossible spikes or gaps?
Almost always 32-bit counter wrap. At 1 Gbps ifInOctets wraps every 34 seconds, so a five-minute poll cannot compute a valid rate. Switch the poller to the 64-bit ifHCInOctets and ifHCOutOctets from IF-MIB, which requires SNMPv2c or v3.
Is SNMPv2c safe to use?
Only inside a trusted management network with read-only communities and a source-address filter. The community string travels in clear text and can be sniffed. For anything else use SNMPv3 with authentication and encryption.
Should monitoring rely on traps or on polling?
Both. Traps deliver immediate notice of state changes but ride on UDP and can be lost. Polling gives trends and confirms state on a schedule but cannot react within seconds. Send traps to the system that polls, so it can reconcile the two.
Sources
- IETF RFC 1157, A Simple Network Management Protocol (SNMP), 1990
- IETF RFC 1213, Management Information Base for Network Management of TCP/IP-based internets: MIB-II, 1991
- IETF RFC 2863, The Interfaces Group MIB, 2000
- CERT Coordination Center, Advisory CA-2002-03, Multiple Vulnerabilities in Many Implementations of the Simple Network Management Protocol, 2002