Introduction to SNMPmohiqbal.staff.gunadarma.ac.id/Downloads/files/35177/mohiqbal+-+9+SNMP.pdf2....

Post on 15-Apr-2020

15 views 0 download

Transcript of Introduction to SNMPmohiqbal.staff.gunadarma.ac.id/Downloads/files/35177/mohiqbal+-+9+SNMP.pdf2....

Introduction to SNMP

Dr. Mohammad Iqbal Thanks to : Yen-Cheng Chen

http://www.im.tj.mcu.edu.tw/~ycchen/

Contents

1. Basic Concepts

2. Management Information Base

3. Simple Network Management Protocol

4. SNMP Application Examples4. SNMP Application Examples

5. Reference

Appendix: ASN.1 Concept

1. Basic Concepts

FDDI

ManagementStation

ManagementStation

....

...

PC UNIX

NMNMNMNM

3

InternetInternet

RMONDevice

UNIX....

UNIX PC

Firewall/ Router ....

...

PollingPolling NotificationNotification

PC

SNMP Standard

Internet SNMPv1, SNMPv2, SNMPv3

ISO/ITU-T X.700 Series: CMIP/S (Common Management Information Protocol /

4

CMIP/S (Common Management Information Protocol / Service)

ITU-T M.3000 Series: TMN (Telecommunication Management Networks)

SNMP Concepts

SNMP: Simple Network Management Protocol

De facto standards of network management for TCP/IP networks (Internet)networks (Internet)

IAB recommends all IP & TCP implementations should be network manageable.

That is, all TCP/IP network devices should support SNMP.

IAB: Internet Activities Board

SNMP Architectural Model

Key Components One or more Management Stations

• Perform management applications, i.e, Monitor & Control.

Multiple Network Elements Multiple Network Elements• hosts, routers, gateways, ..., which each contain an Agent.

Network Management Protocol• Exchange network management information.

SNMP Architectural Model (cont.)

SNMP SNMPSNMP

Manager Agent Agent

ManagementStation Host Router

Network Elements (NEs)

Network

Network

網路介面

SNMP

UDP

IP

網路介面

SNMP

UDP

IP

網路介面

SNMP

UDP

IP

. . .Network

ManagementProtocol

SNMP

Management Components

Manager

Agent

Network Management Protocol

8

Network Management Protocol

Management Information Base (MIB)

Management Components

Management Station (Manager) Network management applications. Provide an interface which the human network manager can

monitor and control the network.

Agent

9

Agent Network devices should be equipped with agent software so

that they can be managed from a management station. Responds to requests for information from managers. Responds to requests for actions from managers. May asynchronously provide managers with important but

unsolicited information.

Management Components (cont.)

Network Management Protocol

Communication protocol between managers and agents

NM protocol provides a standard way to exchange

management information between managers and agents.

10

management information between managers and agents.

Management Information Base (MIB)

A collection of Managed Objects.

The resources to be managed are represented as objects,

called Managed Objects (MOs).

Management Information Base (MIB)

Each resource to be managed is represented by an object, called managed object (MO).

The MIB is a structured collection of MOs.

Essentially, each MO is a data AgentAgent

Managed Resources

MIBMIB Essentially, each MO is a data

variable. Each agent in an NE maintains an

MIB.

Monitor: by reading the values of MOs in the MIB.

Control: by modifying the values of MOs in the MIB.

網路介面

SNMP

UDP

IP

AgentAgent

NE: Network Element

SNMP Services

Four Services Get, Set, GetNext, Trap

Five SNMP PDUs GetRequest, SetRequest, GetNextRequest, GetResponse, Trap

Manager Agent(s)

Get, Set, GetNext Request

Get Response

Trap

PDU: Protocol Data Unit

SNMP Services

Get Request

Get ResponseManager Agent

GetNext Request

Get ResponseManager Agent

Get

GetNext

Get

GetNext

13

Get ResponseManager Agent

Set Request

Get ResponseManager Agent

Trap RequestManager Agent

GetNext

Set

Trap

GetNext

Set

Trap

SNMP Services (cont.)

Get Request: Retrieve the values of objects in the MIB of an agent.

Get-Next Request: Retrieve the values of the next objects in the MIB of an agent. Retrieve the values of the next objects in the MIB of an agent.

Set Request: Update the values of objects in the MIB of an agent.

Trap Request Report extraordinary events to the manager.

Get-Next Request

MIB Tree :In SNMP, Only leaf objects have values.

:Non-Leaf Object

:Leaf Object1 2 3

4 5 6

Default UDP Ports for SNMP

SNMP

Manager

ManagementStation

Network Elements (NEs)

SNMP

Agent

網路介面

SNMP

UDP

IP

網路介面

SNMP

UDP

IP

162 Any 161 Any

SNMP Standards

SNMP Protocol (Std 15) RFC1157: Simple Network Management Protocol.

Structure of Management Information (SMI) (Std 16) RFC1155: Structure and Identification of Management

Information for TCP/IP-based Internets.Information for TCP/IP-based Internets.

RFC1212: Concise MIB Definitions.

MIB-II (Std 17) RFC1213: Management Information Base for Network

Management of TCP/IP-based Internets: MIB-II.

http://www.isi.edu/rfc-editor/rfc.html

2. Management Information Base

Structure of Management Information (SMI) Set of rules on how managed objects should be defined.

Objects are defined using Abstract Syntax Notation One ASN.1 (ITU-T X.208 / ISO 8824)

MIB MIB The collection of all defined objects

Contains hierarchically organized variables corresponding to managed objects.

MIB-II, RMON MIB, Bridge MIB, Repeater MIB, X.25 MIB, FDDI MIB, Token Ring MIB, ...

Object Identifier Object Identifier (OID):

Global identifier for a particular object type.

An OID consists of a sequence of integers, which specify the position of the object in the global object identifier tree.

root

ccitt iso joint-iso-ccitt0 1 2

0 3

directory

std regauthority

memberbody

org0

1 2 3

dod

internet

6

1

12 3 4

mgmt experimental private

MIB II

system1

interface2

at3

IP4

ICMP5

TCP6

UDP7

EGP8

Trans.10

SNMP11

1 1enterprises

1.3.6.1.2.1.2 1.3.6.1.4.1

1.3.6.1.2.1

MIB II

interface

enterprises

Private MIB Registration

Companies can register their private MIB extensions in the global MIB tree by contacting the Internet Assigned Numbers Authority (IANA).

20

Authority (IANA).

http://www.iana.org/http://www.iana.org/

Currently assigned enterprise subtrees

ftp://ftp.isi.edu/inftp://ftp.isi.edu/in--notes/iana/assignments/enterprisenotes/iana/assignments/enterprise--numbersnumbers

SMI (RFC1155)RFC1155-SMI DEFINITIONS ::= BEGINEXPORTS -- EVERYTHING

internet, directory, mgmt, experimental, private,enterprises, OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,ApplicationSyntax, NetworkAddress, IpAddress, ApplicationSyntax, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks, Opaque;

internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }directory OBJECT IDENTIFIER ::= { internet 1 }mgmt OBJECT IDENTIFIER ::= { internet 2 }experimental OBJECT IDENTIFIER ::= { internet 3 }private OBJECT IDENTIFIER ::= { internet 4 }enterprises OBJECT IDENTIFIER ::= { private 1 }

