15
1 1 GSyC 2007 Modelo de información en la gestión de Internet 2 GSyC 2007 Modelo de información Bases del modelo de información de Internet: SMI: Estructura de la información Organización de los objetos MIB: información de gestión almacenadas en los agentes Información “virtual”, agrupadas en vistas. En principio independiente de protocolo pero en realidad es específica de SNMP (limitaciones) Definiciones de MIB específicas para Internet. ASN.1: Notación, definición de la información de la MIB.

8.Modelo de Informacion de Internet SMI y MIB

Embed Size (px)

Citation preview

Page 1: 8.Modelo de Informacion de Internet SMI y MIB

1

1GSyC 2007

Modelo de información en la gestión de Internet

2GSyC 2007

Modelo de información

Bases del modelo de información de Internet:

● SMI: Estructura de la información

– Organización de los objetos

● MIB: información de gestión almacenadas en los agentes

– Información “virtual”, agrupadas en vistas.

– En principio independiente de protocolo pero en realidad es específica de SNMP (limitaciones)

– Definiciones de MIB específicas para Internet.

● ASN.1: Notación, definición de la información de la MIB.

Page 2: 8.Modelo de Informacion de Internet SMI y MIB

2

3GSyC 2007

Conceptos de ASN.1● ASN.1:

– Abstract Syntax Notation One

– Estándares ISO/ITU-T: ISO 8824/ITU-T X.208

● Sintaxis abstracta:

– Definición 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 información de gestión

● Utilizado conjuntamente con reglas de codificación

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

4GSyC 2007

¿Qué se define con ASN.1?

● Tipos de datos:– Estructuras de datos

– Por ejemplo:Counter, Gauge, IpAddess, etc.

● Valores:– Instancias (variables) de un tipo

– Por ejemplo: sysContact, ifTable, ifSpeed, etc.

● Macros:– Se utiliza para cambiar la gramática de ASN.1

– Por ejemplo: OBJECT-TYPE, ACCESS

Page 3: 8.Modelo de Informacion de Internet SMI y MIB

3

5GSyC 2007

Tipos ASN.1Tag universal Tipo ASN.1

1 BOOLEAN

2 INTEGER

3 BIT STRING

4 OCTET STRING

5 NULL

6 OBJECT IDENTIFIER

7 ObjectDescriptor

8 EXTERNAL

9 REAL

10 ENUMERATED

12-15 Reservado

16 SEQUENCE, SEQUENCE OF

17 SET, SET OF

Tag universal Tipo ASN.1

18 NumericString

19 PrintableString

20 TeletexString

21 VediotextString

22 IA5String

23 UTCTime

24 GeneralizeTime

25 GraphicString

26 VisssibleString

27 GeneralString

28 CharacterString

29-... Reservado

Tipos construidos

Tipos primitivos

Tipos predefinidos

6GSyC 2007

Reglas sintácticas

● Se distingue entre mayúsculas y minúsculas.

– Los nombres de tipo empiezan con mayúscula.

– Los nombres de los tipos primitivos se escriben con mayúscula.

– Los nombres de valores y de los campos de un tipo estructurado se escriben con minúscula.

● Los comentarios en una línea empiezan con la marca "--" y llegan al final de línea.

● El valor nulo se expresa con NULL.

Page 4: 8.Modelo de Informacion de Internet SMI y MIB

4

7GSyC 2007

Valores en ASN.1● Formato general para representar una asignación 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

8GSyC 2007

Tipos construidosSEQUENCE: los datos se codifican en la secuencia

definida en la sintaxis.Interfaz ::= SEQUENCE {

nombre IA5String,posicion NumericString,tipo IA5String

}SET: no garantiza la codificación en secuencia.Interfaz ::= SET {

nombre IA5String,posicion NumericString,tipo IA5String

}SEQUENCE OF/SET OF: Todos los campos son

del mismo tipo. A efectos de codificación 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”

}

Page 5: 8.Modelo de Informacion de Internet SMI y MIB

5

9GSyC 2007

Módulos en ASN.1

Modulo: colección de descripciones ASN.1

Estructura:

<Nombre Módulo> DEFINITION ::= BEGIN

<Enlaces>

<Declaraciones de tipos / estructuras>

END

Los enlaces sirven importar / exportar declaraciones de / a otros módulos.

Ejemplo:

ModuloVacio DEFINITION ::= BEGIN

END

10GSyC 2007

Macros en ASN.1

● Definir elementos que se comportan como tipos básicos

● 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 -- definición de símbolos no terminales

END

Page 6: 8.Modelo de Informacion de Internet SMI y MIB

6

11GSyC 2007

Structure of ManagementInformation (SMI)

● Lenguaje para la especificación de MIBs utilizado en SNMP

– Filosofía: flexibilidad y extensibilidad

– Utiliza un subconjunto de los datos disponibles en ASN.1

– Todos los objetos gestionados se referencian por nombres: arquitectura jerárquica

– Sigue las reglas de codificación 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)

12GSyC 2007

Identificadores de objetos

● Object Identifier (OID):

– Identificador global para un los objetos gestionados.

