RaneNote SNMP: SIMPLE? NETWORK MANAGEMENT PROTOCOL

Similar documents
SNMP....Simple Network Management Protocol...

SNMP and Network Management

System and Network Management

SNMP Simple Network Management Protocol

ITEC310 Computer Networks II

Simple Network Management Protocol SNMP

SNMP Basics BUPT/QMUL

Simple Network Management Protocol

Network Management. Jaakko Kotimäki. Department of Computer Science Aalto University, School of Science. 21. maaliskuuta 2016

C101:IntroductiontotheCommunications ProtocolsandTheirUsesin ITSApplications(K)

8 Tutorial: Using ASN.1

Chapter 9 Network Management

Simple Network Management Protocol (SNMP) Primer

Network Management. What is network management?

Chapter 9 Network Management

Chapter 8 Network Management. Chapter 8 outline. What is network management? Chapter 8: Network Management

Introduction. Protocol Selection

Simple Network Management Protocol

Simple Network Management Protocol (SNMP) Amar J. Desai Graduate Student University of Southern California Computer Science

SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)

TÓPICOS AVANÇADOS EM REDES ADVANCED TOPICS IN NETWORKS

Vanguard Applications Ware Basic Protocols. SNMP/MIB Management

R07. IV B.Tech. II Semester Regular Examinations, April, NETWORK MANAGEMENT SYSTEMS (Information Technology)

Network Management (NETW-1001)

QoS: CBQoS Management Policy-to- Interface Mapping Support Configuration Guide, Cisco IOS XE Release 3S (Cisco ASR 1000)

SNMP SMI Structure of Management Information

Introduction Network Management Framework Structure of Management Information Names Instances Syntax...

PA160: Net-Centric Computing II. Network Management

TELE 301 Network Management

Know the signs of potential problems. Prevent problems before they occur. This unit contains the following three lessons:

Simple Network Management Protocol

Simple Network Management Protocol

Hit the Ground Running with SNMP LISA 2006, Washington, DC Doug Hughes

SNMP Agent Plug-In Help Kepware Technologies

INTERNATIONAL TELECOMMUNICATION UNION

Prepared By: P Lichen. P Xulu

Outline of the SNMP Framework

Link Layer Discovery Protocol and MIB

Brocade Product Training

Table of Contents. Overview...2. System Requirements...3. Hardware...3. Software...3. Loading and Unloading MIB's...3. Settings...

BEA WebLogic Server. and BEA WebLogic Express. SNMP Management Guide

Jean Parrend 1/6 SNMP. Content. 1. Introduction...1

SNMP, CMIP based Distributed Heterogeneous Network Management using WBEM Gateway Enabled Integration Approach

The ABCs of SNMP. Info Sheet. The ABC of SNMP INTRODUCTION. SNMP Versions

Network Monitoring. By: Delbert Thompson Network & Network Security Supervisor Basin Electric Power Cooperative

Network Management & Monitoring Introduction to SNMP

APPENDIX B. Routers route based on the network number. The router that delivers the data packet to the correct destination host uses the host ID.

SNMP. Simple Network Management Protocol

TTM 4128 Network and Service Management ( Learning Objectives Specification

IP Link Device Interface Communication Sheet

--****************************************************************************** -- Filename: FDOT -standard Global MIB v01.mib -- Source: NTCIP

Chapter 9 Network Management. ISO network management. What is network management? Chapter 9: Network Management. Network Management standards

Network Management. New York Institute of Technology CSCI 690 Michael Hutt

SNMP MANAGER ON A PDA. A Major Qualifying Project Report: submitted to the Faculty. of the WORCESTER POLYTECHNIC INSTITUTE

PLANEAMENTO E GESTÃO DE REDES INFORMÁTICAS COMPUTER NETWORKS PLANNING AND MANAGEMENT

An SNMP Gateway for Delay/Disruption Tolerant Network Management GREGORY L. CAMPBELL. Ohio University 08/22/10

Dell OpenManage SNMP Reference Guide Version 8.0.1

Internetworking and IP Address

SYMETRIX SOLUTIONS: TECH TIP August 2015

Accessibility-MiVoice-Business.docx Page 1

This Lecture. NWEN 403 Advanced Network Engineering. Network Management. Outline. Network management. Qiang Fu

Computer Networks. Introduc)on to Naming, Addressing, and Rou)ng. Week 09. College of Information Science and Engineering Ritsumeikan University

Simple Network Management Protocol

IP Subnetting: Practical Subnet Design and Address Determination Example

Network Security: Workshop

