BB4-8422 SNMP
Overview
Introduction
SNMP is very simple in the sense that everything is
accessed with just a Get or Set. On the other hand, fully understanding the
language of MIBs is the subject of entire college level text books. We will
only attempt a very brief overview here. If you want to learn more, invest in a
book or two. Your local book store is not likely to have much on SNMP, but
online book stores do. Just search for "SNMP". O'Reilly is one of the
more prolific publishers of top quality technical
computer books.
About SNMP
SNMP provides a universal method of exchanging data
for purposes of managing devices that reside on a network. The use of SNMP is
most dominant in the telecommunications industry. Several Control Solutions
products are capable of providing SNMP access to their data.
SNMP, Modbus, and LonWorks
have this in common: They provide a protocol for accessing individual variables
within a device connected to a network. Modbus refers to these variables as
"registers" while LonWorks and SNMP both
refer to "variables". Most often the variables are 16 or 32 bits of
data.
SNMP stands for Simple Network Management Protocol,
and operates at the application layer in the OSI Network Reference Model. ASN.1
and BER provide the presentation layer. UDP and IP provide the transport and
network layers. In the case of Control Solutions products, Ethernet provides
the data link layer, and the physical connection is the RJ-45 connector.
SNMP provides access to data via a set of
"variables" which have "names" constructed in a format
defined by the SNMP protocol. An SNMP variable name resembles an IP address
with integer number fields separated by dots (decimal points or periods), with
the difference being that the SNMP variable name may have many more than the 4
fields found in the IP address. The collection of variables or "managed
objects" found in an SNMP device is known as the Management Information
Base (MIB).
The MIB provides the map of hierarchial
order of all managed objects and how they are accessed. The MIB is defined at
the source level using ASN.1 (Abstract Syntax Notation ver. 1), and encoded for
transmission using BER (Basic Encoding Rules). The set of rules used to specify
the format used for defining managed objects that are accessed via the SNMP
protocol is known as Structure of Management Information (SMI). All of this is
generally transparent to the user of the Control Solutions i.CanDoIt software, but must be understood by
developers wishing to develop applications that interface to i.CanDoIt at the host level.
Additional information and specifications for the
SNMP protocol may be found in documents known as RFCs which may be found on
various sites on the Internet. Just Google 'SNMP RFC'. The RFC documents are
very dry reading. There are a variety of books available on the subject in more
readable form, some of which may be found in local book stores. A readily
readable introduction to SNMP may be found in Section I of "Windows NT
SNMP" by James D. Murray (O'Reilly) ISBN: 1-56592-338-3.
Learn More Here
You can learn more extensively about SNMP here: http://www.net-snmp.org. Note: The Net-SNMP implementation is a widely used open source implementation. This is the implementation used
in the IoTServer. If you have questions about the
details of the snmpd.conf and snmptrapd.conf
files, for example, you will find all of the documentation that exists on the
Net-SNMP web site.
The official definition in RFC form may be found
here: http://www.ietf.org/rfc/rfc1157.txt
New to SNMP?
Are you an equipment vendor that has been informed
by a customer that you need to have an SNMP interface? Don't panic. Here is
what you need to know about SNMP: It's just another protocol. That's it. The
underlying concept is the same as Modbus or most other device level protocols.
It is simply a way of addressing data over a communications interface. It is
generally done by assigning each device on the network a unique ID, and within
each device, each available piece of data has an identifier. In Modbus, that
data identifier is called a register number. In SNMP, that identifier is called
an OID and looks like an overgrown IP address.
If the Modbus analogy means little because you are
unfamiliar with Modbus, then think of an Excel spread sheet. We assign one row
per device, and within each device we have several columns of data. The
"protocol" is simply the agreed upon means of addressing the rows and
columns of data. That protocol agreement is somewhat like simply agreeing that
all formal letters we write will begin with "Dear Sir" and end with
"Sincerely". In protocol talk, the "Dear Sir" is called a
header, and the "Sincerely" is sometimes called the tail, and usually
contains some form of error checking to make sure we got the rest of the letter
right. The body of the letter says something like "please send me row 5,
columns 9 through 14" or "please accept the new value of '450' I am
sending you for row 3, column 11".
How do we add SNMP to existing equipment? Many OEM
controllers have a Modbus port. If you have that, we have a gateway that will
adapt Modbus to SNMP. If you do not have Modbus, Control Solutions also has
physical I/O with SNMP access. If you simply have a switch contact, or a sensor
that provides 0-10VDC or 4-20mA, we can put that information into SNMP form.
Select one of the SNMP menus above to see our SNMP options.
Glossary of SNMP
terms
This is really only a subset of terms, but covers
the most commonly used terms.
SNMP - Stands for
Simple Network Management Protocol. The parties to an SNMP transaction are most
properly known as Manager and Agent. These are analogous to other protocol
terms as follows: Manager is Client or Master. Agent is Server or Slave.
MIB - Stands for
Management Information Base, and most often is a reference to the source code
written in ASN.1 syntax that defines the set of variables found in a device's
information base. The MIB source code is compiled by a MIB compiler, which is
usually part of a network management tool that will then use the MIB
information to access variables in the device.
OID - Stands for
Object Identifier, and is the string of numbers that defines the
"address" of a variable in a MIB. The registers in a Control
Solutions AddMe III for example start at
1.3.6.1.4.1.3815.1.2.2.1.1.1.1.1.2.1.
Private Enterprise Number - Variables that are unique to a particular manufacturer's equipment must
be located under the private enterprises branch of the ISO naming tree.
Therefore, every private enterprise OID will begin with 1.3.6.1.4.1.XXX where
XXX is the private enterprise number for that manufacturer. Control Solutions'
number is 3815. Any time you see an OID that starts with 1.3.6.1.4.1.3815, you
know it is referring to something from Control Solutions. These are maintained
by IANA, and you can see the entire list here: http://www.iana.org/assignments/enterprise-numbers
Get/Set - These are the
SNMP terms for reading and writing a variable in a device's MIB. The Get/Set
will contain at least one OID, and may contain multiple OID's along with
respective data. Get/Set requests are initiated by the SNMP Manager, and
responses are returned by the Agent.
Trap - This is the
only form of SNMP message initiated spontaneously by the Agent. It is most
often used as an alarm notification, and will contain a list of OID's with
respective data describing the event being reported.
v1, v2, v3 - The various
versions of SNMP protocol, created over time, with increasing levels of
complexity and functionality. The major enhancement in v3 versus v2 is
authentication and privacy (encryption, security) were added in v3. Other than
the authentication and security measures, v3 is the same as v2 in terms of data
packet structure.