SMI (cont.)OBJECT-TYPE MACRO ::=

BEGINTYPE NOTATION ::=

"SYNTAX" type (TYPE ObjectSyntax)"ACCESS" Access"STATUS" Status

VALUE NOTATION ::= value (VALUE ObjectName)

ASN.1 Macro

VALUE NOTATION ::= value (VALUE ObjectName)Access ::= "read-only"

| "read-write"| "write-only"| "not-accessible"

Status ::= "mandatory" | "optional"| "obsolete"

END

ObjectName ::= OBJECT IDENTIFIER

OBJECT-TYPE Example

sysDesc OBJECT-TYPE

SYNTAX DisplayString (SIZE (0..255))

ACCESS read-only

23

ACCESS read-only

STATUS mandary

::= { system 1}

ObjectName ::= OBJECT IDENTIFIER

ObjectSyntax ::=CHOICE {

simple SimpleSyntax,application-wide

ApplicationSyntax}

SimpleSyntax ::=CHOICE {

number INTEGER,

NetworkAddress ::=CHOICE {

internet IpAddress}IpAddress ::=

[APPLICATION 0]IMPLICIT OCTET STRING (SIZE (4))

Counter ::=[APPLICATION 1]IMPLICIT INTEGER (0..4294967295)

Gauge ::=

SMI (cont.)

number INTEGER,string OCTET STRING,object OBJECT IDENTIFIER,empty NULL} }

