Академический Документы
Профессиональный Документы
Культура Документы
SNMP was made with one design in mind… to be simple. SNMP is a simple protocol that
can be used on just about any networking device in use today. In some environments it’s
used heavily, in others it’s scarce. Some view it as a security threat; others see it as a way to
efficiently manage some of their key systems. However you decide to see it, SNMP is a
easy to use, easy to set up and not very difficult to understand.
The SNMP protocol was designed to provide a "simple" method of centralizing the
management of TCP/IP-based networks – plain and simple. If you want to manage devices
from a central location, the SNMP protocol is what facilitates the transfer of data from the
client portion of the equation (the device you are monitoring) to the server portion where
the data is centralized in logs for centralized viewing and analysis. Many application
vendors supply network management software: IBM’s Tivoli, Microsoft’s MOM and HP
Openview are three of over 100+ applications available today to manage just about
anything imaginable. The protocol is what makes this happen. The goals of the original
SNMP protocols revolved around one main factor that is still in use today: Remote
Management of Devices. SNMP is commonly used to manage devices on a network.
UDP stands for User Datagram Protocol and is the opposite of TCP, Transmission Control
Protocol which is a very reliable and high overhead protocol.
User Datagram Protocol is very low overhead, fast and unreliable. It is defined by RFC
768. UDP is easier to implement and use than a more complex protocol such as TCP. It
does however provide plenty of functionality to allow a central manager station to
communicate with a remote agent that resides on any managed device that it can
communicate with. The unreliability comes in the form of checks and balances whereas if
TCP sends something, it waits for an acknowledgment and if it doesn’t hear back, it will
resend. Since logging of devices usually happens within a time period that is cyclic in
nature, then it’s common sense that you missed the event and you’ll catch it next time… the
tradeoff being that the low overhead protocol is simple to use and doesn’t eat up all your
bandwidth like TCP based applications going across your WAN.
SNMP Operation
SNMP design is pretty simple. There are two main players in SNMP. The manager and the
agent. The manager is generally the ‘main’ station such as HP Openview. The agent would
be the SNMP software running on a client system you are trying to monitor.
The manager is usually a software program running on a workstation or larger computer
that communicates with agent processes that run on each device being monitored. Agents
can be found on switches, firewalls, servers, wireless access points, routers, hubs, and even
users' workstations – the list goes on and on. As seen in the illustration, the manager polls
the agents making requests for information, and the agents respond when asked with the
information requested.
The manager is also called a Network Management Station or NMS for short. The software
used to create the NMS varies in functionality as well as expense. You can get cheaper
applications with lesser functionality or pay through the nose and get the Lamborghini of
NMS systems. Other functionalities of the NMS include reporting features, network
topology mapping and documenting, tools to allow you to monitor the traffic on your
network, and so on. Some management consoles can also produce trend analysis reports.
These types of reports can help you do capacity planning and set long-range goals.
SNMP Primitives
SNMP has three control primitives that initiate data flow from the requester which is
usually the Manager. These would be get, get-next and set. The manager uses the get
primitive to get a single piece of information from an agent. You would use get-next if you
had more than one item. When the data the manager needs to get from the agent consists of
more than one item, this primitive is used to sequentially retrieve data; for example, a table
of values. You can use set when you want to set a particular value. The manager can use
this primitive to request that the agent running on the remote device set a particular variable
to a certain value. There are two control primitives the responder (manager) uses to reply
and that is get-response and trap. One is used in response to the requester's direct query
(get-response) and the other is an asynchronous response to obtain the requester's attention
(trap). As I mentioned earlier, I alluded to the fact that the manager doesn’t always initiate –
sometimes the agent can as well. Although SNMP exchanges are usually initiated by the
manager software, this primitive can also be used when the agent needs to inform the
manager of some important event. This is commonly known and heard of as a ‘trap’ sent by
the agent to the NMS.
We just learned what primitives were… the agent and the manager, exchanging data. The
data they exchange also has a name. The types of data the agent and manager exchange are
defined by a database called the management information base (MIB).The MIB is a virtual
information store. Remember, it is a small database of information and it resides on the
agent. Information collected by the agent is stored in the MIB. The MIB is precisely
defined; the current Internet standard MIB contains more than a thousand objects. Each
object in the MIB represents some specific entity on the managed device.
With all TCP/IP related protocols, it’s a well known fact that anything dating before the
creation of IPv6 (or IPng) has security weaknesses such as passwords sent in cleartext.
SNMP in its original form is very susceptible to attack if not secured properly, messages
sent in cleartext exposing community string passwords, or default passwords of public and
private being ‘guessed’ by anyone who knew how to exploit SNMP… beyond its inherent
weaknesses SNMP in its original implementation is still very simple to use and has been
widely used throughout the industry. SNMP in its first version lacked encryption or
authentication mechanisms. So, now that SNMP in its first version was good enough, work
began to make it better with SNMPv2 in 1994. Besides for some minor enhancements, the
main updates to this protocol come from the two new types of functionality, where traps
can be sent from one NMS to another NMS as well as a ‘get-bulk’ operation that allows
larger amounts of information to be retrieved from one request. SNMPv3 still being worked
on and is incorporating the best of both versions and enhanced security as well. SNMPv3
provides secure access to devices by a combination of authenticating and encrypting
packets over the network. The security features provided in SNMPv3 are message integrity
which ensures that a packet has not been tampered with while in transit, authentication
which is determining the message is from a valid source and encryption, which is the
securing of the packet by scrambling its contents.
SNMP Tutorial Series: 5 Quick Steps to
Understanding SNMP and its Role in Network
Alarm Monitoring
SNMP Tutorial Part 1: An Introduction to SNMP
SNMP Tutorial Part 2: The Management Information Base (MIB)
SNMP Tutorial Part 3: Understanding Packet Types and Structure
SNMP Tutorial Part 4: Layered Communication
SNMP Tutorial Part 5: Common Mistakes Made When Integrating SNMP and
Non-SNMP Systems
SNMP uses five basic messages (GET, GET-NEXT, GET-RESPONSE, SET, and TRAP) to
communicate between the manager and the agent. The GET and GET-NEXT messages
allow the manager to request information for a specific variable. The agent, upon
receiving a GET or GET-NEXT message, will issue a GET-RESPONSE message to the
manager with either the information requested or an error indication as to why the
request cannot be processed. A SET message allows the manager to request a change
be made to the value of a specific variable in the case of an alarm remote that will
operate a relay. The agent will then respond with a GET-RESPONSE message indicating
the change has been made or an error indication as to why the change cannot be
made. The TRAP message allows the agent to spontaneously inform the manager of an
‘important’ event.
As you can see, most of the messages (GET, GET-NEXT, and SET) are only issued by
the SNMP manager. Because the TRAP message is the only message capable of being
initiated by an agent, it is the message used by DPS Remote Telemetry Units (RTUs) to
report alarms. This notifies the SNMP manager as soon as an alarm condition occurs,
instead of waiting for the SNMP manager to ask.
The small number of commands used is only one of the reasons SNMP is "simple." The
other simplifying factor is its reliance on an unsupervised or connectionless
communication link. This simplicity has led directly to its widespread use, specifically in
the Internet Network Management Framework. Within this framework, it is considered
‘robust’ because of the independence of the managers from the agents, e.g. if an
agent fails, the manager will continue to function, or vice versa. The unsupervised
communication link does however create some interesting issues for network alarm
monitoring we will discuss more thoroughly in a later issue of our tutorial.
When an element sends a TRAP packet, it can include OID and value information
(bindings) to clarify the event. DPS remote units send a comprehensive set of bindings
with each TRAP to maintain traditional telemetry event visibility. Well-designed SNMP
managers can use the bindings to correlate and manage the events. SNMP managers
will also generally display the readable labels to facilitate user understanding and
decision-making.
This part of our tutorial on the Simple Network Management Protocol (SNMP) examines
the communication between managers and agents. Basic serial telemetry protocols,
like TBOS, are byte oriented with a single byte exchanged to communicate. Expanded
serial telemetry protocols, like TABS, are packet oriented with packets of bytes
exchanged to communicate. The packets contain header, data and checksum bytes.
SNMP is also packet oriented with the following SNMP v1 packets (Protocol Data Units
or PDUs) used to communicate:
1. Get
2. GetNext
3. Set
4. Trap
The manager sends a Get or GetNext to read a variable or variables and the agent's
response contains the requested information if managed. The manager sends a Set to
change a variable or variables and the agent's response confirms the change if
allowed. The agent sends a Trap when a specific event occurs.
The image below shows the packet formats. Each variable binding contains an
identifier, a type and a value (if a Set or response). The agent checks each identifier
against its MIB to determine whether the object is managed and changeable (if
processing a Set). The manager uses its MIB to display the readable name of the
variable and sometimes interpret its value.
To illustrate the function of this layered model, let's look at a single SNMP GET request
from the agent's perspective. The SNMP manager wants to know what the Agent's
System Name is and prepares a GET message for the appropriate OID. It then passes
the message to the UDP layer. The UDP layer adds a data block that identifies the
manager port to which the response packet should be sent and the port on which it
expects the SNMP agent to be listening for messages. The packet thus formed is then
passed to the IP layer. Here a data block containing the IP and Media Access addresses
of the manager and the agent is added before the entire assembled packet gets passed
to the Network Interface layer. The Network Interface layer verifies media access and
availability and places the packet on the media for transport.
After working its way across bridges and through routers (the modern equivalent of
over the rivers and through the woods) based on the IP information, the packet finally
arrives at the agent. Here it passes through the same four layers in exactly the
opposite order as it did at the manager. First, it is pulled off the media by the Network
Interface layer. After confirming that the packet is intact and valid, the Network
Interface layer simply passes it to the IP layer. The IP layer verifies the Media Access
and IP address and passes it on to the UDP layer where the target port is checked for
connected applications. If an application is listening at the target port, the packet is
passed to the Application layer. If the listening application is the SNMP agent, the GET
request is processed as we have discussed in previous articles. The agent response
then follows the identical path in reverse to reach the manager.
An SNMP message passes through the protocol layers at both the manager and the agent.
Each layer addresses a specific communication task.
SNMP is a standard protocol that has wide acceptance in the industry and is flexible
enough to describe almost anything. Because of these advantages, many network
managers have come to believe that SNMP should be used for all network monitoring
applications.
SNMP certainly has its place in an effective telecom network management solution, but
this doesn't mean that any off-the-shelf SNMP manager can provide adequate visibility
and control of your network.
The typical off-the-shelf SNMP manager is not designed for displaying and processing
telemetry data for effective network monitoring, especially for the kind of real-world
monitoring tasks network managers most need performed. These capabilities can be
added to an SNMP manager, but it usually requires substantial custom software
development.
Before you buy … make sure you avoid these 7 common mistakes
There are seven common mistakes network managers typically make when integrating
SNMP and non-SNMP monitoring. Your SNMP implementation will be successfully only if
you can avoid them.
It is true that many, but not all, of these functions can be added to standard SNMP
managers, but implementing network alarm monitoring in a basic SNMP manager
usually involves a substantial amount of custom software module development. Even
when pre-built software modules are available, they usually require custom tweaking
to perform exactly as you want them to.
The need for extensive customization eliminates the advantage of using a simple open
standard, and it is difficult to justify significant development costs after purchasing an
already expensive SNMP manager. Why take the time, trouble, and expense to recreate
capabilities that are already present in a high-quality, SNMP-capable network alarm
management system?
Relying on an SNMP manager for critical network monitoring just doesn't take into
account the tons of legacy and non-SNMP equipment that is functioning perfectly fine
out in networks all over the world. The role of an SNMP manager is best used for
inventorying network devices and drilling down into equipment details after your
network monitoring system notifies you of a problem.
SNMP can be an effective tool, but it's only one item in your network alarm monitoring
toolkit, and it can be used more effectively when it is part of a total network
monitoring solution.
If you are looking to avoid these 7 mistakes, then the T/Mon network alarm monitoring
system is for you. It is specifically designed to avoid them. Network managers who rely
on T/Mon for their network alarm monitoring, notification, and control comment,
“Looking at one map and knowing it represents every piece of equipment you’re
monitoring in the field… that’s pretty good peace of mind."