You are on page 1of 15

Modelo de informacin en la gestin de Internet

GSyC 2007

Modelo de informacin
Bases del modelo de informacin de Internet:

SMI: Estructura de la informacin

Organizacin de los objetos

MIB: informacin de gestin almacenadas en los agentes


Informacin virtual, agrupadas en vistas. En principio independiente de protocolo pero en realidad es especfica de SNMP (limitaciones) Definiciones de MIB especficas para Internet.

ASN.1: Notacin, definicin de la informacin de la MIB.


2

GSyC 2007

Conceptos de ASN.1

ASN.1:

Abstract Syntax Notation One Estndares ISO/ITU-T: ISO 8824/ITU-T X.208

Sintaxis abstracta:

Definicin datos y estructuras de datos de forma independiente de las estructuras y restricciones disponibles en un sistema.

En SNMP:

Define el formato de PDU SNMP PDU Define las estructuras de datos utilizadas en la informacin de gestin

Utilizado conjuntamente con reglas de codificacin

BER: ISO 8825/UIT-T X.209.

GSyC 2007

Qu se define con ASN.1?

Tipos de datos:

Estructuras de datos Por ejemplo:Counter, Gauge, IpAddess, etc. Instancias (variables) de un tipo Por ejemplo: sysContact, ifTable, ifSpeed, etc. Se utiliza para cambiar la gramtica de ASN.1 Por ejemplo: OBJECT-TYPE, ACCESS
4

Valores:

Macros:

GSyC 2007

Tipos ASN.1
Tag universal Tipo ASN.1
1 2 3 4 5 6 7 8 9 10 12-15 16 17 BOOLEAN INTEGER BIT STRING OCTET STRING NULL OBJECT IDENTIFIER ObjectDescriptor EXTERNAL REAL ENUMERATED Reservado SEQUENCE, SEQUENCE OF SET, SET OF Tipos primitivos Tag universal 18 19 20 21 22 23 24 25 26 27 28 29-... Reservado Tipo ASN.1 NumericString PrintableString TeletexString VediotextString IA5String UTCTime GeneralizeTime GraphicString VisssibleString GeneralString CharacterString

Tipos predefinidos

Tipos construidos
5

GSyC 2007

Reglas sintcticas

Se distingue entre maysculas y minsculas.


Los nombres de tipo empiezan con mayscula. Los nombres de los tipos primitivos se escriben con mayscula. Los nombres de valores y de los campos de un tipo estructurado se escriben con minscula.

Los comentarios en una lnea empiezan con la marca "--" y llegan al final de lnea. El valor nulo se expresa con NULL.
6

GSyC 2007

Valores en ASN.1

Formato general para representar una asignacin de valor


<nuevo_tipo> ::= <tipo> <referencia_valor> <tipo> ::= <valor>

Ejemplos:

BOOLEAN

Casado::= BOOLEAN estadoActual Casado ::= FALSE

INTEGER

EstadoCivil ::= INTEGER {soltero (0), casado (1), divorciado (2)} estadoActual EstadoCivil ::= 1 estadoActual EstadoCivil ::= casado

GSyC 2007

