[cacti-announce] Cacti 0.8.6j Released (fwd)

michael.dillon at bt.com michael.dillon at bt.com
Wed May 9 09:25:14 UTC 2007

> but I'm still unclear on
> what an MIB actually _is_, 

A MIB is the database schema for an object-oriented hierarchical
database. The key words there are schema and hierarchical. Schema means
that it describes how the data is organized and hierarchical means that
it is *NOT* organized in tables like a relational database, but in a
tree structure, like DNS gone mad.

> what problem ASN.1 actually solves, 

When you transmit data across a wire, you need to be able to parse the
individual data elements out of the bitstream at the receiving end.
ASN.1 is merely one way of encoding data so that it can be reliably
parsed at the other end. If you have ever had problems loading a CSV
file into a database, you will realize the importance of having a
defined standard for encoding data so that it can be reliably decoded by
an arbitrary recipient. Theoretically, SNMP is better than parsing IOS
command output, but in practice, it may be hard or impossible to get the
information that you want via SNMP. 

> more to the point how the whole shebang (I'm using net-snmpd) is
> typically used.

Typically? I think that typically people use the names from the schemas
(MIBs) to identify the key to the data that they want, then put the
numeric keys directly into their application. That way you can run it on
any server regardless of whether the MIB(Schema) is available or not.
But if you do stick keys like . in your code it
is a good idea to include the named version of the key in the comments.

> I believe that what I need to do is get any/all MIBs for all
> (typically networking hardware devices) that I want to monitor, and
> them into the net-snmp configuration somehow, and then software that
> on net-snmp can access the information from the devices.
> Is this accurate?

That would work but it can be tricky to get the RIGHT MIBs that match
the data actually available in your device. Also, reading MIBs can be
misleading because you will see things that look great, but don't work
because they are deprecated or because the router vendor didn't
implement it the way that you think.

> Will I need to import MIBs to every net mgmt application? Should they
> be carefully accounted for and synchronized, or can I treat them like
> a typical configuration file, where it is obvious if I need it and I
> get them as needed?

Now you see where the SNMP alligator swamp lies. If you are building
your own network management applications, you may be happier only
putting the MIBs on the development machines, and putting the numeric
keys into your application code, or better yet, into your application's
config file. MIBs have lots of stuff that you probably don't need unless
you are allowing users to browse through and query arbitrary data.

--Michael Dillon

More information about the NANOG mailing list