SNMPv1&2
Network Management
Spring 2017
Bahador Bakhshi
CE & IT Department, Amirkabir University of Technology
This presentation is based on the slides listed in references.
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
SNMP Communication model
SNMP Administration model & Security
Conclusion
2
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
SNMP Communication model
SNMP Administration model & Security
Conclusion
3
The Basic Ingredients of Network Management
How to communicate
between Manager & Agent:
SNMP Protocol
What are inside of SNMP
agents: SMI, MIB, Security,
….
4
Simple Network Management Protocol (SNMP)
SNMP is one of the most widely used network
management protocols
In fact SNMP is a management standard not only a protocol
When we say SNMP management, we are really referring to
Internet management standard
SNMP communication protocol is a part of the standard
SNMP Goals
Ubiquity
From PCs to Carrier networks
From small to large network elements
Inclusion of management functions should be inexpensive
Small code
Limited functionality
Management extensions should be possible
New MIBs
5
SNMP Versions
SNMPv1
The initial version
Performance & Security limitations
SNMPv2
Initially intended to resolve SNMPv1 issues, but
Performance improvement
More standard management information (MIB-II)
SNMPv3
Major focus on security
6
SNMP Four Key Parts
Structure of Management Information (SMI):
Data definition language for MIB objects
Management Information Base (MIB):
View of agent, set of MOs, some standard MIBs
SNMP communication protocol
Manager Agent: object info, commands, …
Security and administration capabilities
Major addition in SNMPv3
7
SMI: Data Definition Language
We want to ensure that the syntax and semantics
of management data are well-defined and
unambiguous
SMI is the language in which that information is
specified
It does not define what specific data is required for a
particular managed network entity
To do this, SMI allows us to use base data types
Higher level constructs, including sequences, objects
and modules.
8
Management Information Base (MIB)
The MIB can be thought of as a virtual
information store, holding managed objects
whose values collectively reflect the current
state of the network
Managed objects are specified and
gathered into MIB modules using SMI
There are now over ~ 200 standardized
MIB modules and many, many more
vendor-specific (private) MIB modules
9
SNMP Communication Protocol
Two ways to convey MIB information and commands
Manager initiated
A managing entity initiates a request to management agent
The agent receives the request, performs some action, and
sends a reply to the request
Typically this is used to query or modify MIB object values
within the managed device
Agent initiated
A management agent sends an unsolicited message, known
as a trap message, to the managing entity
Usually used to notify a managing entity of an exceptional
situation that has resulted in changes to MIB object values
10
SNMP Management Models
Organization Model
Relationship between network element, agent, and
manager
Hierarchical architecture
Information Model
Uses ASN.1 syntax
SMI (Structure of Management Information
MIB (Management Information Base)
Communication Model
Communication services addressed by messages
Security Model
Security framework community-based model
11
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
SNMP Communication model
SNMP Administration model & Security
Conclusion
12
Organization Model
Describes components of a network
management system, focuses on
Infrastructure
Manager & Agent & Proxies & RMON
Two & Three Tier Architecture
Functions
SNMP Operations
Manager initiated:
Request
Response
Agent initiated:
Trap
13
Two-Tier Organization Model
Basic SNMP Organization & Function model is
two-tier
Single & multiple managers are allowed
There is not any predefined manager for agents
Any manager can manage any agent
Security: Community (password) is needed
SNMP
Manager
SNMP
Manager
SNMP
Manager
SNMPAgent
Network Agent
Network
Element
Network
Element
Multiple Managers Model
Single Manager Model
14
Three-Tier Organization Model: RMON
RMON (Remote Monitoring)
acts as an agent and a manager
RMON gathers data from MO,
analyses the data, and stores
the data
SNMP
Manager
Communicates the statistics to
the manager
RMON
Probe
Managed
Objects
15
Three-Tier Organization Model: Proxy
Proxy server converts non-SNMP data from non-SNMP
objects to SNMP compatible objects and messages
Proxy agent
Management station
Manager process
SNMP
Mapping function
UDP
UDP
IP
IP
Network-dependent
protocols
Management
process
Agent process
SNMP
Protocol
architecture used
by proxied device
Network-dependent
protocols
16
Proxied device
Network-dependent
protocols
Protocol
architecture used
by proxied device
Network-dependent
protocols
SNMPv1 Operations (Functions)
Operations supported in SNMP are the inspection
and modification of variables & notification
Get, Set, GetNext Request
Manager
Response
Agent(s)
Trap
Four Services
Get, Set, GetNext, Trap
Five SNMP Messages
GetRequest, SetRequest, GetNextRequest, GetResponse, Trap
17
SNMPv1 Operations
Get Request
Get
GetNext
Manager
Get Response
Agent
GetNext Request
Manager
Get Response
Agent
Set Request
Set
Trap
Manager
Get Response
Trap
Manager
18
Agent
Agent
SNMPv2 Messages
inform-request (new)
manager-to-manager with acknowledgement
get-bulk-request (new)
Transfer of large data (e.g., multiple rows of a table)
report (new)
Not used currently
response is the get-response
SNMPv2-Trap is the trap with modified PDU
get-request, get-next-request, and setrequest are the same as SNMPv1
19
SNMP
SNMP
PDU
Physical Medium
20
SNMP
SNMP
PDU
Physical Medium
SNMP
UDP
UDP
UDP
IP
IP
IP
DLC
DLC
DLC
PHY
PHY
PHY
snmpV2-trap
response
SNMP Manager
get-bulk-request
set-request
Application
PDU
get-next-request
SNMP Manager
Application
get-request
response
snmpV2-trap
set-request
Application
PDU
get-bulk-request
SNMP Manager
get-next-request
get-request
SNMP Manager
Application
inform-request
response
snmpV2-trap
get-bulk-request
set-request
get-next-request
get-request
inform-request
SNMP Architecture
SNMP Agent
SNMP Agent
Application
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
ASN.1 review
SMI
Standard MIBs
MIB development
SNMP Communication model
SNMP Administration model & Security
21
Presentation Problem in NM
Networks are heterogeneous systems
How data are represented?
E.g. Integer in little-endian or big-endian ordering?
We need standard ways of communicating the same
information to/from all devices
ASN.1 from ISO provides this kind of translation in a
more generic form
ASN.1 is very general & complex
SMI also provides this kind of translation for SNMP
network management
Subset of ASN.1 which is customized for network mgmt
22
ASN.1
Definition: <name> ::= <definition>
<entity> denotes “entity” and the symbol “::=“ represents “defined as”
Primitive definitions:
<digit> ::= 0|1|2|3|4|5|6|7|8|9
<op> ::= +|-|x|/
An entity number can be constructed from primitives:
<number> ::= <digit> | <digit> <number>
Example:
1 is primitive 1
21 is construct of 2 and 1
321 is construct of 3 and 21
23
ASN.1: Modules
Group of assignments: Modules
Start with capital letters
Usually modules are built from primitive (atomic)
data types (e.g., INTEGER, REAL, etc..)
May use ASN.1 constructs (e.g., SET,
SEQUENCE, etc.)
24
ASN.1: Modules
PersonnelRecord ::= SET
Constructs: “list makers”
{
name
GraphicString,
title
GraphicString,
division
CHOICE {
A module PersonnelRecord
marketing SEQUENCE {
(a set of data types)
sector Integer,
Primitives data types
country Integer
},
Construct: alternatives
RD SEQUENCE {
area
Integer,
section Integer,
}
}
}
Three construction mechanisms (develop structured data types):
Alternatives: CHOICE
List:
SET and SEQUENCE
Repetition:
SET OF and SEQUENCE OF
25
Abstract & Transfer Syntaxes
User
The user of data transfer
comp. e.g., SNMP, FTP,
TELNET for TCP/IP
Local
Mapping
User
User Presentation
Mapping
Abstract
Application
Component
Syntax
ASN.1
Local
Storage
Application
Component
Mechanisms for transfer
of data between end
systems (e.g., TCP or UDP)
Transfer
Syntax
Mapping
Encoding
Rules
Data
Transfer
Component
Binary representation of data
26
Local
Local
Storage
Encoding
Rules (BER)
Data
Transfer
Component
Concerned with syntax of data
ASN.1 vs. BER Example
Birthday
name
day
}
::= SEQUENCE {
VisibleString,
DayOfYear
Value Assignment
myBirthday Birthday ::= {
name
"Jane",
day
129
}
Birthday Length Contents
30
??
0A
VisibleString
1A
DayOfYear
51
27
Type Definition
using ASN.1
BER Encoding
Length
04
Length
02
Contents
"Jane"
Contents
00 81
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
ASN.1 review
SMI
Standard MIBs
MIB development
SNMP Communication model
SNMP Administration model & Security
28
MIT: Management Information Tree
SNMP MIB has a hierarchal structure
It is called Management Information Tree (MIT)
To group related information
e.g., all information about NIC is grouped as a sub-tree of node
corresponding to the NIC
There are two (in fact three including traps) types of node
Leaf node management parameter & value
Some leaf nodes define traps
Middle node to group other nodes
Each node has a unique ID in the tree (known as OID):
1) By concatenation the name of (grand) parent nodes & this node
2) By concatenation of the child # of (grand) parent nodes & this node
30
MIB
Module
Management
Object
Defined
using SMI
·
·
·
A leaf node in MIT
A scalar value is associated it
E.g., port status, # of sent
packets, # received packets
Management
Object
·
·
·
A parent node in MIT
No value is associated it
E.g., a port, a routing algorithm
Management
Object
·
Used for notification
31
MIB Structure
MIB
Object identification?
Module
Management
Object
How to construct the MIT
·
·
·
Parent & Child relations
A leaf node in MIT
A scalar value is associated it
E.g., port status, # of sent
packets, # received packets
Management
Object
·
·
·
A parent node in MIT
No value is associated it
E.g., a port, a routing algorithm
Management
Object
·
32
Used for notification
Object Name & MIT Structure
Each object is uniquely identified through
hierarchical naming in MIT
SMI uses two mechanisms altogether
A descriptive name
Example: sysName, uptime, ospfVersion, …
Location of the object in MIT
Each object has a unique parent node
Each node has a unique childe # in the children of its
parent
Example: ospfVersion is the first version of ospf
33
MIB Structure: Parent Nodes
MIB
Does not contain any data
Module
No data type is needed
Used only for grouping related
objects
Only to construct the MIT
Management
Object
·
·
·
Name
A leaf node in MIT
A scalar value is associated it
E.g., port status, # of sent
packets, # received packets
Management
Object
Location in MIT
·
·
·
A parent node in MIT
No value is associated it
E.g., a port, a routing algorithm
Management
Object
·
34
Used for notification
SMI Type for Parent Nodes
OBJECT IDENTIFIER
Is a primitive type
Commonly used syntax
internet
OBJECT IDENTIFIER ::= { dod 1 }
Descriptive
name
MIT
Location
Alternative syntax
internet
OBJECT IDENTIFIER
STATUS
Current
Description
"The Internet Sub-node"
::= { dod 1 }
35
MIB Structure: Leaf Nodes
Leaf nodes contain data
MIB
Module
Data can be
Management
Object
Simple scalar
·
·
·
Complex structure
The type of the data must
be specified
In addition to
A leaf node in MIT
A scalar value is associated it
E.g., port status, # of sent
packets, # received packets
Management
Object
·
·
·
Name
MIT Location
A parent node in MIT
No value is associated it
E.g., a port, a routing algorithm
Management
Object
·
37
Used for notification
Object Scalar Data Type
Although SMI is based on ASN.1, it has its
own types, examples:
INTEGER, Integer32, Unsigned32, OCTET
STRING, OBJECT IDENTIFIER, IPaddress,
Counter32, Counter64, SEQUENCE, …
Subtype:
INTEGER (0..255), OCTET STRING (SIZE 0..255)
Enumeration
error-status INTEGER { noError(0)
38
tooBig(1)}
SMIv2: Textual Convention
Enables defining new data types
Creates new data types using existing ones and
applies restrictions to them
Makes semantics of data types consistent and
human readable
Using the TEXTUAL-CONVENTION macro
Some textual conventions in SNMPv2
MacAddress, TimeStamp, DateandTime, and
RowStatus
40
Textual Convention Example
DisplayString ::= TEXTUAL-CONVENTION
STATUS
current
DESCRIPTION
"Represents textual
information taken from the NVT
ASCII character set, as defined
in pages 4, 10-11 of RFC 854"
SYNTAX
OCTET STRING (SIZE
41
(0..255) )
SMI Type for Leaf Nodes
OBJECT-TYPE: Used to specify managed objects
Includes the data type, status, and semantics
The OBJECT-TYPE construct has four parts:
SYNTAX: The basic data type associated with the object
(Only one data type per object in SMI!)
MAX-ACCESS: Whether the object can be read, written,
created, or used in a notification
STATUS: Whether the object definition is current, obsolete
(for historical purposes), or deprecated
DESCRIPTION: A human-readable definition of the object,
giving all necessary semantic information
42
SMI: OBJECT-TYPE Example
ipInDelivers OBJECT-TYPE
SYNTAX
Counter32
MAX-ACCESS
read-only
STATUS
current
DESCRIPTION
"The total number of input datagrams
successfully delivered to IP userprotocols (including ICMP)"
::= { ip
9}
43
MIB Structure: Notifications
Notifications are sent by
agent to inform manager
Usually contains some
objects to be send by the
notification
MIB
Module
Management
Object
·
·
·
In addition to
A leaf node in MIT
A scalar value is associated it
E.g., port status, # of sent
packets, # received packets
Management
Object
Name
MIT Location
·
·
·
A parent node in MIT
No value is associated it
E.g., a port, a routing algorithm
Management
Object
·
44
Used for notification
SMI Types for Notifications
NOTIFICATION-TYPE macro is used to
define traps
Trap name, OID, Objects, and descriptions
TemperatureAlarm NOTIFICATION-TYPE
OBJECTS {lowThreshold, highThreshold,
currentTemperature}
STATUS current
DESCRIPTION "This alarm indicates that
system temperature violates configured
thresholds"
::= { environmentTraps 4}
45
MIB Structure: Modules
Modules are high-level optional
abstraction layer to group related
management objects
Provide some information about
the objects
Usually, each HW/SW
component is treated as a
module, e.g.,
MIB
Module
Management
Object
·
·
·
A leaf node in MIT
A scalar value is associated it
E.g., port status, # of sent
packets, # received packets
Management
Object
·
·
·
Protocols: IP, TCP, UDP, …
A parent node in MIT
No value is associated it
E.g., a port, a routing algorithm
Management
Object
Line Card
·
Modem
…
46
Used for notification
SMI Type for Modules
MODULE-IDENTITY
Allows related objects to be grouped together
within a MIB module
It specifies the location of module in the MIT
More over, the MODULE-IDENTITY construct
contains clauses that document the module
This includes the author of the module, the data
of the last update, a revision history, and a
textual description of the module.
47
SMI: MODULE-IDENTITY Example
ipMIB MODULE-IDENTITY
LAST-UPDATED “941101000Z”
ORGANZATION “IETF SNMPv2 Working Group”
CONTACT-INFO “Keith McCloghrie ……”
DESCRIPTION
“The MIB module for managing IP and
ICMP implementations, but excluding
their management of IP routes.”
REVISION “019331000Z”
………
::= {mib-2 48}
48
MIB Structure: MIB
Coarse grain grouping of objects
MIB
Module
Related modules are grouped in
a MIB, e.g.,
Cisco has it own MIB file(s)
containing the modules of Cisco
routers
Standard MIBs (e.g., RFC1213) are
defined in separated MIB files
Management
Object
·
·
·
A leaf node in MIT
A scalar value is associated it
E.g., port status, # of sent
packets, # received packets
Management
Object
·
·
·
A parent node in MIT
No value is associated it
E.g., a port, a routing algorithm
Management
Object
·
49
Used for notification
SMI Type for MIB Definition
<mib name> DEFINITIONS ::= BEGIN
<imports>
<definitions>
END
Import is similar to #include in C
IMPORTS MODULE-IDENTITY, OBJECT-TYPE
FROM SNMPv2-SMI
Definitions include
OBJECT-TYPE, OBJECT IDENTIFIER,
MODULE-IDENTITY
50
MIB Example
SIP-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Counter32,
Integer32, IpAddress
FROM SNMPv2-SMI;
sipMIB MODULE-IDENTITY
LAST-UPDATED "9403311818Z"
ORGANIZATION "IETF Interfaces Working Group"
CONTACT-INFO " ... "
DESCRIPTION "The MIB module to describe SMDS interfaces"
::= { mib-2 36 }
sipMIBObjects
OBJECT IDENTIFIER ::= { sipMIB 1 }
51
MIB Example
sipL3Table OBJECT-TYPE
SYNTAX
SEQUENCE OF SipL3Entry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"This table contains SIP L3 parameters and
state variables, one entry per SIPL3 interface."
::= { sip 1 }
sipL3Entry OBJECT-TYPE
SYNTAX
SipL3Entry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"This list contains SIP L3 parameters and
state variables."
INDEX
{ sipL3Index }
::= { sipL3Table 1 }
END
52
SMI for Organization of a MIB
Defined by DEFINITION
MIB
Module
Defined by MODULE-IDENTITY
Defined by OBJECT-TYPE
Management
Object
· A leaf node in MIT
· A scalar value is associated it
· E.g., port status, # of sent
packets, # received packets
Management
Object
Defined by OBJECT IDENTIFIER
Defined by NOTIFICATION-TYPE
· A parent node in MIT
· No value is associated it
· E.g., a port, a routing algorithm
Management
Object
· Used for notification
Note: These are currently in used SNMPv1 & SNMPv2 macros (SNMPv2
replaced some SNMPv1 macros)
Managed Object: Single Instance
Object
Defined By
SMI
Object
Type
Name:
OBJECT
IDENTIFIER
Object
Instance
Syntax:
ASN.1
Encoding:
BER
Two aspects of objects
Definition: By SMI in MIB file
Instantiation: By agent that implements the MIB
54
Managed Object: Multiple Instances
Object
Object
Type
Name:
OBJECT
IDENTIFIER
Object
Instance 3
Object
Instance 2
Syntax:
ASN.1
Encoding:
BER
55
Object
Instance 1
Object Types
Two main object types
According to whether multiple instances of objects are
Simple objects
Value is a scalar (Integer, String, …)
Single instance in each node
Examples: System name, Upitme, …
Aggregate objects also called tabular objects
A group of objects
Can be represented by a table with
Columns of objects, Rows of instances
56
Aggregate Object Example
IP address table
Consists of objects:
IP address
Subnet mask
Interface
Broadcast address
MTU
Multiple instances of these objects
associated (per interface) with the node
57
SMI Structured Types
SEQUENCE, SEQUENCE OF:
Usually used to construct tables or two-
dimensional arrays of other types of data
An individual row is a SEQUENCE, defining the
different types making up the various columns
A collection of rows forming the table is made
using a SEQUENCE OF construct
It must be a sequence of the same type
Example: TCP connection table
SET, SET OF, CHOICE of ASN.1 are not included
in SNMP-based management
58
Aggregate Object Type as Table: Definition
SEQUENCE OF
TABLE
T
SEQUENCE
ENTRY
E
COLUMNAR
OBJECT 1
COLUMNAR
OBJECT 2
COLUMNAR
OBJECT 3
OBJECT-TYPE
COLUMNAR
OBJECT 4
COLUMNAR
OBJECT 5
The objects TABLE T and ENTRY E are objects that are logical
objects. They define the grouping and are not accessible
Columnar objects are objects that represent the attributes and hence
are accessible
Each instance of E is a row of columnar objects 1 through 5
Multiple instances of E are represented by multiple rows
59
Aggregate Object Instances as Table: Instantiation
The row #
in this example
T
Not accessible
Object ID
T.E
{Table, Entry, Object, Index }
Row 3:
the third
instance of
the object
T.E.1.1
T.E.2.1
T.E.3.1
T.E.4.1
T.E.5.1
T.E.1.2
T.E.2.2
T.E.3.2
T.E.4.2
T.E.5.2
T.E.1.3
T.E.2.3
T.E.3.3
T.E.4.3
T.E.5.3
T.E.1.4
T.E.2.4
T.E.3.4
T.E.4.4
T.E.5.4
60
Table Indexing
Index can be anything
Usually a column is used as index not row #
The index of table
61
Aggregate Object Example: IP Table
Aggregate M.O. : Columnar Objects
ipAdEntAddr OBJECT-TYPE
...
::= { ipAddrEntry 1 }
ipAdEntIfIndex OBJECT-TYPE
...
::= { ipAddrEntry 2 }
ipAdEntNetMask OBJECT-TYPE
...
::= { ipAddrEntry 3 }
ipAdEntBcastAddr OBJECT-TYPE
...
::= { ipAddrEntry 4 }
ipAdEntReasmMaxSize OBJECT-TYPE
...
::= { ipAddrEntry 5 }
62
Aggregate Object Example: IP Table
Aggregate M.O. : Entry Object
IpAddrEntry ::= SEQUENCE {
ipAdEntAddr
IpAddress,
ipAdEntIfIndex
INTEGER,
ipAdEntNetMask
IpAddress,
ipAdEntBcastAddr INTEGER,
ipAdEntReasmMaxSize
INTEGER (0..65535)
}
ipAddrEntry OBJECT-TYPE
SYNTAX IpAddrEntry
ACCESS not-accessible
STATUS current
DESCRIPTION
"The addressing information for one of
this entity's IP addresses."
INDEX
{ ipAdEntAddr }
::= { ipAddrTable 1 }
63
Aggregate Object Example: IP Table
Aggregate M.O. : Table Object
ipAddrTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpAddrEntry
ACCESS not-accessible
STATUS current
DESCRIPTION
"The table of addressing
information relevant to this entity's IP
addresses."
::= {ip 20}
64
Aggregate Object Example: IP Table
ipAddrTable {1.3.6.1.2.1.4.20}
ipAddrEntry (1)
ipAdEntAddr (1)
ipAdEntIfIndex (2)
ipAdEntNetMask (3)
ipAdEntBcastAddr (4)
ipAdEntReasmMaxSize (5)
Columnar object ID of ipAdEntBcastAddr is (1.3.6.1.2.1.4.20.1.4)
iso org dod internet mgmt
1
3 6
1
2
mib
1
ip ipAddrTable
4
20
ipAddrEntry
1
ipAdEntBcastAddr
4
Aggregate Object Example: IP Table
Row
ipAdEntAddr
ipAdEntIfIndex
IpAdEntNetMask
IpAdEntBcastAddr
IpAdEntReasmMaxSize
1
123.45.2.1
1
255.255.255.0
0
12000
2
123.45.3.4
3
255.255.0.0
1
12000
3
165.8.9.25
2
255.255.255.0
0
10000
4
9.96.8.138
4
255.255.255.0
0
15000
Object instances of ipAddrTable (1.3.6.1.2.1.4.20)
Node 1 under
ipAddrEntry
Columnar Object
Object ID for
ipAddrEntry
Object Identifier
Row #
ipAdEntAddr
1.3.6.1.2.1.4.20.1.1
2
{1.3.6.1.2.1.4.20.1.1.123.45.3.4}
ipAdEntIfIndex
1.3.6.1.2.1.4.20.1.2
3
{1.3.6.1.2.1.4.20.1.2.165.8.9.25}
ipAdEntBcastAddr
1.3.6.1.2.1.4.20.1.4
1
{1.3.6.1.2.1.4.20.1.4.123.45.2.1}
IpAdEntReasmMaxSize
1.3.6.1.2.1.4.20.1.5
4
{1.3.6.1.2.1.4.20.1.5.9.96.8.138}
Object Id for specific instances
67
Index of the
object instance
SMIv2: Table Types
Static Tables
Table structure is defined in MIB development time
Access is read-only and read-write
Useful when the number of rows corresponds to a fixed
attribute (e.g., # physical interfaces) or a quantity
controlled only by agent
Vendors can add new columns to existence columns (new)
Dynamic Table
Allows row creation/deletion by a manager
At run/operation time
Access includes read, write and create/delete privileges
68
Why Table Modification?
Application 1
Standard MIBs define a set of parameters for NIC (e.g., type, MTU,
MAC)
Vendor needs additional parameters (e.g., Serial #, Power
Consumption)
In SNMPv1, the vendors should define a separated new table for the
parameters
Two tables (different set of OIDs) to manage NICs
In SNMPv2, these new parameters can be added to the existence
table
Single table for NIC parameters (much easier)
E.g., ifXTable in IF-MIB extends the ifTable in RFC-1213
Table Augmentation
69
Why Table Modification?
Application 2
Firewall rules (typically) are specified as a table
(src IP, dst IP, src port, dst port, proto, action)
Rules are not fixed; are changed over the time
Manager want to manage the firewall using SNMP
SNMPv1 cannot be used
It is not possible to create or delete rows
SNMPv2 dynamic tables is the solution
Rules can be added/deleted
Existing rules can be modified
70
Changing Columns: Table Augmentation
Adding new columnar objects (augmented
table) to an existing table (base table)
Old base table is compiled & running in agent
The MIB of the new table is defined
The MIB is compiled & added to the agent
The agent treats both tables as a single table
In the following, we assume that
One to one correspondence between rows of tables
Number of rows is not affected
INDEX of the second table is the same as the first table
71
Table Augmentation (cont’d)
Base table
Table 2
Table 1
Dependent table
table1
(T1)
table 2
(T2)
table1Entry
(E1)
table2Entry
(E2)
T1.E1.C1.1
T1.E1.C2.1
T1.E1.C3.1
T2.E2.C4.1
T2.E2.C5.1
T1.E1.C1.2
T1.E1.C2.2
T1.E1.C3.2
T2.E2.C4.2
T2.E2.C5.2
T1.E1.C1.3
T1.E1.C2.3
T1.E1.C3.3
T2.E2.C4.3
T2.E2.C5.3
T1.E1.C1.4
T1.E1.C2.4
T.E1.C3.4
T2.E2.C4.4
T2.E2.C5.4
Index:
First columnar object in Table 1
72
Table Augmentation (cont’d)
table1 OBJECT-TYPE
SYNTAX
SEQUENCE OF table1Entry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION “Table 1 under T”
::= {table 1}
table2 OBJECT-TYPE
SYNTAX
SEQUENCE OF table2Entry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION “Table 2 under T”
::= {table 2}
table1Entry OBJECT-TYPE
SYNTAX
Table1Entry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION “An entry (conceptual row) in
Table 1”
INDEX {T1.E1.C1}
::= {table1 1}
table2Entry OBJECT-TYPE
SYNTAX
Table2Entry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION “An entry (conceptual row)
in Table 2”
AUGMENTS {table1Entry}
::= {table2 1}
A clause used to increase the number of
columns in a table w/out rewriting the
table definition
“Table 2” shares the index with “Table 1”
If a new row is added (by agent) to the base table, it is also added to the
dependent table
73
Table Augmentation (cont’d)
What happen if
1) New table row # > Base table row #
Dense dependent table is added to base table
2) New table row # < Base table row #
Sparse dependent table
More details in the text book
74
Dynamic Tables
Table rows can be modified at the run-time
using set-requests to create or delete rows
No new MIB is defined & compiled & installed
State /
Enume
Description
Command
ration
active
1
Row exists and is operational
notInService
2
Operation on the row is suspended
notReady
3
Row does not have all the columnar objects needed
createAndGo
4
This is a one-step process of creation of a row;
immediately goes into active state
createAndWait
5
Row is under creation and should not be
commissioned into service
destroy
6
Same as Invalid in EntryStatus. Row should be deleted
75
Row Creation and Deletion Example
Column Object for row
modification, Syntax is
RowStatus
table1
entry1
status.1
index.1
data.1
status.2
index.2
data.2
status.3
index.3
data.3
Row to be created / deleted
76
Create-and-Go Row Creation
Manager
Process
Agent
Process
SetRequest (
status.3 = 4,
index.3 = 3,
data.3 = DefData)
Response (
status.3 = 1,
index.3 = 3,
data.3 = DefData)
Managed
Entity
Create Instance
Instance Created
Manager initiates a SetRequest-PDU to create a new row
status = 4, i.e., create and go
Agent interacts with the management entity and successfully create an
instance; subsequently a response is transmitted to the manager
status = 1, indicates that the row is active
77
Create-and-Wait Row Creation
Manager
Process
Agent responds with “notReady”
(no default value)
Agent
Process
SetRequest (
status.3 = 5,
index.3 = 3 )
Response (
status.3 = 3,
index.3 = 3)
GetRequest (
data.3 )
Data value is missing
Value of data is sent
Response (
status.3 = 2
data.3 = DefData)
SetRequest (
status.3 = 1)
Row activated
Get the data for the row
Response (
data.3 = noSuchInstance)
SetRequest (
data.3 = DefData)
Agent responds with
notInServcie
Create and wait, no default
data specified
Response (
status.3 = 1)
78
Manager requests to activate
the row
Row Deletion
Manager
Process
Agent
Process
SetRequest (
status.3 = 6 )
Managed
Entity
Delete Instance
Instance Deleted
Response (
status.3 = 6 )
79
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
ASN.1 review
SMI
Standard MIBs
MIB development
SNMP Communication model
SNMP Administration model & Security
80
Standard MIB
Information model of SNMP standard
SMI
Which is discussed
MIB
A set of standard MIBs
The standard MIBs define
The overall structure of MIB
The location of future development is specified
The required management objects must be
implemented
81
Standard MIBs: Location of the Internet
82
Standard MIBs: The Internet Children
Internet
{1 3 6 1}
directory
(1)
mgmt
(2)
Reserved for
future use
experimental
(3)
private
(4)
To identify objects used
in Internet experiments
Used for objects defined in
IAB-approved documents
83
Used heavily by
commercial vendors
Standard MIBs: IETF MIBs
Internet
{1 3 6 1}
directory
(1)
mgmt
(2)
experimental
(3)
mib-2
(1)
system (1)
interfaces (2)
at (3)
ip (4)
icmp (5)
snmp (11)
transmission (10)
cmot (9)
egp (8)
udp (7)
tcp (6)
84
private
(4)
Standard MIBs: Private MIBs
Internet
{1 3 6 1}
directory
(1)
mgmt
(2)
experimental
(3)
private
(4)
enterprises
(1)
cisco
(9)
hp
(11)
85
3Com
(43)
Cabletron
(52)
SNMPv2 MIB
Internet
{1 3 6 1}
directory
(1)
mgmt
(2)
experimental
(3)
private
(4)
security
(5)
snmpv2
(6)
snmpModules
(3)
mib-2
(1)
system
(1)
snmpMIB
(1)
snmp
(11)
snmpMIBObjects
(1)
86
snmpMIBConformance
(2)
Interface Group
interfaces
(mib-2 2)
ifNumber
(1)
ifTable
(2)
ifEntry
(1)
ifIndex (1)
ifDescr (2)
ifType (3)
ifMtu (4)
ifSpeed (5)
ifPhysAddress (6)
ifAdminstatus (7)
ifOperStatus (8)
ifLastChange (9)
ifInOctets (10)
ifInUcastPkts (11)
ifSpecific (22)
ifOutQLen (21)
ifOutErrors (20)
ifOutDiscards (19)
ifOutNUcastPkts (18)
ifOutUcastPkts (17)
ifOutOctets (16)
ifUnknownProtos (15)
ifInErrors (14)
ifInDiscards (13)
ifInNUcastPkts (12)
87
IP Group
ip
(mib-2 4)
ipForwarding (1)
ipRoutingDiscards (23)
ipDefaultTTL (2)
ipNetToMediaTable (22)
ipInReceives (3)
ipRouteTable (21)
ipInHdrErrors (4)
ipAddrTable (20)
ipInAddrErrors (5)
ipFragCreates (19)
ipFragFails (18)
ipForwDatagrams (6)
ipInUnknownProtos (7)
ipFragOKs (17)
ipInDiscards (8)
ipReasmFails (16)
ipInDelivers (9)
ipReasmOKs (15)
ipOutRequests(10)
ipReasmReqds (14)
ipOutDiscards (11)
ipReasmTimeout (13)
ipOutNoRoutes (12)
88
SNMPv2 System Group
system
(mib-2 1)
Table sysORTable
sysDescr (1)
sysObjectId (2)
sysUpTime (3)
sysContact (4)
The (conceptual) table listing the
capabilities of the local SNMP
application acting as a command
responder with respect to various
MIB modules.
sysORLastChange (8)
sysServices (7)
sysLocation (6)
sysName (5)
sysORTable (9)
sysOREntry (1)
sysORIndex (1)
sysORID (2)
89
sysORUpTime (4)
sysORDescr (3)
SNMP Information Model Characteristics
Not possible to change the structure of a MIB
In SNMPv2 it is possible to change tables
No explicit action is supported
Action through side-effect of setting a value
Access is provided only to leaf objects in the MIB tree
Not possible to access an entire table or a row of a table with a
single atomic action
SNMP MIBs are NOT object-oriented
Inheritance is not supported
These simplify the implementation of SNMP but limit
the capability of the NMS
90
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
ASN.1 review
SMI
Standard MIBs
MIB development
SNMP Communication model
SNMP Administration model & Security
91
SNMP MIB Modeling
MIB is essential for developing and operating
management systems
Analysis of MIB objects is required before writing
MIB definitions
Using the designed model, MIB definitions can be
easily generated
Similar to software engineering -- must design a system
before any implementation!
92
Step 1: MIB Design
Components
Collections of logical & physical component that are being managed
Attributes
Fairly static properties of a modeled object
Statistics
Useful information about what a system has been doing
State
The current condition of a system
Setting
Value of system parameters
Actions
Control a system
Traps
Notifications
93
Components
Components
Physical containment
E.g., a list of interface cards
Logical containments
E.g., software components
Start from the top level and work down until
reasonable size is reached
Cardinality
How many of an item are present in a system?
Is table required?
94
Modeling Example - Router
Hardware
CPU
RAM
Line Card
NIC
Software
Routing
OSPF
Management
SNMP
95
Attributes
The fairly static properties
Typically read-only
Examples
NIC serial number
# Of CPU
Amount of RAM
Manufacture data of router backplane
OSPF version
…
96
Statistics
Show a picture of the past (history)
A record of the interesting events which
occurred since a specific point in time
Read-only
Examples
# of sent packets
# of dropped packets
# of CPU overutilization
# of OSPF restarts
…
97
State
Show the current condition of the resource
Read-only
Stages of operation, examples
Enabled/Disabled state of NIC
Used/Unused MD5 in OSPF
…
Resource usage level, examples
Current routers temperature
Current link bandwidth
Current CPU usage
…
98
Setting
The configurable parameters of system
System behavior depends on them
Read-Write
Examples
IP address
OSPF area
CPU over utilized threshold
IPsec parameter settings
…
99
Actions
SNMP does not support explicit action operation
Represented in terms of implicit actions which do
their work through side effects
This is achieved by setting some value of a MIB object
Typically write-only
Examples
Restart BGP
Ping a remote router
Shut down a NIC
…
100
Trap
To notify the manager about the events
No Read, No Write
Examples
Over temperature trap
CPU over utilized trap
BGP route changes (route flapping)
Link over utilization
…
101
Step 2: Translate Model into MIB
Each component is modeled as a module: MODULE-IDENTITY
General guide lines
Sub-components with a cardinality > 1 should be part of a table
Attributes of an object can be
Octet String - human readable descriptions or binary data
Integer - measurable quantities
Statistics representing increasing values are Counter type
Stats representing high or low water marks are Integer type
System setting can be any type depends on the setting
Integer for threshold, String for Hostname, IP-Address for address, …
Actions are encoded as Enumerate types
ON (1), OFF (0), START(2), STOP (3), …
Traps also include additional data to be send
States, Setting, and Statistics
102
Step 3: Using the MIB
MIB files are complied in both manager &
agent software
103
Step 3: Using the MIB (cont’d)
Compiling MIB in NMS
Usually, is simply parsing and/or
processing
Examples
Simple MIB Browser parses the MIB
and display its tree structure
More powerful NMS applications map
OIDs to high-level management
parameters, e.g.,
OSPF version
Cisco 1.2.3.4.5.6.7.8
Juniper 1.2.6.1.1.1.1.
104
Step 3: Using the MIB (cont’d)
Compiling MIB in Agent
Is developing an executable code from MIB
Based on an existing agent framework
Example
Net-SNMP agent
Implements SNMP protocol (we don’t need to develop it)
Provides an API to develop plug-in (module)
A MIB to read OSPF version is implemented as a module
It uses the Net-SNMP API to connect the agent core
It uses the vendor specific API to access the version of
the OSPF
105
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
SNMP Communication model
SNMP Administration model & Security
Conclusion
106
Communication Model
Architecture
Management messages
SNMP protocol
Packet formats & operation
SNMP protocol MIB
SNMP protocol’s management parameters
107
Communication Model: SNMP Protocol
Message & PDU structure
variable bindings:
NAME 1 VALUE 1 NAME 2 VALUE 2
•••
•••
NAME n VALUE n
SNMP PDU:
*
PDU TYPE
REQUEST
ID
ERROR
STATUS
ERROR
INDEX
VARIABLE BINDINGS
SNMP message:
VERSION
SNMP PDU
COMMUNITY
108
SNMPv2 Protocol
version
PDU
type
request
id
community
0
PDU
0
variable-bindings
(a) GetRequest, GetNextRequest, SetRequest,
SNMPv2-Trap, InformRequest
PDU
type
request
id
error
status
error
index
variable-bindings
(b) Response
PDU
type
request
id
nonmaxrepeaters repetitions
(c) GetBulkRequest
109
variable-bindings
SNMPv2-trap & Inform-request
Both use the same PDU
PDU
Type
RequestID
0
0
VarBind 1
sysUpTime
VarBind 1
value
VarBind 2
snmpTrapOID
VarBind 2
value
..
.
Positions 1 and 2 in VarBindList are sysUpTime and
snmpTrapOID, respectively
Both packets are used to send unsolicited messages
Trap for agent-to-manage, but Inform for manager-tomanger messages
No acknowledge for trap, but response for inform
110
Get/SetRequest & GetRespone PDU
GetRequest + Response
Is issued by an SNMP manager to retrieve information
Get includes PDU type, request-id & variablebindings (but no value)
Response
use the same request-id
If operation succeeds variablebindings + values are returned
SetRequest + Response
Is issued by an SNMP manager to modify information
Set includes PDU type, request-id & variablebindings & values
Response
use the same request-id
if the operation succeeds a Response PDU is returned with the
same variablebindings and their final values
111
GetRequest Issues
Assume browsing the following MIB
Manager
Process
Agent
Process
GetRequest (A)
GetResponse ( A )
GetRequest (B)
GetResponse ( B )
A
B
T
Z
GetRequest ( T.E.1.1 )
GetResponse ( T.E.1.1 )
GetRequest ( T.E.1.2 )
GetResponse ( T.E.1.2 )
E
GetRequest ( T.E.2.1 )
GetResponse ( T.E.2.1 )
GetRequest ( T.E.2.2 )
GetResponse ( T.E.2.2 )
GetRequest ( T.E.3.1)
1.1
2.1
3.1
1.2
2.2
3.2
GetResponse ( T.E.3.1 )
GetRequest ( T.E.3.2 )
GetResponse ( T.E.3.2 )
GetRequest ( Z )
Response ( Z )
112
GetRequest Issues (cont’d)
Hidden assumption in the previous example
We know all the elements in MIB including the
number of columns and rows in the table
In practice, tables are dynamic
We may don’t know the number or row
If we have MIB, we only know column #
In some situations, we may have not all
information about MIB
We just know an object identifier
113
Solution for GetRequest Issues
SNMP support two object access modes:
1) Random access: Using the OID
2) Serial access: Using Lexicographical order
Lexicographical ordering is also referred to as:
preorder traversal (root, left, right) of a tree
depth-first search (DFS)
Useful for examining MIBs whose structure is not
known to NMS
It is known as “MIB walk”
114
Lexicographical Ordering
Example of lexicographic order of MIB
Lexicographical order of OIDs
1
1.1
1.1.5
1.1.18
1.2
1.2.6
2
2.2
2.10
2.10.9
3
3.4
3.21
9
MIB
1
1
5
2
2
18
116
2
6
3
10
9
4
9
21
GetNextRequest Example
Agent
Process
Manager
Process
GetRequest ( A )
GetResponse ( A )
GetNextRequest ( A )
GetResponse ( B )
GetNextRequest ( B )
A
B
T
Z
GetResponse ( T.E.1.1 )
GetNextRequest (T.E.1.1 )
GetResponse ( T.E.1.2 )
GetNextRequest (T.E.1.2 )
E
GetResponse ( T.E.2.1 )
GetNextRequest (T.E.2.1 )
GetResponse ( T.E.2.2 )
GetNextRequest (T.E.2.2 )
1.1
2.1
3.1
1.2
2.2
3.2
GetResponse ( T.E.3.1 )
GetNextRequest (T.E.3.1 )
GetResponse ( T.E.3.2 )
GetNextRequest (T.E.3.2 )
GetResponse ( Z )
GetNextRequest ( Z )
GetResponse ( noSuchName )
117
GetNextRequest & Response PDU
Is issued by an SNMP manager to retrieve information
The PDU is the same as GetRequest PDU except:
In the GetRequest PDU, each variable in the variablebindings
list refers to an object instance whose value is to be returned
In the GetNextRequest PDU, for each variable in the
variablebindings, the value of the object instance that is next in
lexicographic order is returned
Similar to GetRequest, operation is atomic
Allows NMS to discover the structure of a MIB view
dynamically
Provides an efficient mechanism for searching a table whose
entries are unknown
118
SNMPv2 GetBulkRequest PDU
PDU
Type
RequestID
NonRepeaters
Max
Repetitions
VarBind 1
name
VarBind 1
value
...
VarBind n
name
VarBind n
value
Enables the retrieval of data in bulk, both
A variable binding list (similar to GetNextRequest)
Given # of successive objects of OIDs (another variable
binding list)
Series of GetNexRequest
Error status field replaced by Non-repeaters
The number of scalar field values requested
Error index field replaced by Max repetitions
The maximum number of repitation requested
119
GetBulkRequest
Selection principle is the same as GetNextRequest
the next object instance in lexicographic order
Includes a list of (N + R) variable names in the
variable-bindings list
the first N variables for retrieving single values
the next R variables for retrieving multiple values
non-repeaters = N Next objects of N given object
are asked
max-repetition = M At most M successive (next
lexicographical) object instances of each R repetitive
objects are asked
120
Get-Bulk-Request Example
A
B
T
Z
E
1.1
2.1
3.1
1.2
2.2
3.2
1.3
2.3
3.3
1.4
2.4
3.4
121
Get-Next-Request Operation
A
B
T
Manager
Process
GetRequest ( A,B )
GetResponse (A,B)
GetNextRequest (T.E.1.T.E.2,T.E.3)
GetResponse (T.E.1.1,T.E.2.1,T.E.3.1)
GetNextRequest (T.E.1.1,T.E.2.1,T.E.3.1)
GetResponse (T.E.1.2,T.E.2.2,T.E.3.2)
GetNextRequest (T.E.1.2,T.E.2.2,T.E.3.2)
GetResponse (T.E.1.3,T.E.2.3,T.E.3.3)
GetNextRequest (T.E.1.3,T.E.2.3,T.E.3.3)
GetResponse (T.E.1.4,T.E.2.4,T.E.3.4)
GetNextRequest (T.E.1.4,T.E.2.4,T.E.3.4)
GetResponse (T.E.2.1,T.E.3.1,Z)
Agent
Process
E
T.E.1.1
T.E.2.1
T.E.3.1
T.E.1.2
T.E.2.2
T.E.3.2
T.E.1.3
T.E.2.3
T.E.3.3
T.E.1.4
T.E.2.4
T.E.3.4
Z
122
Get-Bulk-Request Operation
A
B
GetBulkRequest (1, 3
,A,T.E.1, T.E.2, T.E.3 )
Manager
Process
T
Agent
Process
Response (B,
T.E.1.1, T.E.2.1, T.E.3.1
T.E.1.2, T.E.2.2, T.E.3.2
T.E.1.3, T.E.2.3, T.E.3.3 )
E
GetBulkRequest ( 0,3,
T.E.1.3, T.E.2.3, T.E.3.3 )
Response (
T.E.1.4, T.E.2.1, T.E.2.2
T.E.2.4, T.E.3.1, T.E.3.2,
T.E.3.4, Z , "endOfMibView")
T.E.1.1
T.E.2.1
T.E.3.1
T.E.1.2
T.E.2.2
T.E.3.2
T.E.1.3
T.E.2.3
T.E.3.3
T.E.1.4
T.E.2.4
T.E.3.4
Z
123
Error Handling
Single operation can be applied on multiple
variables (the variable binding is more than 1)
SNMP does not support transaction
If two variables are in set request and after
changing the first one, the second is failed the
value of first does not returned back to previous
SNMP operations are (almost) atomic
Either or All concept
If operation on a variable is failed none of them
is guaranteed!!
124
Error Handling (cont’d)
SNMPv2 Error Status
noError
tooBig
badValue
readOnly
genErr
wrongType
wrongLength
wrongEncoding
125
wrongValue
noCreation
inconsistentValue
resourceUnavailable
commitFailed
undoFailed
authorizationError
notWritable
inconsistentName
Error Handling (cont’d): Exceptions
Besides errors, SNMPv2 defines three exceptions
noSuchObject OID is not found
noSuchInstance OID is valid but is not accessible
endOfMibView No next OID exists
Used in GetNext & GetBulk
Exceptions do not raise error
They are encoded in variable binding
Better performance, for example
10 OID is requested
2 OID is wrong
SNMPv1 Whole operation fails with error-status = noSuchName
SNMPv2 8 valid values are returned, wrong OID’s value =
noSuchObject
126
SNMPv2 PDU Sequences
get
set
MIB
MIB
response
manager
response
agent
manager
agent
trap
getNext
MIB
MIB
response
manager
agent
manager
agent
inform
getBulk
MIB
response
manager
response
agent
manager
127
MIB
"agent"
SNMPv2 SNMP MIB (cont’d)
SNMP MIB in SNMPv2 is simplified
snmp
(mib-2 11)
snmpInPkts(1)
snmpInBadVersions (3)
snmpInBadCommunityNames (4)
snmpInBadCommunityUses (5)
snmpProxyDrops (32)
snmpSilentDrops (31)
snmpEnableAuthenTraps (30)
snmpInASNParseErrors (6)
128
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
SNMP Communication model
SNMP Administration model & Security
Conclusion
129
SNMPv1&2 Security Concepts
Authentication service
Agent may wish to limit access to the MIB to
authorized managers
Access control (authorization)
Agent may wish to give different access privileges
to different managers
130
SNMP Community
The first version of SNMP had only a simple
security functionality, through communities
A pair of agent and managers
Each community
Has a unique name
Also called its community string
A subset of MIB objects available to the community
Also called a MIB view
An access mode (read only or read-write) is
defined for each community
131
SNMP Community (cont’d)
A managing entity could be part of an agent’s
community only by knowing the community
name
The name is in effect also the password!
The community name is always sent in the clear
(unencrypted) so anyone can sniff it!
Each SNMP agent can define multiple
communities
Multiple manager can manage the agent
Different views & access
132
SNMP Community (cont’d)
SNMP MIB View
A subset of objects within a MIB
Different MIB views may be defined for each community
The objects in a view need not belong to a single sub-tree
SNMP Access Mode
An access mode {READ-ONLY, READ-WRITE} is defined
for each community
The access mode is applied uniformly to all objects in the
MIB view
SNMP Community Profile
A combination of a MIB view and an access mode
133
MIB ACCESS Category vs. SNMP Access Mode
SNMP Agent
READONLY
READWRITE
SNMP Access Mode
not-accessible
read-only
write-only
read-write
Object 1
Object 2
Object 3
Object 4
MIB Access
SNMP MIB View
Operations on an object determined by community
profile and the access mode of the object
134
MIB ACCESS Category vs. SNMP Access Mode
MIB ACCESS
Category
SNMP Access Mode
READ-ONLY
READ-WRITE
read-only
Available for get operation
read-write
for get and set
Available for get operation Available
operations
write-only
Available for set,
implementation-specific
for get
Implementation-specific
not accessible
Unavailable
135
SNMPv1 Security: Drawbacks
If there is not any attacker!!!, community is a sufficient, but!
No encryption (everything is transferred in plain)
The community string can be sniffed
Attacker will be manager!
Transferred data can be sniffed no confidentiality
No integrity check
Data modification invalid management parameters
Not per-user password, community string a shared secret!
If a member of community reveal the string whole community is
compromised
No message stream protection
Replay attack
136
SNMPv1 Security (cont’d)
In the end, it was better than nothing at the time, and could
be used reasonably
Block SNMP at firewalls to prevent access by all external intruders
Change community strings from default values (usually “public” for
read-only and “private” for read-write)
Only allow SNMP requests from certain internal addresses (though
addresses could be spoofed)
Use a dedicated line to a device for SNMP access
But, because of security concerns, early SNMP was primarily
used only for monitoring
SetRequest was rarely used or supported
No community with read-write access!
137
Outline
Introduction
SNMP Organization & Function model
SNMP Information model
SNMP Communication model
SNMP Administration model & Security
Conclusion
138
Limitations of SNMPv1
SNMP may not be suitable for the management of truly large
networks because of the performance limitations of polling
SNMP is not well suited for retrieving large volumes of data,
such as an entire routing table
SNMP traps are unacknowledged & may not be delivered
SNMP provides only trivial authentication
SNMP does not support explicit actions
SNMP does not support manager-to-manager communication
Many of these problems are addressed in SNMPv2!
139
Key Changes in SNMPv2
Bulk data transfer & Better error handling
To improve performance
Manager-to-manager message
For hierarchal network management
Textual conventions
To define new data types
Row creation and deletion in table
More complex information modeling
MIB enhancements
New MIBs and drop unused complex MIBs
Transport mappings
Transport protocols other than UDP
140
Summary
Organizational model
Manager – agent hierarchy
Information model
MIB, SMI and basic encoding rules (BER)
SMI uses a subset of ASN.1
Communication model
Eight message types
Request-and-response
TRAP based notification – no confirmation
UDP/TCP based
Security model
Very limited community based
Works well only if there is not any attacker!!!
141
References
Reading Assignment: Chapters 4 & 5 & 6 of
“Mani Subramanian, ‘Network Management: Principles and
Practice’, Pearson Education, 2012”
www.simpleweb.org
R. Dssouli, “Advanced Network Management,” Concordia
Institute for Information Systems Engineering,
http://users.encs.concordia.ca/~dssouli/INSE 7120.html
Nhut Nguyen, “Telecommunications Network Management,”
University of Texas at Dallas,
www.utdallas.edu/~nhutnn/cs6368/
J. Won-Ki Hong, “Network Management System,” PosTech
University, dpnm.postech.ac.kr/cs607/
142
© Copyright 2026 Paperzz