Tipos construidos
SEQUENCE: los datos se codifican en la secuencia definida en la sintaxis. Interfaz ::= SEQUENCE { nombre IA5String, posicion NumericString, tipo IA5String } SET: no garantiza la codificacin en secuencia. Interfaz ::= SET { nombre IA5String, posicion NumericString, tipo IA5String } SEQUENCE OF/SET OF: Todos los campos son del mismo tipo. A efectos de codificacin equivale a SEQUENCE/SET. Interfaz ::= SEQUENCE OF IA5String{ nombre, tipo} CHOICE: se codifica uno de los campos de la estructura. Interfaz ::= SEQUENCE { nombre IA5String, identificacion CHOICE { posicion IA5String, numero INTEGER } tipo IA5String } Cuando se define el valor se decide cual de los elementos del CHOICE se elige. miInterfaz Interfaz ::= { nombre eth0" identificacion { posicion Enlace A } tipo Ethernet }

GSyC 2007

Mdulos en ASN.1
Modulo: coleccin de descripciones ASN.1
Estructura: <Nombre Mdulo> DEFINITION ::= BEGIN <Enlaces> <Declaraciones de tipos / estructuras> END Los enlaces sirven importar / exportar declaraciones de / a otros mdulos. Ejemplo:
ModuloVacio DEFINITION ::= BEGIN END
9

GSyC 2007

Macros en ASN.1

Definir elementos que se comportan como tipos bsicos Se pueden utilizar macros para tener mayor flexibilidad:

NOMBREMACRO MACRO ::= BEGIN TYPE NOTATION ::= sintaxis de tipo -- formato del tipo

VALUE NOTATION ::= sintaxis de valor -- valores que puede tomar sintaxis auxiliares -- definicin de smbolos no terminales END

GSyC 2007

10

Structure of Management Information (SMI)

Lenguaje para la especificacin de MIBs utilizado en SNMP


Filosofa: flexibilidad y extensibilidad Utiliza un subconjunto de los datos disponibles en ASN.1 Todos los objetos gestionados se referencian por nombres: arquitectura jerrquica Sigue las reglas de codificacin BER

Distintas versiones:

SMIv1 (RFC1155)

SNMPv1

Predefine tipos comunes: IpAddress, Counter, Gauge Declara la macro OBJECT-YPE Tipos estructurados permitidos: SEQUENCE, SEQUENCE OF

SMIv2 (RFC2578)

SNMPv2

Extiende los tipos, macros y operaciones permitidos pero con ciertas restricciones. Introduce el concepto de cumplimiento de MIB (RFC2580) y de estado de los objetos (current, deprecated, obsolete) Introduce mecanismos para manipular tablas (RFC2579)

GSyC 2007

11

Identificadores de objetos

Object Identifier (OID):


Identificador global para un los objetos gestionados. Es una secuencia de enteros que indica la posicin del objeto en un rbol global de identificacin. Los nicos elementos con valores son las instancias de los objetos.

Compuestos por OID del OBJECT TYPE + nmero de instancia

Esquema jerrquico

Distintas responsables de asignacin de numeraciones en las ramas. Similar a DNS

GSyC 2007

12

rbol de identificadores de objetos


0 ccitt 0 std 1 reg authority root 1 iso member body 2 3 org dod 6 2 joint-iso-ccitt

1.3.6.1.2.1 1.3.6.1.4.1
4 private 1 enterprises EGP 8 Trans. 10 SNMP 11

1.3.6.1.2.1.2
1 directory mgmt 1 MIB II at 3 IP 4

1 internet 3 2 experimental

system interface 1 2

ICMP TCP 5 6

UDP 7

GSyC 2007

13

OIDs privados

Cualquier empresa puede registrar sus extensiones en el rbol de MIB global.

Private Enterprise Number (PEN)

Slo es necesario contactar con el Internet Assigned Numbers Authority (IANA).


Evita que definiciones privadas (usadas internamente) entren en conflicto Gratuito y rpido, total libertad para definir objetos bajo su rama. No slo utilizado para SNMP, tambin en LDAP (RFC3383) Lista completa en http://www.iana.org/assignments/enterprise-numbers
Ejemplos:

Cisco: 1.3.6.1.4.1.9 Germinus: 1.3.6.1.4.1.12401

GSyC 2007

14

Representacin de identificadores de objeto

Varias representaciones posibles:

Con un entero (como se transmite en la PDU) Con un nombre equivalente al entero. Con un nombre y el entero equivalente entre parntesis.

mib2 OBJECT IDENTIFIER ::= {1 3 6 1 2 1}

mib2 OBJECT IDENTIFIER ::= {iso org dod internet mgmt mib2}

mib2 OBJECT IDENTIFIER ::= {iso org dod internet(6) mgmt(2) 1}

Los identificadores de objetos se heredan de forma que unos se construyen sobre los previamente definidos:

interface OBJECT IDENTIFIER ::={mib-2 2}

GSyC 2007

15

SMI v1: OIDs


RFC1155-SMI DEFINITIONS ::= BEGIN EXPORTS -- EVERYTHING internet, directory, mgmt, experimental, private, enterprises, OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax, ApplicationSyntax, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks, Opaque; internet OBJECT IDENTIFIER ::= { directory OBJECT IDENTIFIER ::= mgmt OBJECT IDENTIFIER ::= experimental OBJECT IDENTIFIER ::= private OBJECT IDENTIFIER ::= enterprises OBJECT IDENTIFIER ::= iso org(3) dod(6) 1 } { internet 1 } { internet 2 } { internet 3 } { internet 4 } { private 1 }

GSyC 2007

16

SMI: tipos de datos

Est permitido usar los siguientes tipos universales:


Primitivos: INTEGER, OCTET STRING, NULL [no en 2], OBJECTIDENTIFIER. Construidos: SEQUENCE Y SECUENCE OF.

Tipo predefinidos:

NetworkAddress: es un CHOICE que permite seleccionar varios formatos de direcciones. Inicialmente slo IpAddress. [eliminado en v2] IpAddress: STRING de 4 octetos (direccin IP versin 4) Counter: entero no negativo que slo puede incrementarse hasta llegar al valor mximo, en el que vuelve a 0. Valor mximo: 32 bits. Gauge: entero no negativo que puede ser incrementarse o decrementarse. No puede superar el valor mximo: 32 bits TimeTicks: entero no negativo que expresa el tiempo en centsimas de segundo desde un determinado momento (epoch). Opaque: datos arbitrarios codificados como OCTET STRING [v2] Se renombran los tipos (Gauge32, Counter32) y se aade Integer32, Counter64, Unsigned 32

GSyC 2007

17

SMIv1: definiciones de tipos


ObjectName ::= OBJECT IDENTIFIER ObjectSyntax ::= CHOICE { simple SimpleSyntax, application-wide ApplicationSyntax} SimpleSyntax ::= CHOICE { number INTEGER, string OCTET STRING, object OBJECT IDENTIFIER, empty NULL} } ApplicationSyntax ::= CHOICE { address NetworkAddress, counter Counter, gauge Gauge, ticks TimeTicks, arbitrary Opaque } NetworkAddress ::= CHOICE { internet IpAddress} IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4)) Counter ::= [APPLICATION 1] IMPLICIT INTEGER (0..4294967295) Gauge ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295) TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295) Opaque ::= [APPLICATION 4] IMPLICIT OCTET STRING END