– Es una secuencia de enteros que indica la posición del objeto en un árbol global de identificación.

– Los únicos elementos con valores son las instanciasde los objetos.

● Compuestos por OID del OBJECT TYPE + número de instancia

● Esquema jerárquico

– Distintas responsables de asignación de numeraciones en las ramas.

– Similar a DNS

Page 7: 8.Modelo de Informacion de Internet SMI y MIB

7

13GSyC 2007

Árbol de identificadores de objetos

root

ccitt iso joint-iso-ccitt

directory

0 1 2

std regauthority

memberbody

org0

1 2 3

dod

internet

6

1

1 2 3 4mgmt 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

14GSyC 2007

OIDs privados● Cualquier empresa puede registrar sus extensiones en el árbol de MIB

global.

– Private Enterprise Number (PEN)

● Sólo es necesario contactar con el Internet Assigned Numbers Authority (IANA).

– Evita que definiciones privadas (usadas internamente) entren en conflicto

– Gratuito y rápido, total libertad para definir objetos bajo su rama.

– No sólo utilizado para SNMP, también 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

Page 8: 8.Modelo de Informacion de Internet SMI y MIB

8

15GSyC 2007

Representación de identificadores de objeto

● Varias representaciones posibles:

– Con un entero (como se transmite en la PDU)

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

– Con un nombre equivalente al entero.

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

– Con un nombre y el entero equivalente entre paréntesis.

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

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

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

16GSyC 2007

SMI v1: OIDsRFC1155-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 ::= { 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 }

Page 9: 8.Modelo de Informacion de Internet SMI y MIB

9

17GSyC 2007

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 sólo IpAddress. [eliminado en v2]

– IpAddress: STRING de 4 octetos (dirección IP versión 4)

– Counter: entero no negativo que sólo puede incrementarse hasta llegar al valor máximo, en el que vuelve a 0. Valor máximo: 32 bits.

– Gauge: entero no negativo que puede ser incrementarse o decrementarse. No puede superar el valor máximo: 32 bits

– TimeTicks: entero no negativo que expresa el tiempo en centésimas de segundo desde un determinado momento (epoch).

– Opaque: datos arbitrarios codificados como OCTET STRING

– [v2] Se renombran los tipos (Gauge32, Counter32) y se añade Integer32, Counter64, Unsigned 32

18GSyC 2007

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 {

addressNetworkAddress,counter Counter,gauge Gauge,ticks TimeTicks,arbitraryOpaque

}

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

Page 10: 8.Modelo de Informacion de Internet SMI y MIB

10

19GSyC 2007

SMIv1: ObjetosOBJECT-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

20GSyC 2007

Ejemplo de definición de objeto

tcpMaxConn OBJECT-TYPE

SYNTAX INTEGER

MAX-ACCESS read-only

STATUS current

DESCRIPTION “The limit on the total number of TCP c onnections the entity can support. In entities where the maximum n umber of connections is dynamic, this object should contain the value -1.”

::= { tcp 4 }

sysObjectID OBJECT-TYPE

SYNTAX OBJECT IDENTIFIER

ACCESS read-only

STATUS mandatory

DESCRIPTION

"The vendor's authoritative identification of the

network management subsystem (…) "

::= { system 2 }

Page 11: 8.Modelo de Informacion de Internet SMI y MIB

11

21GSyC 2007

SMIv2: ObjetosOBJECT-TYPE MACRO ::=BEGIN

TYPE NOTATION ::="SYNTAX" SyntaxUnitsPart"MAX-ACCESS" Access"STATUS" Status"DESCRIPTION" TextReferPartIndexPartDefValPart

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 nonnegativeUnitsPart ::=

"UNITS" Text| empty

Access ::="not-accessible"

| "accessible-for-notify"| "read-only"| "read-write"| "read-create"

Status ::="current"

| "deprecated"| "obsolete"

ReferPart ::="REFERENCE" Text

| emptyIndexPart ::=

"INDEX" "{" IndexTypes "}"| "AUGMENTS" "{" Entry "}"| empty

IndexTypes ::=IndexType

| IndexTypes "," IndexTypeIndexType ::=

"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 "}"

| emptyDefvalue ::= -- must be valid for the type specified in

-- SYNTAX clause of same OBJECT-TYPE macrovalue(ObjectSyntax)

| "{" BitsValue "}"BitsValue ::= BitNames

| emptyBitNames ::= BitName

| BitNames "," BitNameBitName ::= identifier-- a character string as defined in section 3.1.1Text ::= value(IA5String)

END

22GSyC 2007

SMI: Datos estructurados

● Dos tipos de datos estructurados:

● Listas

– <lista>::= SEQUENCE { <tipo1>, . . ., <tipoN>}

– Donde los <tipos> son tipos simples

● Tablas:

– <tabla>::= SEQUENCE OF <lista>

– Sólo se permiten tablas de dos dimensiones

Page 12: 8.Modelo de Informacion de Internet SMI y MIB

12

23GSyC 2007

Ejemplo: conexiones TCPtcpConnectionTable OBJECT-TYPE