ApplicationSyntax ::=CHOICE {

address NetworkAddress,counter Counter,gauge Gauge,ticks TimeTicks,arbitrary Opaque}

Gauge ::=[APPLICATION 2]IMPLICIT INTEGER (0..4294967295)

TimeTicks ::=[APPLICATION 3]IMPLICIT INTEGER (0..4294967295)

Opaque ::=[APPLICATION 4] IMPLICIT OCTET STRING

END

Object Syntax Summary

Simple Syntax Integer

Octet String

Object Identifier

Application Syntax Network Address

Counter

Gauge

25

Object Identifier

Null

Gauge

Time Ticks

Opaque

Concise MIB Definition (RFC 1212)

OBJECT-TYPE MACRO ::=

BEGIN

TYPE NOTATION ::=

"SYNTAX" type(ObjectSyntax)

"ACCESS" Access

"STATUS" Status

DescrPart

ReferPart

DescrPart ::=

"DESCRIPTION" value (description DisplayString)

| empty

ReferPart ::=

"REFERENCE" value (reference DisplayString)

| empty

IndexPart ::=

"INDEX" "{" IndexTypes "}" | emptyReferPart

IndexPart

DefValPart

VALUE NOTATION ::=

value (VALUE ObjectName)

"INDEX" "{" IndexTypes "}" | empty

IndexTypes ::=

IndexType | IndexTypes "," IndexType

IndexType ::=

value (indexobject ObjectName) | type (indextype)

DefValPart ::=

"DEFVAL" "{" value (defvalue ObjectSyntax) "}"

| empty

END

Examples: MIB II (RFC 1213)mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }system OBJECT IDENTIFIER ::= { mib-2 1 }interfaces OBJECT IDENTIFIER ::= { mib-2 2 }at OBJECT IDENTIFIER ::= { mib-2 3 }ip OBJECT IDENTIFIER ::= { mib-2 4 }icmp OBJECT IDENTIFIER ::= { mib-2 5 }

tcp OBJECT IDENTIFIER ::= { mib-2 6 }udp OBJECT IDENTIFIER ::= { mib-2 7 }egp OBJECT IDENTIFIER ::= { mib-2 8 }-- cmot OBJECT IDENTIFIER ::= { mib-2 9 }

transmission OBJECT IDENTIFIER ::= { mib-2 10 }snmp OBJECT IDENTIFIER ::= { mib-2 11 }

ifEntry OBJECT-TYPEifTable OBJECT-TYPESYNTAX IfEntryACCESS not-accessibleSTATUS mandatoryDESCRIPTION

"An interface entry containing objects at the subnetwork layer and below for a particular interface."

INDEX { ifIndex }::= { ifTable 1 }

SYNTAX SEQUENCE OF IfEntryACCESS not-accessibleSTATUS mandatory

DESCRIPTION"A list of interface entries. The number of entries is givenby the value of ifNumber."

::= { interfaces 2 }

Identification of Managed Objects

Use Object Identifier (OID)

OID = Object Type OID . Instance Identifier

Object Type OID:

28

Object Type OID: Each Object type has a unique OID

Instance Identifier: Identify instances of object type