GSyC 2007

18

SMIv1: Objetos
OBJECT-TYPE MACRO ::= BEGIN TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax) "ACCESS" Access "STATUS" Status VALUE NOTATION ::= value (VALUE ObjectName) Access ::= "read-only" | "read-write" | "write-only" | "not-accessible" Status ::= "mandatory" | "optional" | "obsolete" END ObjectName ::= OBJECT IDENTIFIER

GSyC 2007

19

Ejemplo de definicin de objeto


tcpMaxConn OBJECT-TYPE SYNTAX INTEGER MAX-ACCESS read-only STATUS current

DESCRIPTION The limit on the total number of TCP connections the entity can support. In entities where the maximum number of connections is dynamic, this object should contain the value -1. ::= { tcp 4 } sysObjectID OBJECT-TYPE SYNTAX ACCESS STATUS OBJECT IDENTIFIER read-only mandatory

DESCRIPTION "The vendor's authoritative identification of the network management subsystem () " ::= { system 2 }

GSyC 2007

20

10

SMIv2: Objetos
OBJECT-TYPE MACRO ::= BEGIN TYPE NOTATION ::= "SYNTAX" Syntax UnitsPart "MAX-ACCESS" Access "STATUS" Status "DESCRIPTION" Text ReferPart IndexPart DefValPart VALUE NOTATION ::= value(VALUE ObjectName) Syntax ::= -- Must be one of the following: -- a base type (or its refinement), -- a textual convention (or its refinement), or -- a BITS pseudo-type type | "BITS" "{" NamedBits "}" NamedBits ::= NamedBit | NamedBits "," NamedBit NamedBit ::= identifier "(" number ")" -- number is nonnegative UnitsPart ::= "UNITS" Text | empty Access ::= "not-accessible" | "accessible-for-notify" | "read-only" | "read-write" | "read-create" Status ::= "current" | "deprecated" | "obsolete" ReferPart ::= "REFERENCE" Text | empty IndexPart ::= "INDEX" "{" IndexTypes "}" | "AUGMENTS" "{" Entry "}" | empty IndexTypes ::= IndexType | IndexTypes "," IndexType IndexType ::= "IMPLIED" Index | Index Index ::= -- use the SYNTAX value of the -- correspondent OBJECT-TYPE invocation value(ObjectName) Entry ::= -- use the INDEX value of the -- correspondent OBJECT-TYPE invocation value(ObjectName) DefValPart ::= "DEFVAL" "{" Defvalue "}" | empty Defvalue ::= -- must be valid for the type specified in -- SYNTAX clause of same OBJECT-TYPE macro value(ObjectSyntax) | "{" BitsValue "}" BitsValue ::= BitNames | empty BitNames ::= BitName | BitNames "," BitName BitName ::= identifier -- a character string as defined in section 3.1.1 Text ::= value(IA5String) END

