Chapter 21 Network Management: SNMP Objectives Upon completion you will be able to: • Understand the SNMP manager and the SNMP agent • Understand the roles of SMI and MIB in network management • Be familiar with SMI object attributes and encoding methods • Know how an MIB variable is accessed • Be familiar with the SNMP PDU and format TCP/IP Protocol Suite 1 21.1 CONCEPT SNMP defines a manager, which is typically a host that controls and monitors a set of agents, and usually routers. Note: SNMP has gone thru 3 versions. SNMP v1 was very common. SNMP v2 is rare. Many installations have skipped v2 and gone straight to v3. The topics discussed in this section include: Managers and Agents TCP/IP Protocol Suite 2 Figure 21.1 SNMP concept One or more TCP/IP Protocol Suite 3 21.2 MANAGEMENT COMPONENTS SNMP requires the use of two other protocols: Structure of Management Information (SMI) and Management Information Base (MIB). Network management on the Internet is done through the cooperation of SNMP, SMI, and MIB. The topics discussed in this section include: Role of SNMP Role of SMI Role of MIB An Analogy An Overview TCP/IP Protocol Suite 4 Figure 21.2 Components of network management on the Internet We will discuss each of these components in turn, but first … TCP/IP Protocol Suite 5 Note: SNMP defines the format of packets exchanged between a manager and an agent. It reads and changes the status (values) of objects (variables) in SNMP packets. TCP/IP Protocol Suite 6 Note: SMI defines the general rules for naming objects, defining object types (including range and length), and showing how to encode objects and values. SMI defines neither the number of objects an entity should manage, nor names the objects to be managed, nor defines the association between the objects and their values. TCP/IP Protocol Suite 7 Note: MIB creates a collection of named objects, their types, and their relationships to each other in an entity to be managed. TCP/IP Protocol Suite 8 Note: We can compare the task of network management to the task of writing a program. ❏ Both tasks need rules. In network management this is handled by SMI. ❏ Both tasks need variable declarations. In network management this is handled by MIB. ❏ Both tasks have actions performed by statements. In network management this is handled by SNMP. TCP/IP Protocol Suite 9 Figure 21.3 Management overview SNMP client SNMP server Example: A manager station (SNMP client) wants to send a message to an agent station (SNMP server) to find the number of UDP datagrams received by the agent. TCP/IP Protocol Suite 10 21.3 SMI SMI is a component used in network management. It names objects, defines the type of data that can be stored in an object, and shows how data can be encoded for transmission over the network The topics discussed in this section include: Name Type Encoding Method TCP/IP Protocol Suite 11 Figure 21.4 Object attributes Each object has three attributes: name, type, and encoding method. Each managed object (such as a router or a variable in a router) has to have a unique name. Use the following hierarchical design to name an object. TCP/IP Protocol Suite 12 Figure 21.5 Object identifier The objects that are used in SMNP are located under the mib-2 object, so their identifiers always start with 1.3.6.1.2.1. TCP/IP Protocol Suite 13 Figure 21.6 Data type The second attribute of an object is the data type. To define the data type, SMI uses Abstract Syntax Notation 1 (ASN.1). SMI has two broad categories of data type: simple and structured. TCP/IP Protocol Suite 14 Table 21.1 Simple data types TCP/IP Protocol Suite First 5 are from ASN.1; next 7 are defined by SMI. 15 Figure 21.7 Conceptual data types SMI defines two structured data types: sequence and sequence of. Sequence is similar to C’s struct or record TCP/IP Protocol Suite 16 Figure 21.8 Encoding format SMI uses another standard – Basic Encoding Rules (BER) – to encode data to be transmitted over the network. BER specifies that each piece of data be encoded in triplet format: tag, length, and value. The Class subfield defines the scope of the data: 00 – universal, 01 – application-wide, 10 – context-specific, 11 – private. The universal data types are shown in the first 5 rows of the next table. The application-wide types are the last 5 rows. Format bit: simple is 0 and structured is 1. The number field further divides simple or structured into subgroups. TCP/IP Protocol Suite 17 Table 21.2 Codes for data types TCP/IP Protocol Suite 18 Figure 21.9 Length format If length is only 1 byte, first bit = 0 If length is >1 byte, first bit is 1 and remaining seven bits define how many bytes in the length. TCP/IP Protocol Suite 19 Example 1 Figure 21.10 shows how to define INTEGER 14. See Next Slide TCP/IP Protocol Suite 20 Figure 21.10 TCP/IP Protocol Suite Example 1, INTEGER 14 21 Example 2 Figure 21.11 shows how to define the OCTET STRING “HI.” See Next Slide TCP/IP Protocol Suite 22 Figure 21.11 Example 2, OCTET STRING “HI” TCP/IP Protocol Suite 23 Example 3 Figure 21.12 shows how to define ObjectIdentifier 1.3.6.1 (iso.org.dod.internet). See Next Slide TCP/IP Protocol Suite 24 Figure 21.12 TCP/IP Protocol Suite Example 3, ObjectIdentifier 1.3.6.1 25 Example 4 Figure 21.13 shows how to define IPAddress 131.21.14.8. See Next Slide TCP/IP Protocol Suite 26 Figure 21.13 TCP/IP Protocol Suite Example 4, IPAddress 131.21.14.8 27 21.4 MIB MIB (Management Information Base) is the second component used in network management. Each agent has its own MIB, a collection of all the objects that the manager can manage. The topics discussed in this section include: Accessing MIB Variables Lexicographic Ordering TCP/IP Protocol Suite 28 Figure 21.14 mib-2 The objects in an MIB are categorized under 10 different groups. sys: general info about the node (system) if: defines information about all of the interfaces of the node at: info about the ARP table ip: defines info related to IP, such as routing table and IP address icmp: info related to ICMP, such as number of packets sent, total errors tcp: data such as connection table, time-out values, number of ports udp: data such as number of ports, number of packets sent and received snmp: general info related to SNMP itself TCP/IP Protocol Suite 29 Figure 21.15 udp group Say you want to reference the variable udpIn Datagrams. The id of the variable would be 1.3.6.1.2.1.7.1. To reference udpLocal Address: 1.3.6.1.2.1.7.5.1.1. But these only reference the variable. If you want to show the contents of each variable, add a 0 to the end. So the value of updIn Datagrams is in 1.3.6.1.2.1.7.1.0. TCP/IP Protocol Suite 30 Figure 21.16 TCP/IP Protocol Suite udp variables and tables 31 Figure 21.17 Indexes for udpTable Note that entries in a table are not referenced by simple integer, as they are in most programming languages. Table entries are indexed by local IP address and local port number. TCP/IP Protocol Suite 32 Figure 21.18 Lexicographic ordering Data is ordered by columns. TCP/IP Protocol Suite 33 21.5 SNMP SNMP v3 is an application program that allows 1) a manager to retrieve the value of an object defined in an agent; 2) a manager to store a value in an object defined in an agent; and 3) an agent to send an alarm message about an abnormal situation to the manager. SNMP uses both SMI and MIB to accomplish this. The topics discussed in this section include: PDUs Format TCP/IP Protocol Suite 34 Figure 21.19 SNMP PDUs SNMP defines 8 types of packets (or PDUs): GetRequest – sent from manager (client) to agent (server) GetNextRequest – mostly used to retrieve values of the entries in a table GetBulkRequest – to retrieve a large amount of data SetRequest – sent from manager to agent to set(store) a value Response – in response to GetRequest or GetNextRequest Trap – reports an event. For example, if the agent is rebooted, it informs the manager and reports the time of rebooting. InformRequest – sent from one manager to another remote manager to get the values of some variables under the control of the remote manager Report – to report some types of errors between managers. Not yet in use. TCP/IP Protocol Suite 35 Figure 21.19 TCP/IP Protocol Suite SNMP PDUs 36 Figure 21.20 SNMP PDU format Format for the 8 PDUs: PDU Type – See Table 21.4 Error Status – Used in Response PDUs; see Table 21.3. Error Index – offset that tells which variable caused error VarBind List – set of variables the manager wants to retrieve (or set) TCP/IP Protocol Suite 37 Table 21.3 Types of errors TCP/IP Protocol Suite 38 21.6 MESSAGES SNMP does not just send PDUs, it embeds the PDU in a message. A message in SNMP is made of four elements: version, header, security parameters, and data (which includes the encoded PDU). (See the next figure) TCP/IP Protocol Suite 39 Figure 21.21 TCP/IP Protocol Suite SNMP message 40 Table 21.4 Codes for SNMP messages TCP/IP Protocol Suite 41 Example 5 In this example, a manager station (SNMP client) uses the GetRequest message to retrieve the number of UDP datagrams that a router has received. There is only one VarBind entity. The corresponding MIB variable related to this information is udpInDatagrams with the object identifier 1.3.6.1.2.1.7.1.0. The manager wants to retrieve a value (not to store a value), so the value defines a null entity. Figure 21.22 shows the conceptual view of the packet showing the hierarchical nature of sequences. We have used white and color boxes for the sequence and a gray one for the PDU. See Next Slide TCP/IP Protocol Suite 42 Example 5 The VarBind list has only one VarBind. The variable is of type 06 and length 09. The value is of type 05 and length 00. The whole is a sequence of length 0D (13). The VarBind list is also a sequence of length 0F (15). The GetRequest PDU is of length 1D (29). Now we have three OCTET STRINGs related to security parameter, security model, and flags. Then we have two integers defining maximum size (1024) and message ID (64). The header is a sequence of length 12, which we left blank for simplicity. There is one integer, version (version 3). The whole message is a sequence of 52 bytes. Figure 21.23 shows the actual message sent by the manager station (client) to the agent (server). See Next Slide TCP/IP Protocol Suite 43 Figure 21.22 Example 5 BER notation: 30 means Sequence of, 34 is length (Table 21.2) Max. size and Msg.ID Security parameter, security model, flags Get Request PDU Table 21.4 Request ID, Error Status, Error Index (Fig 21.20) object identifier, length 9, udpInDatagrams (1.3.6.1.2.1.7.1.0) TCP/IP Protocol Suite 44 Figure 21.23 TCP/IP Protocol Suite GetRequest message 45 21.7 UDP PORTS SNMP uses the services of UDP on two well-known ports, 161 and 162. The well-known port 161 is used by the server (agent), and the wellknown port 162 is used by the client (manager). TCP/IP Protocol Suite 46 Figure 21.24 TCP/IP Protocol Suite Port numbers for SNMP 47 21.8 SECURITY The main difference between SNMPv3 and SNMPv2 is the enhanced security. SNMPv3 provides two types of security: general and specific. SNMPv3 provides message authentication, privacy, and manager authorization. TCP/IP Protocol Suite 48