08-16-2017, 10:23 PM
[attachment=14187]
SNMP (Simple Network Management Protocol)
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)
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