E.g .mib-2.interface.ifTable.ifEntry.ifDescr.2

Two Kinds of Managed Objects

Type-Specific Objects: sysDescr OBJECT-TYPE

SYNTAX DisplayString (SIZE(0..255))

::= {system 1}

OID: mib-2.system.1.0

29

OID: mib-2.system.1.0

Columnar Objects OID:

mib-2.interface.ifTable.ifEntry.ifDescr.2mib-2.interface.ifTable.ifEntry.ifDescr.6mib-2.interface.ifTable.ifEntry.ifType.2mib-2.interface.ifTable.ifEntry.ifType.6

Columnar Objects

ifTable OBJECT-TYPESYNTAX SEQUENCE OF IfEntry…::= { interface 2 }

IfEntry ::= SEQUENCE {ifIndex INTEGER,ifDescr DisplayString,ifType INTEGER,…

30

…}

ifEntry OBJECT-TYPESYNTAX IfEntry…INDEX {ifIndex }::= { ifTable 1}

ifDescr OBJECT-TYPESYNTAX DisplayString (SIZE(0..255))ACCESS read-onlySTATUS madatory

...::= {ifEntry 2}

Columnar Objects

ifIndex ifDescr ifType . . .

1 le0 6 . . .

6 llc0 1 . . .

.ifTable.ifEntry.1 (1.3.6.1.2.1.2.2.1.1)

.ifTable.ifEntry.2 (1.3.6.1.2.1.2.2.1.2)

.ifTable.ifEntry.3 (1.3.6.1.2.1.2.2.1.3)

31

6 llc0 1 . . .

7 lo0 24 . . .

9 le1 6 . . .

1.3.6.1.2.1.2.2.1.3.71.3.6.1.2.1.2.2.1.2.6

Index in MIB II ifEntry {ifIndex} atEntry {atNetIfIndex, atNetAddress}

ipAddrEntry {ipAdEntAddr }

ipRouteEntry {ipRouteDest}