GSyC 2007

21

SMI: Datos estructurados

Dos tipos de datos estructurados: Listas


<lista>::= SEQUENCE { <tipo1>, . . ., <tipoN>} Donde los <tipos> son tipos simples

Tablas:

<tabla>::= SEQUENCE OF <lista> Slo se permiten tablas de dos dimensiones

GSyC 2007

22

11

Ejemplo: conexiones TCP


tcpConnectionTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpConnectionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION A table containing TCP connection info ::= {tcp 13} tcpConnectionEntry OBJECT-TYPE SYNTAX TcpConnectionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION (.) INDEX {tcpConnectionLocalAddressType, tcpConnectionLocalAddress, tcpConnectionLocalPort, tcpConnectionRemAddressType, tcpConnectionRemAddress, tcpConnectionRemPort} ::= {tcpConnectionTable 1} TcpConnectionEntry ::= SEQUENCE { tcpConnectionLocalAddressType InetAddressType, tcpConnectionLocalAddress InetAddress, tcpConnectionLocalPort InetPortNumber, tcpConnectionRemAddressType InetAddressType, tcpConnectionRemAddress InetAddress, tcpConnectionRemPort InetPortNumber, tcpConnectionState INTEGER, tcpConnectionProcess Unsigned32 }

GSyC 2007

23

Ejemplo: Interfaces
ifTable OBJECT-TYPE SYNTAX SEQUENCE OF ifEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION A list of interfaces entries. ::= { interfaces 2} IfEntry ::= SEQUENCE { ifIndex InterfaceIndex, ifDescr DisplayString, ifType IANAifType, ifMtu Integer32, ifSpeed Gauge32, ifPhysAddress PhysAddress, ifAdminStatus INTEGER, ifOperStatus INTEGER, ifLastChange TimeTicks, (.) }

GSyC 2007

24

12

Acceso a datos en tablas


.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) ifIndex 1 6 7 9 ifDescr le0 llc0 lo0 le1 ifType 6 1 24 6 ... ... ... ... ... 1.3.6.1.2.1.2.2.1.3.7
25

1.3.6.1.2.1.2.2.1.2.6
GSyC 2007

MIB-II
Dentro de las MIBs estandarizadas la MIB-II debe estar implementada en agentes SNMP.

Dividida en:

1
org(3)