Simple Network Management Protocol - SNMP v1, ASN, MIB, BER. Network Management

Integrating VoltDB with Hadoop

Remote Management. Vyatta System. REFERENCE GUIDE SSH Telnet Web GUI Access SNMP VYATTA, INC.

IP Link Device Interface Communication Sheet

A Brief Introduction to Internet Network Management and SNMP. Geoff Huston NTW Track 4

KwikNet. SNMP Agent. User's Guide. First Printing: February 15, 1999 Last Printing: September 15, Manual Order Number: PN303-9S

Understanding the SCSI MIB

Subnetting and Network Management Omer F. Rana. Networks and Data Communications 1

Network Monitoring & Management Introduction to SNMP

Network Discovery Protocol LLDP and LLDP- MED

SNMP Agent Plug-In Help Kepware Technologies

TCP/IP works on 3 types of services (cont.): TCP/IP protocols are divided into three categories:

Simple Network Management Protocol

Network Discovery Protocol LLDP and LLDP- MED

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

Tenor SNMP Implementation

IP Subnetting. Subnetting

Presented by Aurang Zeb 14CS-03. Network Management System

RMON, the New SNMP Remote Monitoring Standard Nathan J. Muller

Comparison of SNMP. Versions 1, 2 and 3

Introduction to Wireshark Network Analysis

Knowledge Base Article. Integrating ISONAS Access Control System with TagMaster LR-series RFID Readers

Note: Most of the information in this chapter is taken from [1], and accompanying slides that are Mani Subramanian 2000

Monitoring Oracle WebLogic Server with SNMP 12c (12.2.1)

MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b CONTENTS

Network Management. Network Management. Copyright and acknowledgments. Acknowledgements. Pag. 1

What is it? SNMP. Agenda. Four Basic Elements

Computer Networks By Bahaa Q. Al-Mussawi Subnetting Basics Reduced network traffic Optimized network performance Simplified management

Network Management. Copyright and acknowledgments

PowerLogic ION7550 / ION7650

Appendix A Remote Network Monitoring

eztcp Technical Document Modbus/TCP of eztcp Caution: Specifications of this document may be changed without prior notice for improvement.

One of the most important topics in any discussion of TCP/IP is IP. IP Addressing

AKD EtherNet/IP Communication

Using RMON to Manage Remote Networks Gilbert Held

Transcription:

RaneNote : SIMPLE? NETWORK MANAGEMENT PROTOCOL : Simple? Network Management Protocol Overview The Message Format The Actual Bytes Douglas Bruey Rane Corporation RaneNote 161 2005 Rane Corporation Introduction Although some RS-232 connectors still cling desperately to audio hardware products around the world, for years Ethernet and the Internet Protocol (IP) have been replacing older serial communication formats as the connection of choice for monitoring and controlling audio as well as video, networking, and industrial equipment. Since the childhood of computer networking, network designers envisioned a world where a person s audio system, video system, HVAC system, and toaster all connect to the same network. To that end, computer scientists developed a protocol capable of managing any network device. The result was, which stands for Simple Network Management Protocol. was introduced in 1988 and now includes three distinct versions v1, v2, and v3. Due to the maturity of, many device manufacturers include support for this protocol in their products, and many management solutions exist off-the-shelf for common operating systems and programming languages. However, management capabilities are still lacking for today s control system platforms, requiring control system programmers to write their own management code. Of course, writing an manager should be simple, right? After all, it is the Simple Network Management Protocol. Unfortunately, Simple means easy for computer scientists who spend eight hours a day thinking about designing network protocols. When making the leap from constructing text strings to constructing messages, the word Simple is a cruel joke that leaves control system programmers shouting Just tell me the bytes to send! In answer to that plea, this RaneNote provides a technical overview of v1, along with the terminology necessary to understand the message, describe the message format, and show exactly (byteby-byte) how to construct the message.