ipNetToMediaEntry {ipNetToMediaIfIndex,

32

ipNetToMediaEntry {ipNetToMediaIfIndex,

ipNetToMediaNetAddress}

tcpConnEntry

{tcpConnLocalAddress, tcpConnLocalPort,

tcpConnRemoteAddress, tcpConnRemotePort}

udpEntry {udpLocalAddress, udpLocalPort}

egpNeighEntry {egpNeighAddr}

Index Example

To get the state of the TCP connection:10.144.18.118:1200 ===> 10.144.14.40:1600

Use snmp_get_req. to get the “tcpConnState”

33

Use snmp_get_req. to get the “tcpConnState” of the tcpConnTable in MIB II.

tcpConnState ==> .1.3.6.1.2.1.6.13.1.1

.1.3.6.1.2.1.6.13.1.1.10.144.18.118.1200.10.144.14.40.1600

MIB II

System Group Provide general information about the managed system.

Interfaces Group Contains generic information about the physical interfaces.

Address-Translation Group Contains information about the mapping between network addresses and Contains information about the mapping between network addresses and

physical addresses for each physical interface.

IP Group Contains information about the implementation and operation of IP at the

managed system.

ICMP Group Contains information about the implementation and operation of ICMP at the

managed system.

MIB-II (cont.) TCP Group

Contains information about the implementation and operation of TCP at the managed system.

UDP Group Contains information about the implementation and operation of UDP at the

managed system.

EGP Group Contains information about the implementation and operation of EGP at the Contains information about the implementation and operation of EGP at the

managed system.

Transmission Group Provides details about the underlying transmission media for each interface.

SNMP Group Provides the statistics of SNMP operations at the managed system.

IETF MIBs

1213 MIB-II

1316 Character Stream

1317 RS-232-like Hardware

1471 PPP 1471 PPP

1513 RMON for Token Ring

1757 RMON

2021 RMON-II

.....

3. SNMP

SNMP Message Version Identifier

Community Name

Protocol Data Unit

Message ::=SEQUENCE {

version INTEGER {version-1(0)},community OCTET STRING,data ANY

}

The length of SNMP messages should not exceed 484 octets.

Version Community SNMP PDU

SNMP Authentication

Community

Relationship between an Agent and Managers.

Community Name

Used to validate the SNMP messages.

SNMP Password.

Default ‘Get’ community name: “public”.

Authentication Failure

Agent sends “Authentication Failure Trap” to Manager.

SNMP PDUPDU ::= SEQUENCE {

request-id INTEGER,error-status INTEGER {

noError(0),tooBig(1),noSuchName(2),badValue(3),readOnly(4)

GetRquest :GetNextRequest :

GetResponse :

[0] PDU[1] PDU[2] PDU

Five SNMP PDUs:

readOnly(4)genErr(5)},

error-index INTEGER,variable-bindings

SEQUENCE OF {name ObjectName,value ObjectSyntax

}}

GetResponse :SetRequest :

Trap :

[2] PDU[3] PDU[4] Trap-PDU

PDU: Protocol Data Unit

SNMP PDU (cont.)

PDU type request-id 0 0 variable-bindings

GetRequest, GetNextRequest, SetRequest

GetResponse

PDU type request-id error-status error-index variable-bindings

GetResponse

variable-bindings

name value name value name value. . .

Trap-PDUTrap-PDU ::= [4]

IMPLICIT SEQUENCE {enterprise OBJECT IDENTIFIER,agent-addr NetworkAddress,

generic-trap INTEGER {coldStart(0),warmStart(1),linkDown(2),linkUp(3),

Enterprise:Type of Object generating trap.

Agent Address:Address of object generating trap.

Generic Trap:Generic trap type.

Specific Trap:Enterprise specific trap.

linkUp(3),authenticationFailure(4),egpNeighborLoss(5),enterpriseSpecific(6)},

specific-trap INTEGER,time-stamp TimeTicks,variable-bindings VarBindList

}

Enterprise specific trap.

Time Stamp:Time elapsed between the last initialization of the network entity andthe generation of the trap.

Variable Bindings“Interesting” information

PDU type enterprise agent-addr generic-trap variable-bindingsspecific-traptime-stamp

How does a Manager do?

Translates Internal Data to

ASN.1 Format

Sends RequestPDU to Agent

NMApplication

Agent

Translates ASN.1Package to Internal

Data Format

Received ResponsePDU from Agent

NMApplication

Agent

Manager

How does an Agent do?

Received SNMP Request PDU from Manager

Translates ASN.1Structure to

Internal Data

Maps MIB Variables to

Internal Variables

FromManager

Sends SNMP Response PDU

to Manager

Translates ResponsePDU to ASN.1

Format

Implement SNMP Request to Set orGet MIB Value

ToManager

Agent

Main Loop of Agent Agent waits for an incoming datagram in Port 161

Reads the datagram from UDP and notes the transport address of the sending entity.

Increments the QUANTUM to keep track of the logical request-id being processed by agent

De-serializes the datagram into an ASN.1 structure. If error De-serializes the datagram into an ASN.1 structure. If error occurs, log error and discard packet.

The ASN.1 structure is translated into SNMP message. If error occurs, log error and discard packet.

Check on VERSION-NUMBER field. If error occurs, log error and discard packet.

Main Loop of Agent (cont.)

Community name is looked up.

If community is unknown to agent, agent send AUTHENTICATION trap to Manager station in Port 162; log error and discard packet.

Agent loops through list of variables in the request.

If no prototype is found, return a GET-RESPONE with error noSuchName and discard package.

Once prototype is fund, operation is checked against community profile. If mismatch occurs, return get-respone with error noSuchName or readOnly and discard package.

Otherwise, agent invokes access routine to perform the desired operation.

What's New in SNMPv2

No more Trap PDU, 3 New PDUs:

getBulkReq, InformReq, SNMPv2-Trap

Added Security

18 Error Status Values 18 Error Status Values

SNMPv2 SMI / SNMPv2 MIB

M-to-M Communications

Table Operations

...

4. SNMP Application Examples SNMP Commands

snmpget [options] node variable [...]• query a node using SNMP Get request

snmpnext [options] node variable [...]• query a node using SNMP GetNext request

snmpwalk [options] node variable snmpwalk [options] node variable • query a node repeatedly using SNMP GetNext/GetBulk requests

snmptrap [-d] [-p port] [-c community] node enterprise agent-addr generic-trap specific-trap time-stamp variable type value [variable type value...]

• issue an SNMP Version 1 Trap

options:[-d] [-t timeout] [-r retries] [-p port] [-c community] [-v version]

Example for snmpget>>snmpget -d 10.144.18.118 .1.3.6.1.2.1.1.1.0Transmitted 41 bytes to camry (10.144.18.118) port 161:

Initial Timeout: 0.80 seconds

0: 30 27 02 01 00 04 06 70 75 62 6c 69 63 a0 1a 02 0'.....public...

16: 02 18 bc 02 01 00 02 01 00 30 0e 30 0c 06 08 2b .........0.0...+

32: 06 01 02 01 01 01 00 05 00 -- -- -- -- -- -- -- ................

0: SNMP MESSAGE (0x30): 39 bytes

2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1)2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1)

