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.