: Overview is the protocol that allows an manager (the controller) to control an agent (the controlee) by exchanging messages. An message is a packet sent over UDP/IP to port 161. UDP/IP is the User Datagram Protocol over IP. To learn how to get your hardware to send your message using UDP/IP to port 161, pick your favorite programming language and hit the help files. To learn how to construct an message, read on. The main purpose of an message is to control (set) or monitor (get) parameters on an agent. In, a parameter is an instance of a more generic object. For example, an agent may have several instances of a microphonemute object one instance for each microphone input. An manager can set or get the value for each instance (each parameter). In an agent, parameters are arranged in a tree. uses an Object Identifier (OID) to specify the exact parameter to set or get in the tree. An OID is a list of numbers separated by periods. For example, the OID addressing the microphonemute parameter in a Rane NM 1 is 1.3.6.1.4.1.2680.1.2.7.3.2.0. This OID is actually a combination of two values. The first value is the OID of the generic object 1.3.6.1.4.1.2680.1.2.7.3.2. The second is the instance value, which specifies the particular instance of the mirophonemute object. The instance value in this case is 0, because the NM 1 has only one microphone input. But where do these OIDs come from? Every agent has an address book of all its objects, called the MIB or Management Information Base. The MIB provides the name, OID, data type, read/write permissions, and a brief description for each object in an agent. For an example, check out the Rane NM 1 MIB at the end of this RaneNote. Armed with information about an object from the MIB, and the instance value, an manager can send an message to set or get one of the parameters on an agent. However, there are two major difficulties that an message must overcome to be understood by any device. All devices must understand an message, which presents a couple problems. The first problem exists because different software languages have slightly different sets of data types (integers, strings, bytes, characters, etc). For example, an manager sending a message full of Java data types may not be understood by an agent written in C. To solve this problem uses ASN.1 or Abstract Syntax Notation One to define the data types used to build an message. Since ASN.1 is independent of any particular programming language, the agents and managers may be written in any language. However, even when using valid ASN.1 data types another problem still exists. When sending a particular data type over the wire, how should it be encoded? Should strings be null terminated as in the programming language C, or not? Should Boolean values be 8 bits as in C++ or 16 bits as in Visual Basic 6? ASN.1 includes Basic Encoding Rules (BER) to address this problem. Regardless of programming language, all data types are encoded the same way before they are placed on the wire by following the Basic Encoding Rules. In short, all data fields in an message must be a valid ASN.1 data type, and encoded according to the BER. To send a properly formatted message, the programmer must understand ASN.1 and the Basic Encoding Rules.

ASN.1 Constructing a message requires some knowledge of the data types specified by ASN.1, which fall into two categories: primitive and complex. ASN.1 primitive data types include Integer, Octet (byte, character) String, Null, Boolean and Object Identifier. The Object Identifier type is central to the message, because a field of the Object Identifier type holds the OID used to address a parameter in the agent. To expand the programmer s ability to organize data, ASN.1 allows primitive data types to be grouped together into complex data types. ASN.1 offers several complex data types necessary for building messages. One complex data type is the Sequence. A Sequence is simply a list of data fields. Each field in a Sequence can have a different data type. ASN.1 also defines the PDU (Protocol Data unit) data types, which are complex data types specific to. The PDU field contains the body of an message. Two PDU data types available are GetRequest and SetRequest, which hold all the necessary data to get and set parameters, respectively. Ultimately the message is a structure built entirely from fields of ASN.1 data types. However, specifying the correct data type is not enough. If the message is a Sequence of fields with varying data types, how can a recipient know where one field ends and another begins, or the data type of each field? Avoid these problems by conforming to the Basic Encoding Rules. Type Length Data Figure 1. Format: BER Encoded Field (Primitive Data Type) Basic Encoding Rules Follow the Basic Encoding Rules when laying out the bytes of an message. The most fundamental rule states that each field is encoded in three parts: Type, Length, and Data. Type specifies the data type of the field using a single byte identifier. For a brief table of some data types and their identifiers, see Table 1. Length specifies the length in bytes of the following Data section, and Data is the actual value communicated (the number, string, OID, etc). One way to visualize encoding a field is shown in Figure 1. Some data types, like Sequences and PDUs, are built from several smaller fields. Therefore, a complex data type is encoded as nested fields, as shown in Figure 2. There are two more Basic Encoding Rules necessary for encoding an message. Both apply to encoding OIDs. The first rule applies when encoding the first two numbers in the OID. According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. The first two numbers in an OID are always 1.3. Therefore, the first two numbers of an OID are encoded as 43 or 0x2B, because (40*1)+3 = 43. After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as a byte. However, a special rule is required for large numbers because one byte (eight bits) can only represent a number from 0-255. For example, the number 2680 in the Rane NM 1 microphonemute OID 1.3.6.1.4.1.2680.1.2.7.3.2.0 cannot be encoded using a single byte. The rule for large numbers states that only the lower 7 bits in the byte are used for holding the value (0-127). The highest order bit is used as a flag to let the recipient know that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. According to this rule, the number 2680 must be encoded 0x94 0x78. Since the most significant bit is set in the first byte (0x94), the recipient knows to use the lower 7 bits from each byte (0x14 and 0x78) and decode the two bytes as (0x14 *128) + 0x78 = 2680. Type Length Type Length Data Type Length Data Figure 2. Format: BER Encoded Fields (Complex Data Type) Primitive Data Types Identifier Complex Data Types Identifier Integer 0x02 Sequence 0x30 Octet String 0x04 GetRequest PDU 0xA0 Null 0x05 GetResponse PDU 0xA2 Object Identifier 0x06 SetRequest PDU 0xA3 Table 1. Some ASN.1 Data Types