5: OCTET-STR COMMUNITY (0x4) 6 bytes: "public"

13: GET-REQUEST-PDU (0xa0): 26 bytes

15: INTEGER REQUEST-ID (0x2) 2 bytes: 6332

19: INTEGER ERROR-STATUS (0x2) 1 bytes: noError(0)

22: INTEGER ERROR-INDEX (0x2) 1 bytes: 0

25: SEQUENCE VARBIND-LIST (0x30): 14 bytes

27: SEQUENCE VARBIND (0x30): 12 bytes

29: OBJ-ID (0x6) 8 bytes: .1.3.6.1.2.1.1.1.0

39: NULL (0x5) 0 bytes

Example for snmpget (cont.)Received 69 bytes from camry (10.144.18.118) port 161:

0: 30 43 02 01 00 04 06 70 75 62 6c 69 63 a2 36 02 0C.....public.6.16: 02 18 bc 02 01 00 02 01 00 30 2a 30 28 06 08 2b .........0*0(..+32: 06 01 02 01 01 01 00 04 1c 53 75 6e 20 53 4e 4d .........Sun SNM48: 50 20 41 67 65 6e 74 2c 20 53 55 4e 57 2c 55 6c P Agent, SUNW,Ul64: 74 72 61 2d 31 -- -- -- -- -- -- -- -- -- -- -- tra-1...........0: SNMP MESSAGE (0x30): 67 bytes2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1)2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1)5: OCTET-STR COMMUNITY (0x4) 6 bytes: "public"

13: RESPONSE-PDU (0xa2): 54 bytes15: INTEGER REQUEST-ID (0x2) 2 bytes: 633219: INTEGER ERROR-STATUS (0x2) 1 bytes: noError(0)22: INTEGER ERROR-INDEX (0x2) 1 bytes: 025: SEQUENCE VARBIND-LIST (0x30): 42 bytes27: SEQUENCE VARBIND (0x30): 40 bytes29: OBJ-ID (0x6) 8 bytes: .1.3.6.1.2.1.1.1.039: OCTET-STR (0x4) 28 bytes: "Sun SNMP Agent, SUNW,Ultra-1"

system.sysDescr.0 : DISPLAY STRING- (ascii): Sun SNMP Agent, SUNW,Ultra-1

Example of snmpwalk

snmpwalk 10.144.18.118 .1.3.6.1.2.1.1system.sysDescr.0 : DISPLAY STRING- (ascii): Sun SNMP Agent, SUNW,Ultra-1

system.sysObjectID.0 : OBJECT

IDENTIFIER: .iso.org.dod.internet.private.enterprises.42.2.1.1