SYNTAX SEQUENCE OF TcpConnectionEntryMAX-ACCESS not-accessibleSTATUS currentDESCRIPTION “A table containingTCP connection info”::= {tcp 13}

tcpConnectionEntry OBJECT-TYPESYNTAX TcpConnectionEntryMAX-ACCESS not-accessibleSTATUS currentDESCRIPTION “(….)”INDEX {tcpConnectionLocalAddressType, tcpConnectionLocalAddress, tcpConnectionLocalPort, tcpConnectionRemAddressType, tcpConnectionRemAddress, tcpConnectionRemPort}::= {tcpConnectionTable 1}

TcpConnectionEntry ::= SEQUENCE { tcpConnectionLocalAddressTypeInetAddressType, tcpConnectionLocalAddressInetAddress, tcpConnectionLocalPortInetPortNumber, tcpConnectionRemAddressTypeInetAddressType, tcpConnectionRemAddressInetAddress, tcpConnectionRemPortInetPortNumber, tcpConnectionState INTEGER, tcpConnectionProcess Unsigned32 }

24GSyC 2007

Ejemplo: InterfacesifTable OBJECT-TYPE

SYNTAX SEQUENCE OF ifEntryMAX-ACCESS not-accessibleSTATUS currentDESCRIPTION “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,

(….)}

Page 13: 8.Modelo de Informacion de Internet SMI y MIB

13

25GSyC 2007

Acceso a datos en tablas

ifIndex ifDescr ifType . . .

1 le0 6 . . .

6 llc0 1 . . .

7 lo0 24 . . .

9 le1 6 . . .

.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)

1.3.6.1.2.1.2.2.1.3.71.3.6.1.2.1.2.2.1.2.6

26GSyC 2007

MIB-IIDentro de las MIBs estandarizadas la MIB-II debe estar implementada en

agentes SNMP.

● Dividida en:

– system: información general sobre el sistema [obligatorio]

– interfaces: información sobre los interfaces que tiene el equipo a una red

– ip, icmp, tcp, udp, egp, snmp: relativa a la implementación y y ejecución del protocolo en cada sistema.

– Transmission: información sobre esquemas de transmisión y protocolos de acceso

– At : asociación entre internet y la subred [desestimada]

tcp(6)

1

3

6

1

1 2 3

4

org(3)

dod(6)

internet(1)

directory(1)

mgmt(2)

experimental(3)

mib-2(1)1

Page 14: 8.Modelo de Informacion de Internet SMI y MIB

14

27GSyC 2007

MIB-II: criterios

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

● Debe ser esencial para la gestión de configuración o fallos

● No puede utilizarse para provocar daños en los equipos si se modificara

● Tiene que tener una utilidad y ser utilizado

● No debe ser información que pueda derivarse de otra

● No es específico de una implementación concreta (Windows, UNIX…)

28GSyC 2007

Grupo ‘system’● Contiene objetos que describen alguna información básica sobre una

entidad.

● Obligatorio para todas las entidades (agentes)

● Objetos del grupo system(1)

– sysDescr(1): Descripción textual de la entidad.

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

– 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): Ubicación física del nodo

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

1

1

2

mib-2(1)

system(1)

interfaces(2)

Page 15: 8.Modelo de Informacion de Internet SMI y MIB

15

29GSyC 2007

Otros grupos: interfaces, IPifAdminStatus estado administrativo (up/down/test)ifOperStatus estado operacional (idem)ifLastChange fecha del último cambio de estado

operacionalifDescr nombre de la interfazifType tipoifMtu maximo tamaño de datagramasifIndex valor único por interfazidfSpeed throughputifInDiscard # de paquetes rechazados en entradaifOutDiscard # de paquetes rechazados en salidaifInErrors # de paquetes con errores en entradaifOuterrors # de paquetes con errores en salidaifInOctets # de octetos recibidosifOutOctets # de octetos enviados...ifInUnknownProtos # de paquetes recibidos con protocolo

desconocidoifOutQlen # de paquetes en la cola de salida

ipRouteTable Tabla de encaminamiento IPipNetToMediaTable tabla de traducción de direcciones (a

direcciones físicas)ipForwarding ¿puede el equipo encaminar?ipAddrTable Tabla de direcciones IP

ipInReceives # de datagramas recibidosipInHdrErrors # de datagramas con errores de

cabecerasipInAddrErrors # de datagamas con errores de direcciónipForwDatagrammes # de datagramas encaminadosipInUnknownProtos # de datagramas entrantes de protocolo

desconocidoipInDiscards # de datagramas descartados en entradaipInDelivers # de datagramas cursados en entradaipOutRequests # de datagramas cursados en salidaipOutDiscards # de datagramas descartados en salida...ipFragFails # de errores de fragmentaciónipFragCreates # de fragmentos generados

30GSyC 2007

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

– Monitor remoto: elemento externo que puede monitorizar una red y recabar información de esta (almacenándola 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 específicos de equipos utilizados por “humanos” (no específicamente de comunicaciones). Ej: sistemas UNIX, PCs

– Información de periféricos (hardware), capacidad de almacenamiento, programas instalados y ejecutándose (procesos), memoria…

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

● ….