Transcript SNMP
SNMP
(Simple Network Management Protocol)
Jon Sevy
Geometric and Intelligent Computing Laboratory
Department of Mathematics and Computer Science
Drexel University
http://gicl.mcs.drexel.edu
SNMP Overview
• Define mechanism for remote management of
network devices (routers, bridges, etc.)
• Fundamental principle: all device management done
by simple variable value manipulation
• Approach:
– standard means for specifying quantities recognized by
devices
– protocol for requesting, returning, notifying of changes of
values
SNMP Message Protocol
• Messages use UDP, ports 161 (requests/responses)
and 162 (notifications)
• Message types:
– GetRequest: request values of variables from device
– GetNextRequest: request value of variable following the one
supplied
– GetResponse: return values
– SetRequest: instruct device to set values of variables
– Trap: from device - notify monitor / manager of value change
SNMP Communities
• Define “communities” specifying access to specific
variable sets (read-write, read only, none)
• Supply community name as “password” in each
message
– unencrypted in version of SNMP still widely used!!
SNMP Message Encoding
• Encode message as byte stream using ASN.1 BER
(Abstract Syntax Notation 1 Basic Encoding Rules)
• Quantites encoded as Type,Length,Value triples
• Types
– Subset of basic ASN.1 types used in SNMP: integer, octet
string, object identifier (“variable name”), sequence
– SNMP-defined types: gauge, counter, IP address, etc.
• Values
– weirdly encoded!! (see ASN.1 specs)
SNMP SMI
(Structure of Management Information)
• Variables recognized by device supplied in MIB
(Management Information Base)
– text file giving variables and data structures defined using
ASN.1
– standard variable sets often provided as RFC’s
– device-specific sets provided by vendors
• Management stations parse MIB’s to determine
variables available for management
– obtain both data structure and management information
Example portion of MIB (from RFC 1213)
-- the Interfaces group
-- Implementation of the Interfaces group is mandatory for
-- all systems.
ifNumber OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of network interfaces (regardless of
their current state) present on this system."
::= { interfaces 1 }
ASN.1 Object Identifiers
• Variables identified by globally unique strings of digits
– ex: 1.3.6.1.4.1.3.5.1.1
– name space is hierarchical; tree on next slide
• in above, 1 stands for iso, 3 stands for org, 6 stands for dod,
1 stands for internet, 4 stands for private, etc.
• Variable names are aliases for digit strings (within
MIB)
– From previous page: ifNumber ::= { interfaces 1 }
– interfaces was previously defined in MIB as 1.3.6.1.2.1.2, so
ifNumber = 1.3.6.1.2.1.2.1
Partial ASN.1 Object Identifier Tree
(from: ASN.1 Complete, J. Larmouth, Open Systems Solutions, 1999)
Application: GICL SNMP Monitor
• Java-based SNMP application
– Query devices for available MIB variables
– Set desired variable values
• Current status
– retrieve and display all values from device
– automatically build data structures to hold retrieved values
• Future work
– incorporate MIB information via MIB parser
– auto-generate GUI display
– implement device discovery
References
• Internet Standards 15, 16 and 17
• ASN.1 Complete, J. Larmouth, Open Systems
Solutions, 1999 (available online)
• SNMP : a guide to network management, S. Feit,
McGraw-Hill, 1995