system.sysUpTime.0 : Timeticks: (198219958) 22 days, 22:36:39.58system.sysUpTime.0 : Timeticks: (198219958) 22 days, 22:36:39.58

system.sysContact.0 : DISPLAY STRING- (ascii): lino@ms.chttl.com.tw

system.sysName.0 : DISPLAY STRING- (ascii): camry

system.sysLocation.0 : DISPLAY STRING- (ascii): Information Technology

Laboratory 3F

system.sysServices.0 : INTEGER: 72 (01001000)B

Example of snmptrap snmptrap -d manager .1.3.6.1.4.1.612.1.1 10.144.18.116 6 99999

0 .1.3.6.1.1 octetstringascii "Trap test"Transmitted 64 bytes to manager (10.144.18.100) port 162:

0: 30 3e 02 01 00 04 06 70 75 62 6c 69 63 a4 31 06 0>.....public.1.16: 09 2b 06 01 04 01 84 64 01 01 40 04 0a 90 12 74 .+.....d..@....t32: 02 01 06 02 03 01 86 9f 43 01 00 30 13 30 11 06 ........C..0.0..48: 04 2b 06 01 01 04 09 54 72 61 70 20 74 65 73 74 .+.....Trap test0: SNMP MESSAGE (0x30): 62 bytes2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1)5: OCTET-STR COMMUNITY (0x4) 6 bytes: "public"2: INTEGER VERSION (0x2) 1 bytes: 0 (SNMPv1)5: OCTET-STR COMMUNITY (0x4) 6 bytes: "public"

13: V1-TRAP-PDU (0xa4): 49 bytes15: OBJ-ID ENTERPRISE (0x6) 9 bytes: .1.3.6.1.4.1.612.1.126: IPADDRESS AGENT-ADDR (0x40) 4 bytes: 10.144.18.116 (manager2)32: INTEGER GENERIC-TRAP (0x2) 1 bytes: 635: INTEGER SPECIFIC-TRAP (0x2) 3 bytes: 9999940: TIMETICKS TIME-STAMP (0x43) 1 bytes: 0 (0x0)43: SEQUENCE VARBIND-LIST (0x30): 19 bytes45: SEQUENCE VARBIND (0x30): 17 bytes47: OBJ-ID (0x6) 4 bytes: .1.3.6.1.153: OCTET-STR (0x4) 9 bytes: "Trap test"

Get System Information

Get “System Group” of MIB II

Use get_request or get_next_requestsysDescr .1.3.6.1.2.1.1.1.0

sysObjectID .1.3.6.1.2.1.1.2.0

52

sysObjectID .1.3.6.1.2.1.1.2.0

sysUptime .1.3.6.1.2.1.1.3.0

sysContact .1.3.6.1.2.1.1.4.0

sysName .1.3.6.1.2.1.1.5.0

sysLocation .1.3.6.1.2.1.1.6.0

Get Interface Information

Get “Interface Group” of MIB II

Repeatedly Use “get_next_request”

Note: We don’t know the ifIndex values in

53

ifTable.First get the next object of .ifTable.ifEntry.0

Then repeatedly “get_next”

Until the whole subtree is visited.

54

Traffic Monitoring

Get “ifInOctets” and “ifOutOctets” of MIB II Interface Group

t1: C1 t2: C2

55

(C2 - C1 ) 8

(t2 - t1) Bandwidth 100%Utilization (%) =

56

6. Reference

The Simple Book, marshall T.Rose, Prentice-Hall Inc.

SNMP, SNMPv2 and RMON: The Practical Guide to Network Management, Willeam Stallings

SMI; http://ds.internic.net/rfc/rfc1155.txt

Concise MIB Format; http://ds.internic.net/rfc/rfc1212.txt Concise MIB Format; http://ds.internic.net/rfc/rfc1212.txt

SNMP; http://ds.internic.net/rfc/rfc1157.txt

MIB II; http://ds.internic.net/rfc/rfc1213.txt

Trap Format; http://ds.internic.net/rfc/rfc1215.txt

ASN.1 and BER; ITU-T X.208, X.209

