Sei sulla pagina 1di 33

SMI-ASN.

1-BER

ADMINISTRACIÓN DE REDES
SMI
 Structure Management Information.
 Marco que especifica como puede ser
especificada y construida una MIB. (RFC
1155).
 Identifica los tipos de datos dentro de la MIB.

 Especifica cómo se denominan y representan


los recursos de la MIB.
 Existen dos versiones (SMI v1 y SMI v2)

POR: XAVIER CALDERÓN H.


SMI: SINTAXIS DE OBJETOS

 Los objetos, se definen de una manera


específica dentro de una MIB; a través de:
1. Tipo de dato,

2. el rango de valores,

3. los estados permitidos SNMP,

4. y la relación con otros objetos.

POR: XAVIER CALDERÓN H.


SMI: DEFINICIÓN DE OBJETOS

 Se define con el tipo de objeto y el valor.


 El tipo de objeto define una clase particular de
objeto gestionado.
 La instancia de un objeto es una instancia
particular que ha sido ligada a un valor.

POR: XAVIER CALDERÓN H.


SMI: TIPOS DE DATOS
 A los tipos de datos se los puede agrupar en:
1. Tipos de datos primitivos o simples.

2. Tipos de datos estructurados.

3. Tipos de datos definidos.

POR: XAVIER CALDERÓN H.


ASN.1
 Abstract Sintax Notation.
 Es una norma que permite describir la
estructura de los datos de forma que sea
independiente de la máquina.
 Proporciona una forma de abstracción de los
objetos gestionados.
 Trabaja sobre la capa aplicación.

 Normas: ITU-T X.690.

POR: XAVIER CALDERÓN H.


SMI: TIPOS DE DATOS
 Tipos de datos simples o primitivos: Almacenan un solo
valor. Se les conoce como escalares.
1. Integer: Número entero positivo o negativo de hasta 32
bits.
2. Octet String: Cadena de caracteres ASCII imprimibles.
3. OctetBitString: Usado para cadenas de bits mayores a 32
bits.
4. PhysAddress: Representan direcciones de la capa de
enlace.
5. Object Identifier: Identificador de objeto, que marca la
posición en la MIB.
6. Null: Representa la ausencia de valor.
7. Boolean: Representa un valor que puede ser verdadero o
falso.
POR: XAVIER CALDERÓN H.
SMI: TIPOS DE DATOS
 Tipos de datos definidos: Se derivan de los tipos de datos anteriores; siendo
más específicos sus nombres.
 Network Address: Representa una dirección de red de cualquier familia de
protocolos.
 IpAddress: Representa la dirección de red de Internet (32 bits), definida en
la pila de protocolos TCP/IP.
 Counter: Representa un entero (Integer) positivo, el cual se incrementa
monótonamente hasta alcanzar 232-1. Se reinicia cuando alcanza el
valor máximo.
 Gauge: Representa un entero (Integer) positivo, el cual se incrementa o
decrementa monótonamente. Se reinicia cuando alcanza el valor máximo.
 Time Ticks: Representa un entero (Integer) positivo, el cual cuenta el tiempo
transcurrido en centésimas de segundo.
 Opaque: Representa un Octet String al que se le puede pasar cualquier
valor ASN1.
POR: XAVIER CALDERÓN H.
SMI: TIPOS DE DATOS
 Tipos de datos estructurados o compuestos: Permiten crear filas y
columnas. Se construyen en base a los otros tipos de datos.
 Sequence: Representa una fila, es decir una lista ordenada de
tipos de datos diferentes. Son construidos a partir de tipos
primitivos.
 Sequence Of: Representa una tabla, es decir es una lista
ordenada de varias filas iguales. Son construidos a partir de tipos
compuestos.
 Set: Es un tipo de dato similar a sequence, con la diferencia que
la lista no está ordenada.
 Set Of: Es un tipo de dato similar a sequence of, con la diferencia
que la lista no está ordenada.
 Choice: Es un tipo de dato en el que se debe escoger entre una
lista previamente definida.
POR: XAVIER CALDERÓN H.
ASN.1: CLASES DE DATOS ABSTRACTOS
 Cada tipo de datos de ASN.1 está etiquetado
por una marca. La marca está formada de un
nombre de clase y un número de clase (entero
positivo). Existen cuatro clases de tipos de
datos, o cuatro clases de marcas:
1. Clase Universal.

2. Clase Aplicación.

3. Clase de Contexto Específico.

4. Clase Privada.

POR: XAVIER CALDERÓN H.


ASN.1: CLASES DE DATOS ABSTRACTOS
 Tabla que relaciona el tipo de dato con el número de marca:
Tipo de datos Marca Tipo de datos Marca

BOOLEAN UNIVERSAL 1 Counter APPLICATION 1