The Message Format The message format specifies which fields to include in the message and in what order. Ultimately, the message is made of several layers of nested fields. At the outer-most layer, the message is a single field, of the Sequence type. The entire message is a Sequence of three smaller fields: the Version (Integer), the Community String (Octet String), and the PDU (GetRequest, or SetRequest). Message (Sequence) Version (Integer) Community String (Octet String) PDU (GetRequest, SetRequest, etc.) Since the Version and Community String are primitive data types they aren t built from smaller fields (no more layers). However, the PDU is a complex data type made up of several smaller fields (more layers). The PDU is composed of a Request ID (Integer), Error (Integer), Error Index (Integer), and a Varbind List. A Varbind or Variable Binding is a Sequence of two specific fields. The first field is an OID, which addresses a specific parameter. The second field contains the Value of the specified parameter. In a SetRequest, Value must be the same data type specified in the MIB for the parameter being set. In a GetRequest, Value is a Null with length 0x00. This null data is a placeholder for the Value data that the agent returns using the GetResponse PDU. As the name suggests, a Varbind List is a Sequence of Varbinds. When a message is setting or getting a single parameter, the Varbind List holds only one Varbind. For an explanation of each message field see Table 2. Message (Sequence) Version (Integer) Community String (Octet String) PDU (GetRequest, SetRequest, etc.) Request ID Error Error Varbind List (Sequence) (Integer) (Integer) Index (Integer) Varbind (Sequence) Object Identifier (OID) Value (Integer, Octet String, etc.) Field message Description A Sequence representing the entire message consisting of the version, Community String, and PDU. Version An Integer that identifies the version of. v1 = 0 Community String PDU Request ID Error Error Index Varbind List Varbind Object Identifier Value An Octet String that may contain a string used to add security to devices. An PDU contains the body of the message. There are several types of PDUs. Three common PDUs are GetRequest, GetResponse, SetRequest. An Integer that identifies a particular request. This index is echoed back in the response from the agent, allowing the manager to match an incoming response to the appropriate request. An Integer set to 0x00 in the request sent by the manager. The agent places an error code in this field in the response message if an error occurred processing the request. Some error codes include: 0x00 No error occurred 0x01 Response message too large to transport 0x02 The name of the requested object was not found 0x03 A data type in the request did not match the data type in the agent 0x04 The manager attempted to set a read-only parameter 0x05 General Error (some error other than the ones listed above) If an Error occurs, the Error Index holds a pointer to the Object that caused the error, otherwise the Error Index is 0x00. A Sequence of Varbinds. A Sequence of two fields, an Object ID and the value for/from that Object ID. An Object Identifier that points to a particular parameter in the agent. SetRequest PDU Value is applied to the specified OID of the agent. GetRequest PDU Value is a Null that acts as a placeholder for the return data. GetResponse PDU The returned Value from the specified OID of the agent. Table 2. Fields in the message