Development of SNMP Standards

SNMPv2 SNMPv3

RMON I

58

RMON II

SNMPv3

An Architecture for Describing Internet Management Frameworks

Local Processing Model for version 3 of the Simple Network Management Protocol (SNMPv3)

Message Processing and Control Model for version 3 of the Simple Network Management Protocol (SNMP)

59

of the Simple Network Management Protocol (SNMP)

User-based Security Model for version 3 of the Simple Network Management Protocol (SNMPv3)

View-based Access Control Model (VACM) for version 3 of the Simple Network Management Protocol (SNMP)

User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)

RMON I & II

APPLICATION Presentation

Session RMON2

RMON 2

Transport

60

Network Data Link

(MAC)RMON

1

Ethernet

TokenRing

FDDI

Frame Relay,HDLC, PPD,SDLL, X.25,

CIRPPhysical

V-series

T1 E1G703

Appendix: ASN.1 Concepts

ASN.1: Abstract Syntax Notation One

ISO/ITU-T Standards: ISO 8824/ITU-T X.208

Abstract Syntax: Use a syntax to define data/data structure independent of Use a syntax to define data/data structure independent of

machine-oriented structures and restrictions.

Use in SNMP Define SNMP PDU format

Define management information (MIB)

ASN.1 Reserved Words

All reserved words MUST be upper case BOOLEAN INTEGER BIT STRING

OCTET NULL OF SEQUENCE

SET IMPLICIT CHOICE ANY

EVTERNAL OBJECT END IDENTIFIER

OPTIONAL DEFAULT TRUE COMPONTS

FALSE BEGIN

What are defined using ASN.1

Types: data structures

e.g. Counter, Gauge, IpAddess, ...

Values: instances (variables) of a type

63

instances (variables) of a type

e.g. sysContact, ifTable, ifSpeed, ...

Macros: used to change the actual grammar of ASN.1

e.g. OBJECT-TYPE, ACCESS, ...

Modules

Module: A collection of ASN.1 descriptions

Module Structure<module name> DEFINITION ::= BEGIN

<module body>

END

ExampleEmptyModule

DEFINITION ::= BEGIN

END

Tags and Types

Tags Every type defined with ASN.1 is assigned a tag

Tag = Class + Number

• Class: (Bit 8,7 in BER tag) – Universal 0 0

– Application 0 1

– Context-specific 1 0

– Private 1 1

• Number: non-negative Integer

BER: Basic Encoding Rules

Tags and Types (cont.) Universal Tag ASN.1 Type

1 BOOLEAN

2 INTEGER

3 BIT STRING

4 OCTET STRING

5 NULL

6 OBJECT IDENTIFIER

Universal Tag ASN.1 Type

18 NumericString

19 PrintableString

20 TeletexString

21 VediotextString

22 IA5String6 OBJECT IDENTIFIER

7 ObjectDescriptor

8 EXTERNAL

9 REAL

10 ENUMERATED

12-15 Reserved

16 SEQUENCE, SEQUENCE OF

17 SET, SET OF

23 UTCTime

24 GeneralizeTime

25 GraphicString

26 VisssibleString

27 GeneralString

28 CharacterString

29-... Reserved

Values in ASN.1

General format of a value assignment <valuereference> <type> ::= <value>

Examples: BOOLEAN BOOLEAN

• Married ::= BOOLEAN

• currentStatus Married ::= FALSE

INTEGER• Color ::= INTEGER{red (0), blue (1), yellow (2)}

• defaultColor Color ::= 1

• defaultColor Color ::= blue

Basic Encode Rules BER

A transfer syntax notation

ISO/ITU-T Standards: ISO 8825/ITU-T X.209

Values from any abstract syntax defined using ASN.1 can be encoded with BERbe encoded with BER

BER uses Tag, Length, Value (TLV) encoding• Tag: “identifier”, Length: length of content, Value: “contents”

Each value may itself be made up of one or more TLV-encoded values

T TL TL V V

V

L