| |||||||||
| Application layer | HTTP, SMTP, FTP, SSH, IRC, SNMP ... |
| Transport layer | TCP, UDP, SCTP, RTP, ... |
| Network layer | IP, IPv6, ARP, IPX ... |
| Data link layer | Ethernet, 802.11 WiFi, Token ring, FDDI, ... |
The Simple Network Management Protocol (SNMP) forms part of the internet protocol suite as defined by the Internet Engineering Task Force. The protocol can be used to monitor network-attached devices for any conditions that warrant administrative attention.
The first RFCs for SNMP appeared in 1988:
Architecturally, the SNMP framework has three fundamental components:
Each Internet Protocol (IP) addressable system in a network, such as a node or a router, hosts a master agent for that system. A master agent typically limits its activity to parsing and formatting of the protocol.
If the system has multiple manageable subsystems present, the master agent passes on the requests it receives to one or more subagents. These subagents model objects of interest within a subsystem and interface to that subsystem for monitoring and management operations. The role of the master agent and subagent can merge, in which case it is simply referred to as an agent.
A clean separation of the protocol from the structure of management information has made it easy to use SNMP to monitor and often manage hundreds of different subsystems within a network. Within the SNMP architecture, each managed subsystem is modeled through via a Management Information Base (MIB) defined specifically for it. This MIB specifies precisely the management data and operations that a subagent makes possible. This model permits management across all layers of the OSI reference model and extending into applications such as databases, email, and the J2EE reference model.
The manager or management station provides the third component. It functions as the equivalent of a client in a client-server architecture. It issues requests for management operations on behalf of an administrator or application, and receives traps from agents as well.
The SNMP protocol operates at the application layer (layer 7) of the OSI model. It specified (in version 1) four core protocol data units (PDUs):
Typically, SNMP uses port 161 and 162.
Simple Network Management Protocol version 2 revises version 1 and includes improvements in the areas of performance, security, confidentiality, and manager-to-manager communications. It introduced GETBULK, an alternative to iterative GETNEXTs for retrieving large amounts of management data in a single request.
The Internet Engineering Task Force (IETF) recognizes Simple Network Management Protocol version 3 as defined by RFC3411-RFC3418 (also known as STD0062) as the current standard version of SNMP as of 2004. The IETF considers earlier versions as "Obsolete" or "Historical".
In practice, SNMP implementations often support multiple versions: typically SNMPv1, SNMPv2c, and SNMPv3. See RFC3584 "Coexistence between Version 1, Version 2, and Version 3 of the Internet-standard Network Management Framework" (link in the following section).
Example The output below exemplifies an snmpwalk performed on a router, and shows general information about the device.
snmpwalk -c public punch system
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-IO3-M), Version 12.2(15)T5, RELEASE SOFTWARE (fc1)
TAC Support: http://www.cisco.com/tac
Copyright (c) 1986-2003 by cisco Systems, Inc.
Compiled Thu 12-Jun-03 15:49 by eaarm
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.187
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (835747999) 96 days, 17:31:19.99
SNMPv2-MIB::sysContact.0 = STRING: wikiuser
SNMPv2-MIB::sysName.0 = STRING: punch
SNMPv2-MIB::sysLocation.0 = STRING: test
SNMPv2-MIB::sysServices.0 = INTEGER: 78
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00