21.7
NETWORK MANAGEMENT SYSTEMS IN ENTERPRISE NETWORKS
557
name and (2) a PDU. The version identifier and community name are sometimes referred
to as the SNMP authentication header.
The Version field ensures that all parties in the management transaction are using the
same version of SNMP protocol. We must remember the origins of SNMP evolved from
TCP/IP described in Chapter 11, where we have already seen the use of a "version" field.
Each SNMP message contains a Community Name that is one of the only security
mechanisms in SNMP. The agent examines the Community Name to ensure it matches
one of the authorized Community Strings loaded in its configuration files or nonvolatile
memory. Each SNMP PDU is one of five types (sometimes called verbs): GetRequest, Get-
NextRequest, SetRequest, GetResponse, and Trap. The trap PDU is shown in Figure 21.9.
The PDU shown in Figure 21.8 has five initial fields. The first field is the PDU type.
There are five types of PDU as we discussed previously. These are shown in Table 21.1.
The Request ID is the second field of the PDU field. It is an INTEGER-type field that
correlates the manager's request with the agent's response. INTEGER type is a primitive
type used in ASN.1.
The Error Status field is also an ASN.1 primitive type. It indicates normal operation
(noError) or one of five error conditions as shown in Table 21.2.
Version
PDU
Type
Agent
Address
Community
Object 1, Value 1 Object 2, Value 2
Trap PDU
SNMP Message
Specific
Trap Type
Generic
Trap Type
Timestamp
Variable Bindings
. . .
Enterprise
Figure 21.9
SNMP trap PDU format. (From Refs. 9, 13, and 14.)
Table 21.1
PDU-Type Field Values
GetRequest
0
GetNextRequest
1
GetResponse
2
SetRequest
3
Trap
4
Table 21.2
SNMP Error Codes
Error Type
Value
Description
noError
0
Success
tooBig
1
Response too large to fit in single
datagram
noSuchName
2
Requested object unknown/unavailable
badValue
3
Object cannot be set to specified value
readOnly
4
Object cannot be set
genErr
5
Some other error occurred