INTEGER UNIVERSAL 2 Gauge APPLICATION 2
OCTET STRING UNIVERSAL 4 TimeTicks APPLICATION 3
NULL UNIVERSAL 5 Opaque APPLICATION 4
OBJECT UNIVERSAL 6 CONTEXTO GETREQUEST 0
IDENTIFIER
SEQUENCE UNIVERSAL 16 CONTEXTO GETNEXTREQUE
ST 1
SEQUENCE OF UNIVERSAL 16 CONTEXTO GETRESPONSE 2
SET, SET OF UNIVERSAL 2 CONTEXTO SETREQUEST 3
IpAddress APPLICATION 0 CONTEXTO TRAP v1 4

POR: XAVIER CALDERÓN H.


ASN.1: CONVENCIONES TEXTUALES
 Los objetos se tienen que definir siguiendo
algunas convenciones; para distinción de
mayúscula y minúsculas:
Elemento Convención

Types (Tipos) Inicia en mayúscula.

Values (Valores) Inicia en minúscula.

Macros Todas las letras en mayúscula.

Modules (Módulos) Inicia en mayúscula.

POR: XAVIER CALDERÓN H.


ASN.1: CONVENCIONES TEXTUALES
 Para caracteres especiales en ASN.1 tenemos:
Elemento Nombre

- Número con signo.

-- Comentario.

::= Asignación ("definido como...").

| Alternativa (opciones de una lista).

{} Inicio y final de lista.

[] Inicio y final de una etiqueta (tag).

() Inicio y final de una expresión de subtipo.

.. Indica un rango.

POR: XAVIER CALDERÓN H.


ASN.1: MACRO
 Una macro por su parte es un supertipo de dato
que sirve para extender la estructura de ASN.1
añadiendo información semántica a los objetos
gestionados.
 Las macros se usan como plantillas para generar
varios objetos gestionados con la misma
estructura. Ejm.: OBJECT TYPE.
 La macro usada para las MIBs SNMP fue definida
inicialmente en la RFC 1155 (estructura de
administración de información) y luego extendida
en la RFC 1212 (Definiciones de MIB concisa).
POR: XAVIER CALDERÓN H.
ASN.1: MACRO
 Tenemos los siguientes niveles de definición:
 Definición de Macro: especifica la sintaxis de
un conjunto de tipos de objetos relacionados.
 Instancia de Macro: una instancia generada a
partir de una definición de macro específica
suministrando los argumentos para los
parámetros en la definición de macro;
especifica un tipo particular.
 Valor de una Instancia de Macro: representa
una entidad específica con un valor específico.

POR: XAVIER CALDERÓN H.


ASN.1: MACRO
 Ejemplo de un espacio de código que define una MACRO:

POR: XAVIER CALDERÓN


ASN.1: MACRO
 Los principales componentes del espacio de
código indicado son los siguientes:
1. SYNTAX.
2. ACCESS.
3. STATUS.
4. DescrPart.
5. ReferPart.
6. IndexPart.
7. DefValPart.
8. AUGMENTS
POR: XAVIER CALDERÓN H.
ASN.1: TABLAS
 La SMI soporta sólo una forma de
estructuración de datos: una tabla
bidimensional de escalares.
 La definición de las tablas involucra el uso de
los tipos sequence y sequence-of de ASN.1 y la
IndexPart de la macro OBJECT-TYPE.
 En la RFC 1212, estos objetos escalares son
referidos como columnar objects.
 Cada objeto (columnar objects) corresponde a
un número de instancias en una columna de la
tabla.
POR: XAVIER CALDERÓN H.
ASN.1: TABLAS
 La SMI no permite anidamiento.
 Significa que no está permitido definir como
elemento de una tabla otra tabla.
 Esta restricción reduce la utilidad y flexibilidad
de la SMI.
 La tabla consiste de una SEQUENCE OF Ejm:
tcpConnEntry o ifEntry.
 Cada elemento es una fila de la tabla.

POR: XAVIER CALDERÓN H.


ASN.1: TABLAS
 Por lo tanto, una tabla consiste en cero o más
filas.
 Cada fila consiste de una SEQUENCE que
incluye, N elementos escalares.
 La SMI restringe el uso del constructor anterior
a elementos con status mandatory.
 El componente INDEX de la definición
determina que valores de objeto se usarán
para distinguir una fila en la tabla.

POR: XAVIER CALDERÓN H.


ASN.1: TABLAS
 Un ejemplo de espacio de código en la que
están definidas tablas:

POR: XAVIER CALDERÓN H.


ASN.1: TABLAS
 Representación del espacio de código de una
MIB con tablas:

POR: XAVIER CALDERÓN H.


BER: BASIC ENCODING RULE
 Los objetos de una MIB pueden ser codificados
utilizando las reglas estandarizadas BER (Basic
Encoding Rules).
 Esto convierte a los objetos en cadenas de octetos