system: informacin general sobre el sistema [obligatorio] interfaces: informacin sobre los interfaces que tiene el equipo a una red ip, icmp, tcp, udp, egp, snmp: relativa a la implementacin y y ejecucin del protocolo en cada sistema. Transmission: informacin sobre esquemas de transmisin y protocolos de acceso At: asociacin entre internet y la subred [desestimada]
1

3
dod(6)

6
internet(1)

4
experimental(3)

mgmt(2)

3
tcp(6)

directory(1)

mib-2(1)

GSyC 2007

26

13

MIB-II: criterios
Para que un objeto est en la MIB-II:

Debe ser esencial para la gestin de configuracin o fallos No puede utilizarse para provocar daos en los equipos si se modificara Tiene que tener una utilidad y ser utilizado No debe ser informacin que pueda derivarse de otra No es especfico de una implementacin concreta (Windows, UNIX)

GSyC 2007

27

Grupo system

Contiene objetos que describen alguna informacin bsica sobre una entidad. Obligatorio para todas las entidades (agentes) Objetos del grupo system(1)
1
system(1)

mib-2(1)

1
interfaces(2)

sysDescr(1): Descripcin textual de la entidad. sysUpTime(3): Tiempo que lleva operativo el agente sysContact(4): Nombre de persona responsable de la entidad. sysName (5): Nombre del nodo gestionado sysLocation (6): Ubicacin fsica del nodo

sysObjectID(2): Identificador definida por el vendedor (por equipo)

sysServices (7): Servicios que ofrece la entidad (capa en la que trabaja)

GSyC 2007

28

14

Otros grupos: interfaces, IP


ifAdminStatus ifOperStatus ifLastChange operacional ifDescr ifType tipo ifMtu ifIndex idfSpeed ifInDiscard ifOutDiscard ifInErrors ifOuterrors ifInOctets ifOutOctets ... ifInUnknownProtos desconocido ifOutQlen estado administrativo (up/down/test) estado operacional (idem) fecha del ltimo cambio de estado nombre de la interfaz maximo tamao de datagramas valor nico por interfaz throughput # de paquetes rechazados en entrada # de paquetes rechazados en salida # de paquetes con errores en entrada # de paquetes con errores en salida # de octetos recibidos # de octetos enviados # de paquetes recibidos con protocolo # de paquetes en la cola de salida ipRouteTable Tabla de encaminamiento IP ipNetToMediaTable tabla de traduccin de direcciones (a direcciones fsicas) ipForwarding puede el equipo encaminar? ipAddrTable Tabla de direcciones IP ipInReceives ipInHdrErrors cabeceras ipInAddrErrors ipForwDatagrammes ipInUnknownProtos desconocido ipInDiscards ipInDelivers ipOutRequests ipOutDiscards ... ipFragFails ipFragCreates # de datagramas recibidos # de datagramas con errores de # de datagamas con errores de direccin # de datagramas encaminados # de datagramas entrantes de protocolo # de datagramas descartados en entrada # de datagramas cursados en entrada # de datagramas cursados en salida # de datagramas descartados en salida # de errores de fragmentacin # de fragmentos generados

GSyC 2007

29

Otras MIBs

RMON (RFC2819 y RFC4502 [v2]) {mib-2 16}

Monitor remoto: elemento externo que puede monitorizar una red y recabar informacin de esta (almacenndola o enviando alarmas) Especifica mecanismos para consultar las sondas y configurarlas para capturar datos y programar alarmas.

Puentes (RFC4188) {mib-2 17}

Soporte de calidad de servicio, Virtual LAN (RFC4363)

MIB Host Resources (RFC2790) {mib-2 25}

Especifica los datos especficos de equipos utilizados por humanos (no especficamente de comunicaciones). Ej: sistemas UNIX, PCs Informacin de perifricos (hardware), capacidad de almacenamiento, programas instalados y ejecutndose (procesos), memoria

Ethernet (RFC2666, RFC3635, RFC4878) {mib-2 35} .

GSyC 2007

30

15

You might also like