8.Modelo de Informacion de Internet SMI y MIB
-
Upload
jose-luis-pinilla -
Category
Documents
-
view
122 -
download
1
Transcript of 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.
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
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.
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”
}
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
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
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
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 }
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
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 }
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
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,
(….)}
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
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)
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}
● ….