The Actual Bytes To all the readers joining us at this point, because they are in a hurry, or because they enjoy reading the last chapter of their mystery novels first, welcome. Now is the time to create the message by applying the Basic Encoding Rules to the fields and laying out the bytes in the correct order. As an example, Figure 3 shows an GetRequest packet for the microphonemute parameter on a Rane NM 1 (OID: 1.3.6.1.4.1.26 80.1.2.7.3.2.0). It is important to remember that changing the number of bytes of any field in the message requires changing the Length byte of all the outer layers that enclose the edited field. For example, changing the GetRequest below to a SetRequest that sets the microphonemute to a Value of 1 (0x01) requires changing the PDU data type to SetRequest (0xA3) and the Value field to an integer (0x04) of length 0x01 and data 0x01. However, increasing the length of the Value field also increases the length of the Varbind, Varbind List, PDU, and message fields. References 1. Kevin Gross and Tom Holtzen. Controlling and Monitoring Audio Systems with Simple Network Management Protocol (), presented at the 105th Convention of the Audio Engineering Society, San Francisco, September 26, 1998, preprint no. 4760. 2. ITU-T X.690, ASN.1 Encoding Rules Specification, 7/2002. 3. Vijay Mukhi s Computer Institute, India www.vijaymukhi.com/vmis/bersnmp.htm www.vijaymukhi.com/vmis/snmp.htm 4. Instytut Elektroniki I Telekommunikacji (Electronic and telecommunication Institute), Poland www.et.put.poznan.pl/snmp/main/mainmenu.html 5. The TCP/IP Guide, Version 3.0, Charles M. Kozierok. www.tcpipguide.com/free/t_version- 1v1MessageFormat.htm 6. Objective Systems, Inc. www.obj-sys.com/asn1tutorial/node1.html Message Type = Sequence, Length = 44 PDU Type = GetRequest, Length = 30 Varbind List Type = Sequence, 9 Varbind Type = Sequence, 7 Error Index Value = 0 Error Value = 0 Request ID Value = 1 Community String Type = Octet String Length = 7 Value = private Version Value = 0 Value Type = Null Length = 0 Object Identifier Type = Object Identifier 3 Value = 1.3.6.1.4.1.2680.1.2.7.3.2.0 30 2C 02 01 00 04 07 70 72 69 76 61 74 65 A0 1E 02 01 01 02 01 00 02 01 00 30 13 30 11 06 0D 2B 06 01 04 01 94 78 01 02 07 03 02 00 05 00 Figure 3. Message Diagram

Rane NM 1 MIB (Management Information Base) RANE-NM1-MIB-V1.my MIB generated by MG-SOFT Visual MIB Builder Version 4.0 Thursday, May 20, 2004 at 17:53:02 RANE-NM1-MIB-V1 DEFINITIONS ::= BEGIN IMPORTS mfgextensions FROM PEAKAUDIO-MIB OBJECT-TYPE FROM RFC-1212 Counter FROM RFC1155-SMI; Node definitions 1.3.6.1.4.1.2680.1.2.7 rane OBJECT IDENTIFIER ::= { mfgextensions 7 } 1.3.6.1.4.1.2680.1.2.7.3 NM1 OBJECT IDENTIFIER ::= { rane 3 } 1.3.6.1.4.1.2680.1.2.7.3.1 micpreampgain OBJECT-TYPE (10..65) Gain through the mic preamplifier stage. Gain can be adjusted in 1 db increments in the range 10dB through 65dB. DEFVAL { 10 } ::= { NM1 1 } 1.3.6.1.4.1.2680.1.2.7.3.2 microphonemute OBJECT-TYPE ACCESS read-only State of the microphone mute. 0 - unmuted 1 - muted ::= { NM1 2 } 1.3.6.1.4.1.2680.1.2.7.3.3 talk OBJECT-TYPE Present state of the talk button flip flop. 0 - off 1 - on ::= { NM1 3 } 1.3.6.1.4.1.2680.1.2.7.3.4 talktoggle OBJECT-TYPE SYNTAX Counter Toggle the talk button flip flop. Set this variable to any value other than its current value to cause the flip flop to change state. ::= { NM1 4 } 1.3.6.1.4.1.2680.1.2.7.3.5 cough OBJECT-TYPE ACCESS read-only Present state of the cough momentary button. END 1.3.6.1.4.1.2680.1.2.7.3.6 coughdisable OBJECT-TYPE Control for disabling cough button from the audio muting logic. Cough indicator will continue to function normally but audio will not be affected. 0 - cough function enabled - default 1 - cough function disabled ::= { NM1 6 } 1.3.6.1.4.1.2680.1.2.7.3.7 override OBJECT-TYPE ACCESS read-only Present state of the override momentary button. 0 - not depressed 1 - depressed ::= { NM1 7 } 1.3.6.1.4.1.2680.1.2.7.3.8 overridedisable OBJECT-TYPE Control for disabling override button from the audio muting logic. Override indicator will continue to function normally but audio will not be affected. 0 - override function enabled - default 1 - override function disabled ::= { NM1 8 } 1.3.6.1.4.1.2680.1.2.7.3.9 privatemode OBJECT-TYPE Present state of the private mode button flip flop. 0 - off 1 - on ::= { NM1 9 } 1.3.6.1.4.1.2680.1.2.7.3.10 privatemodetoggle OBJECT-TYPE SYNTAX Counter Toggle the private mode button flip flop. Set this variable to any value other than its current value to cause the flip flop to change state. ::= { NM1 10 } 0 - not depressed 1 - depressed ::= { NM1 5 } RANE-NM1-MIB-V1.my Rane Corporation 10802 47th Ave. W., Mukilteo WA 98275-5098 USA TEL 425-355-6000 FAX 425-347-7757 WEB www.rane.com