estructuradas de la forma TLV (Tipo – Longitud –
Valor).
 En TLV hay tres maneras de codificar un valor:

1. Codificación primitiva de longitud definida.

2. Codificación estructurada de longitud definida.

3. Codificación estructurada de longitud indefinida.

POR: XAVIER CALDERÓN H.


BER: BASIC ENCODING RULE
 Los objetos de una MIB pueden ser codificados
utilizando las reglas estandarizadas BER (Basic
Encoding Rules).
 Esto convierte a los objetos en cadenas de octetos
estructuradas de la forma TLV (Tipo – Longitud –
Valor).
 En TLV hay tres maneras de codificar un valor:

1. Codificación primitiva de longitud definida.

2. Codificación estructurada de longitud definida.

3. Codificación estructurada de longitud indefinida.

POR: XAVIER CALDERÓN H.


BER: T-L-V
 El mensaje SNMP se codifica en los campos T-
L-V, para enviar la información:

 Este formato de codificación es recursivo para


cualquier valor de ASN.1 que consista de uno o
más componentes, el campo valor se codifica de
forma anidada con uno o más componentes TLV.

POR: XAVIER CALDERÓN H.


BER: CAMPO TIPO (T)
 El campo tipo es un conjunto de 8 bits que
especifica el tipo de datos que vienen a
continuación.

 Los bits 7 y 8 indican el nombre de la marca de datos.


Las marcas Universal se utilizan para tipos de datos
primitivos y estructurados. Las marcas Aplicación se
usan con los tipos de datos definidos. Las marcas
Contexto Específico se emplean para las PDUs de
SNMP.
POR: XAVIER CALDERÓN H.
BER: CAMPO TIPO (T)
 El bit 6 indica el tipo de datos es primitivo (0), o
construido (1).
 Los restantes bits indican el número de marca.
 Para el caso de SNMP, todos los tipos utilizados
tienen etiquetas menores que 30 por lo que se
utilizan solo los cinco bits.
Bit 8 Bit 7 Clase de datos

0 0 Universal

0 1 Aplicación

1 0 Contexto Específico

1 1 Privada
POR: XAVIER CALDERÓN H.
BER: CAMPO TIPO (T)
 Si el número de marca está entre 0 y 30 se utilizan los cinco
bits para representarlo en forma binaria.
 Si el número de marca es >= 31, se pone estos cinco bits a 1 y
el valor del número de marca se representa con los octetos
necesarios.
 El número que representan los 7 bits de cada octeto añadido;
se suman hasta especificar el número de marca asignado.
 Estos octetos tienen el bit más significativo en 1 con excepción
del último que está en 0.

POR: XAVIER CALDERÓN H.


BER: CAMPO LONGITUD (L)
 El campo longitud indica cuantos octetos
contiene el campo valor.
 Tiene dos formatos: formato corto y formato
largo.
 El formato corto se utiliza cuando la longitud es
menor o igual a 127 bytes, para ello se coloca el
bit más significativo en 0, y el resto según la
longitud.

POR: XAVIER CALDERÓN H.


BER: CAMPO LONGITUD (L)
 El formato largo se utiliza para longitudes mayores a
127 octetos, para ello el bit más significativo se
coloca a 1 y los restantes bits indican cuantos octetos
más se utilizarán para representar el valor de la
longitud.
 El número de octetos adicionales puede ser de 1
hasta 126.

POR: XAVIER CALDERÓN H.


BER: CAMPO VALOR (V)
 El campo valor codifica el valor propio del objeto.
 A través de este campo se representa el valor que
tienen los campos que conforman un mensaje SNMP.
 En este campo se introducen los tipos definidos
abstractamente y las PDUs SNMP.
 La forma de codificar este campo depende de cada
tipo de dato que vaya a ser contenido en él; por ejm.:
 Para una información tipo Octet String la codificación
del campo valor se hace mediante una representación
ASCII de la información a intercambiar.
 Para valores Integer (enteros) se coloca su valor
directamente en binario. POR: XAVIER CALDERÓN H.
BER: CAMPO VALOR (V)
 Para una información tipo Object Identifier
(OID) la codificación del campo valor toma una
forma particular.
• Se toman los dos primeros nodos MIB del OID y
se aplica la siguiente relación:
• (Primer nodo MIB * 40) + (Segundo Nodo MIB).
• El resto nodos MIB se representan de forma
individual usando los octetos necesarios para
su representación.

POR: XAVIER CALDERÓN H.


BER: CAMPO VALOR (V)

• En estos octetos el MSB está en 1 salvo


cuando representen al último octeto; en cuyo
caso se colocará en 0.
• Para valores en los que se necesite más de un
octeto; el valor se lo construirá colocando los
bits uno a continuación de otro hasta
representar el número con el MSB antes
mencionado.

POR: XAVIER CALDERÓN H.

Potrebbero piacerti anche