You are on page 1of 76

Leccin 1

Gestin de Red: modelo de gestin SNMP

ndice
Qu es Gestin de Red? .................................................................................. 2
reas funcionales de Gestin de Red ................................................................ 3
Gestin del rendimiento (prestaciones): ......................................................... 3
Gestin de los fallos: ...................................................................................... 3
Gestin de la configuracin: ........................................................................... 4
Gestin de la contabilidad (accounting): ......................................................... 4
Gestin de la seguridad: ................................................................................. 5
Arquitectura genrica de un sistema de Gestin de Red ................................... 6
Historia de la gestin de red ............................................................................... 8
GESTIN SNMP, MODELO DE GESTIN EN INTERNET.............................. 9
Introduccin .................................................................................................... 9
Arquitectura del modelo de gestin de Internet ............................................ 10
GESTIN SNMP: Modelo de Informacin .................................................... 14
1 SMI: Estructura de la MIB ................................................................... 16
2 SMI: TIPOS DE DATOS Y SINTXIS ................................................. 20
3 SMI: Reglas de codificacin ................................................................ 29
Para qu sirve todo esto? ........................................................................... 31
Gestin SNMP: Modelo de comunicacin..................................................... 34
1 Operaciones ....................................................................................... 35
2 Comunidades ...................................................................................... 36
3 Identificacin de Instancias ................................................................. 37
4 Formato del mensaje SNMP ............................................................... 39
Evolucin de SNMP ...................................................................................... 42
Monitorizacin Remota RMON .............................................................. 45
Caso Prctico - Gestin de Internet: SNMP ..................................................... 47

Introduccin
En este bloque se pretende en primer lugar proporcionar una introduccin a lo
que es la gestin de red y sus reas funcionales. En segundo lugar se
estudiar en detalle el modelo de gestin de red en Internet (que utiliza el
protocolo SNMP), ya que es el ms ampliamente utilizado. Es importante que el
1

alumno se familiarice con la arquitectura del sistema de gestin de red y sus


modelos de informacin y comunicacin. Por ltimo, se muestra un breve
resumen de la evolucin del protocolo SNMP.

Objetivos
Conocer en profundidad un modelo de gestin de red, en este caso el de
Internet, SNMP.
Apartados

Qu es Gestin de Red?
Una red consiste en muchas piezas de hardware y software, desde enlaces,
puentes, routers, hosts, etc, que son los componentes fsicos de la red hasta
muchos protocolos (implementados tanto en software como en hardware) que
controlan y coordinan dichos dispositivos.

Cuando cientos o miles de estos componentes son utilizados juntos por una
organizacin para formar una red, es natural que los componentes de vez en
cuando no funcionen bien, que los elementos de la red se desconfiguren, que
los recursos de la red estn sobreutilizados, o que simplemente algn
componente de la red se estropee (un cable cortado, una coca-cola que cae
sobre un router, etc).

Con tantos componentes de red dispersos en una zona extensa, el


administrador de red en su centro de operaciones de red (NOC Network
Operation Center), necesita herramientas que le ayuden a monitorizar,
gestionar y controlar la red. En este bloque se describir la arquitectura,
protocolos e informacin bsica usada por el administrador de red para esta
tarea.

Existen muchas definiciones de gestin de red, una de ellas es la dada por


Saydam Magedanz (1996) que dice:

La gestin de red incluye el desarrollo, integracin y coordinacin de


hardware, software y elementos humanos para monitorizar, testar, configurar,
analizar, evaluar y controlar la red y sus recursos para alcanzar los
requerimientos de tiempo-real, operacional, rendimiento y Calidad de Servicio
con un coste razonable

reas funcionales de Gestin de Red


La ISO (International Organization for Standards) ha definido 5 reas
funcionales dentro de la gestin de red, es decir qu es lo que se gestiona
dentro de una red, que son:

Gestin del rendimiento (prestaciones):


El objetivo es medir, cuantificar, analizar y controlar las prestaciones de los
distintos componentes de red, desde dispositivos individuales como enlaces,
routers, hosts hasta una ruta, camino dentro de la red, para poder ajustar los
parmetros de la red. En Internet el

protocolo SNMP (Simple Network

Managament Protocol) es importante para conseguir esta gestin.

Algunas cuestiones que ataen a esta gestin son:

Cul es la utilizacin de la red?

Hay un trfico excesivo?

Existen cuellos de botella?, est aumentando el tiempo de respuesta?

Gestin de los fallos:


El objetivo es registrar, detectar y responder a las situaciones de fallo en la red.
Un fallo en la red trae como consecuencia que el usuario no pueda utilizar
algn servicio, por lo que es deseable su pronta deteccin y correccin. El
papel de SNMP tambin es importante en esta rea funcional.

Es importante distinguir entre fallo y error:

Error: Un evento aislado, p. e. Se pierde un paquete o no llega


correctamente.

Fallo: un funcionamiento anormal que requiere una intervencin para ser


subsanado. El fallo se manifiesta por un funcionamiento incorrecto (se corta
la lnea fsica) o por exceso de errores (prdida de muchos paquetes).

Los objetivos de la gestin de fallos son:

Deteccin, aislamiento y correccin de fallos.

Cuando ocurre un fallo, tan pronto como sea posible:


o Determinar exactamente donde est el fallo
o Aislar el resto de la red, para que pueda seguir operando sin
interferencia.
o Reconfigurar la red para minimizar el impacto de operar sin el
componente averiado.
o Reparar o reemplazar el componente averiado para devolver la red al
estado inicial.

Gestin de la configuracin:
Permite al administrador conocer qu dispositivos hay en la red y el hardware y
configuraciones software de dichos dispositivos, esto se logra mediante:

Capacidad de leer y/o modificar los parmetros de configuracin de los


dispositivos.

Capacidad para detectar nuevos dispositivos.

Conocer en cada momento la topologa de la red.

Gestin de la contabilidad1 (accounting):


Permite al administrador especificar, registrar y controlar el acceso de usuarios
y dispositivos a los recursos de la red. Establecer cuotas de uso, costes de
usos de la red y asignacin de privilegios de acceso a los recursos son parte de
la gestin de contabilidad.

Dependiendo del sistema gestionado, los costes pueden convertirse en


facturas, en el caso de redes de una empresa, los usuarios de los recursos son
internos y no se cobra ni se paga por la utilizacin de los servicios, pero an
cuando no es as esta gestin es interesante por:

Algunos autores utilizan el trmino "gestin de las cuentas".

Conocer la rentabilidad de la inversin realizada en los recursos de


comunicaciones.

Un usuario puede abusar de sus privilegios de acceso y cargando la red a


expensas de los dems usuarios.

Los usuarios pueden estar haciendo un uso ineficiente de la red y el gestor


puede ayudarle a modificar su modo de trabajo y obtener mejores
prestaciones.

El gestor de la red est en una mejor situacin para planificar el crecimiento


de la red si la actividad de los usuarios se conoce con un nivel de detalle
suficiente.

Gestin de la seguridad:
El objetivo es controlar el acceso a los recursos de la red. Se incluyen dentro
de la gestin de seguridad:

Monitorizacin y control de los accesos a las computadoras de la red.

Uso de firewalls para monitorizar y controlar los puntos de acceso externos


a la red

Generacin, distribucin y encriptacin de claves y otras autorizaciones de


acceso.

Los historiales (archivos log) son una herramienta importante para la gestin de
la seguridad.

Aunque se distinguen estas cinco reas y se describen de forma separada, es


importante tener en cuenta que, en la prctica, los cometidos de unas y otras
se solapan e interactan. Por ejemplo, si hay un fallo se producir una
disminucin del rendimiento; el abuso de la red por parte de un usuario puede
ser mitigado por medio de las herramientas de seguridad; para corregir un fallo
es posible que tengamos que consultar la configuracin inicial y restablecerla,
etc.

Al igual que ocurre con las reas funcionales, tambin las herramientas
utilizadas en gestin de red pueden cubrir desde parte de una hasta varias de
dichas reas. No hay ninguna herramienta que resuelva por s sola los

problemas de gestin de red y es tarea del administrador (del gestor) elegir


aquellas ms adecuadas y hacerlas funcionar coordinadamente e integradas.

Arquitectura genrica de un sistema de Gestin de Red


La gestin de red tiene que monitorizar, configurar, controlar,..., el hardware y
software y los componentes de una red. Como los dispositivos de red estn
distribuidos, esto obliga a que el administrador de red pueda recolectar datos
(p.e para monitorizarlos) de entidades remotas y pueda realizar cambios en las
entidades remotas (configuracin).

La arquitectura de un sistema de gestin de red consta de tres componentes


principales: Sistema gestor, los dispositivos a gestionar y un protocolo de
gestin de red. Esta arquitectura es genrica y ha sido aplicada a varios
estndares de gestin de red propuestos a lo largo de los aos que se vern en
el siguiente apartado.

1. El sistema gestor es una aplicacin, utilizada por el administrador,


ejecutndose en una estacin del centro de operaciones de red (NOC). Este
sistema es el foco de actividad para la gestin de red; controla la recogida,
procesado, anlisis, y/o visualizacin de la informacin de gestin de red.
Es aqu donde se inician las acciones para controlar el comportamiento de
la red y donde el administrador de red interacta con los dispositivos de red.

2. Dispositivo a gestionar es un componente de la red (incluido su software)


a gestionar. Puede ser un host, un router, una impresora, etc. Dentro de un
dispositivo gestionable, puede haber varios objetos gestionables. Estos
objetos gestionables son piezas de hardware dentro del dispositivo
gestionable (p.e: una tarjeta de red), y el conjunto de parmetros de
configuracin para las piezas de hardware y software (por ejemplo el
protocolo RIP -Routing Information Protocol-, la tabla de rutas del router, el
nmero de paquetes ICMP echo (request) recibidos). Estos objetos
gestionables tienen informacin asociada que se recopila en una Base de
Infomacin de Gestin que se denomina MIB (Management Information
Base); esta informacin est disponible para el sistema gestor (y en
algunos casos puede modificarla). Adems, en cada dispositivo gestionable
hay residente un agente, que acta sobre el dispositivo gestionable bajo el
control del gestor.

Un agente, es en resumen un software para la gestin de red contenido en los


nodos y que realiza las siguientes tareas:

Recoge estadsticas generalmente sobre actividades relacionadas con la


red y las almacena localmente en su MIB (Management Information Base)

Responde a rdenes recibidas desde el centro de control de la red:


o Transmite las estadsticas recolectadas al centro de control
o Cambia un parmetro (p.e. activar o desactivar una alarma cuando
se produce un fallo de autentificacin)
o Ofrece informacin de estado (p.e. configuracin, enlaces activos)
o Genera trfico artificial para realizar una prueba
Enva mensajes al centro de control cuando las condiciones locales
sufren un cambio significativo.

3. El protocolo de gestin de red: es el protocolo utilizado entre el sistema


gestor y los agentes de los dispositivos gestionables, permitiendo al sistema
gestor preguntar el estado de los dispositivos e indirectamente realizar
acciones en ellos. Adems, los agentes utilizan el protocolo para informar al
sistema gestor de eventos (fallo de componentes, superado un lmite de
7

rendimiento, etc...). Es importante resaltar que el protocolo de gestin de


red, no gestiona por s mismo la red. Proporciona una herramienta con la
cual el administrador de red puede gestionar (monitorizar, testear, sondear,
configurar, analizar, evaluar y controlar) la red.

Historia de la gestin de red


La primera herramienta para gestin de Internet fue ICMP (Internet Control
Message Protocol). Se trata de un protocolo y una especificacin muy sencilla
para detectar cmo pasan los paquetes de datos a travs de la red, los routers
intermedios que atraviesan y comprobar si llegan o no a su destino.

Mensajes de control entre routers y hosts.

Gestin en ICMP: mensajes de peticin/respuesta de eco.

Se puede comprobar la conectividad y estimar retardos y fiabilidad de


una ruta en la red.

Programas PING (Packet Internet Groper) y traceroute.

ICMP fue una solucin para la gestin de redes durante varios aos, pero a
finales de los 80 Internet crece explosivamente, e ICMP se queda corto.

En 1987 se propone SGMP (Simple Gateway Monitoring Protocol): para


monitorizar routers.

En 1988 en un mbito ms general se proponen dos aproximaciones:

Simple Network Management Protocol (SNMP), versin extendida de


SGMP, para redes TCP/IP y diseado con el fin de utilizarlo slo a corto
plazo.

CMIP (Common Management Information Protocol) en desarrollo en


ISO/OSI, para redes OSI, como solucin definitiva a largo plazo
(cuando el modelo OSI (Open System Interconnection) se impusiera a
TCP/IP, cosa que nunca ocurri).

Para facilitar la convergencia futura de SNMP a CMIP, ambas utilizaran una


misma base de datos para los objetos gestionados. Adems, ambos fueron
diseados para ser independientes de los distintos vendedores.

La

evolucin de SNMP es comparable a la de TCP/IP. Cmo SNMP fue

gilmente diseado y desarrollado, en un momento en que la necesidad de la


gestin de red empezaba a ser crtica, SNMP fue aceptado rpidamente y se
extendi muy pronto su uso, debido tambin en gran medida a la proliferacin
de las redes basadas en TCP/IP. Adems la gestin OSI es mucho ms
compleja y an no estn terminadas todas las normas. SNMP se ha impuesto
mientras que el uso de CMIP es muy inferior.

SNMP lejos de desaparecer, como se haba previsto en su nacimiento, se ha


afianzado como el estndar de gestin ms importante de los que se emplean
en la actualidad. Los principales vendedores de computadoras, switches,
routers, concentradores, etc. incorporan SNMP en sus dispositivos.

Actualmente, tambin la tecnologa Web se est empezando a aplicar en


gestin de redes. Utilizando un servidor Web en el dispositivo a gestionar y los
navegadores Web como estaciones gestoras, con la gran ventaja de poder
acceder a la informacin desde cualquier punto, donde tengamos un navegador
y conexin a Internet (no estamos limitados al NOC). Cmo es una tecnologa
en evolucin no existe actualmente ningn estndar al respecto.

GESTIN SNMP, MODELO DE GESTIN EN INTERNET


Introduccin
La gestin SNMP tambin se denomina gestin de Internet. Cualquier red que
utilice los protocolos TCP/IP es gestionable por SNMP. (Incluso redes que no
utilizan TCP/IP se pueden gestionar con SNMP por medio de agentes
denominados proxy).

La gestin SNMP es la ms usada. La mayora de los componentes utilizados


en las empresas llevan incorporados agentes que responden a un sistema
gestor SNMP. Por lo tanto, si aadimos un nuevo componente a la red (un
router, puente, host) que incluye agente SNMP, el sistema gestor puede
automticamente empezar a monitorizar el nuevo componente.

En la actualidad el trmino "SNMP" se usa para referirse al conjunto de


especificaciones para gestin de red, que incluyen el protocolo SNMP en s, la
definicin de las estructuras de datos y los conceptos asociados.

Los estndares de Internet se definen en los RFCs (Request For Comments),


los principales para la gestin SNMP son:

MIB (Management Information Base): RFC 1156, RFC 1123, describen


los objetos contenidos en la MIB.

SMI (Structure of Management Information Base): RFC 1155, describe


cmo se definen los objetos contenidos en la MIB.

SNMP(Simple Network Management Protocol): RFC 1157, define el


protocolo SNMP, la forma de interaccin agente-gestor, tipos de
mensajes, formato del mensaje, etc...).

Arquitectura del modelo de gestin de Internet


El modelo de gestin de Internet sigue el esquema bsico que se vio para
gestin de redes que consta de:

La estacin gestora

Dispositivos gestionables que contienen el agente y la Base de


Informacin de gestin (MIB)

El protocolo de gestin de red, en este caso SNMP

10

SNMP es un protocolo de nivel de aplicacin, que funciona sobre UDP (no


orientado a conexin, no garantiza la entrega confiable), por lo tanto SNMP no
establece, ni mantiene, conexiones entre el sistema gestor y los agentes (de
esta manera sobrecarga menos la red y la implementacin es ms sencilla).

En el sistema gestor se ejecutar un proceso gestor que acceder a la MIB


central del sistema y proporciona un interfaz al administrador de la red. Este
proceso se comunicar con los procesos agentes de los dispositivos
gestionables usando el protocolo SNMP.

Cada agente, dentro de los dispositivos a gestionar, tiene tambin que


implementar SNMP, UDP, e IP. El proceso agente interpreta los mensajes
SNMP y controla la MIB del dispositivo.
Los agentes escuchan en el puerto 161
Las estaciones gestoras escuchan en el puerto 162

En amarillo aparecen los elementos gestionados y en azul los elementos de


gestin.

Cmo el propio nombre indica, el protocolo SNMP fue diseado para ser simple
y verstil, lo cual seguramente ha influido en su xito. La comunicacin de la
11

informacin de gestin entre las entidades se realiza a travs del intercambi


de slo 3 tipos de mensajes de protocolo.

get: la estacin gestora extrae (lee) el valor de un objeto del agente.

set: la estacin gestora fija (escribe) el valor de un objeto del agente.

trap: permite a un agente notificar a la estacin gestora eventos


significativos.

Estos tres tipos se concretan en 5 posibles mensajes, la aplicacin gestora


puede solicitar estos mensajes:

GetRequest, GetNextRequest y SetRequest, que sern reconocidos por el


agente y respondidos mediante el mensaje GetResponse. Adems el agente,
puede enviar un mensaje Trap en respuesta a un evento ocurrido en el
dispositivo gestionable. Los distintos mensajes se vern con ms profundidad
en el apartado que trata el modelo de comunicacin de este tema.

Trap-Directed Polling
Si una estacin gestora es responsable de un gran nmero de agentes y cada
agente mantiene un gran nmero de objetos no es prctico que la estacin
gestora sondee todos sus agentes para obtener datos constantemente. Lo que

12

hace SNMP, es disear el gestor para que utilice la tcnica trap-directed


polling:

Esta tcnica consiste en que la estacin gestora realiza un sondeo inicial y a


intervalos poco frecuentes (p.e. una vez al da) para recoger informacin clave
(caractersticas del interfaz y estadsticas bsicas, como nmero de paquetes
enviados y recibidos por una interfaz).
Adems, se configuran los agentes para que notifiquen a la estacin gestora
los eventos no usuales (p.e., el agente cae y se reactiva, un enlace falla,
condicin de sobrecarga). La comunicacin de estos eventos se realiza
mediante traps. Una vez alertada, la estacin gestora puede iniciar una
consulta (poll) sobre el agente para diagnosticar el problema y llevar a cabo las
acciones necesarias.

Proxy
En una situacin ideal todos los componentes de la red incluyen un agente
SNMP, para poder ser gestionable. Pero esto no siempre es as:

Hay componentes que no soportan SNMP, salen ms baratos.

Hay sistemas que se sobrecargaran excesivamente con el agente


SNMP (controladores programables que tienen TCP/IP para sus
aplicaciones, pero no se quiere cargarlos con SNMP, el agente y el
mantenimiento de la MIB).

Componentes que no soportan TCP/IP

Para gestionar mediante SNMP estos dispositivos que no implementan SNMP,


uno de los agentes en la configuracin hace de proxy para uno o varios
componentes

Cuando un nodo hace de proxy, acta de parte de otro u otros.

Si un gestor quiere informacin de (o controlar a) ese componente tiene


que comunicarse con su proxy.

13

El agente proxy traduce la peticin del gestor a la forma adecuada para


el nodo en cuestin.

GESTIN SNMP: Modelo de Informacin


El objetivo de la informacin de gestin es referenciar recursos en un sistema
remoto para gestionarlos, para conseguirlo se plantean las siguientes
cuestiones:

Cmo llegar al sistema remoto? Esto es tarea del Protocolo IP

Cmo llegar al proceso de gestin de red en el sistema remoto? Esto


es tarea del Protocolo SNMP

Cmo llegar al recurso del sistema remoto? Es necesario un mtodo


comn para nombrar los objetos: Object Identifiers (OID)

Como se ha visto en la estructura de gestin de red de Internet la informacin a


gestionar se representa como una coleccin de objetos que se llama MIB
(Management Information Base). Cada recurso gestionable es un objeto
(variable), p.e. un objeto puede ser un contador de nmero de datagramas IP
descartados, el nmero de interfaces de un router, la tabla de rutas, etc.

La MIB es una coleccin de objetos que tiene estructura de rbol. Cada


sistema gestionable mantiene una MIB con informacin sobre sus propios
recursos y la estacin gestora monitoriza los recursos de la red leyendo los
valores de los objetos en la MIB y puede controlar los recursos modificando
esos valores

14

El objeto usado para representar un recurso particular debe ser el mismo en


todos los sistemas.

Ejemplo:
El nmero de conexiones TCP abiertas en un periodo:
conexiones abiertas = conexiones pasivas + conexiones activas

Una apertura pasiva es la que se produce cuando una aplicacin informa al


sistema operativo de que est dispuesta a aceptar una comunicacin entrante.

Se produce una asignacin de puerto para ella, y queda en espera.

Basta con almacenar dos de los tres. La definicin de MIB especifica que se
deben almacenar las conexiones pasivas y activas
Se definen los objetos tcpActiveOpens y tcpPassiveOpens

Ocupan las posiciones en el rbol 1.3.6.1.2.1.6.5 y 1.3.6.1.2.1.6.6 , dentro


de la MIB.

Son de tipo counter (entero 32 bits)

Debe utilizarse un esquema de representacin comn (estndar) para


soportar la interoperabilidad

SMI: STRUCTURE OF MANAGEMENT INFORMATION (RFC 1155)

SMI es un lenguaje usado para definir la informacin de gestin. Est basado


en ASN.1 (Abstract Syntax Notation One). Es necesario para asegurar que la
sintaxis y semntica de los datos de gestin de red estn definidas de forma
inequvoca. SMI no define informacin concreta de una tarjeta de red, de un
router o de cualquier dispositivo gestionable, si no que define el lenguaje en el
que esa informacin se especifica.

Para proporcionar una forma estandarizada de representar la informacin de


gestin, SMI proporciona:

una tcnica estndar para definir la estructura de una MIB

una tcnica estndar para definir objetos individuales (sintaxis y


su valor)

una tcnica estndar para codificar los valores de los objetos

15

1 SMI: Estructura de la MIB


Como ya se ha comentado anteriormente, la estructura de la MIB es en forma
de rbol, denominado "rbol OID". Los objetos forman las hojas del rbol:
representan un recurso, una actividad o informacin relacionada que va a ser
gestionada. Dentro del rbol, los objetos se agrupan en grupos (ramas)
relacionados (Grupos de objetos IP, grupos de objetos TCP, ...).

A cada objeto de una MIB se le asocia un identificador del tipo ASN.1 OBJECT
IDENTIFIER, consistente en una secuencia de nmeros enteros separados por
comas. El identificador sirve para nombrar el objeto, adems como el valor
asociado con el tipo OBJECT IDENTIFIER (OID) es jerrquico: secuencia de
enteros. Ej: 1.3.6.1.4.1.9.1.25, el nombre sirve tambin para identificar la
posicin que ocupa el objeto dentro del rbol. Ahora lo veremos con ms
claridad.

rbol OID
Es un rbol jerrquico definido por una secuencia de nmeros enteros no
negativos separados por puntos:

En la pgina web http://www.alvestrand.no//objectid/top.html , se puede


recorrer todo el rbol, es una pgina no oficial.
16

Como se puede observar existen tres nodos en el primer nivel: iso


(representado con el nmero entero "1"), ccitt (comit que organiza los
estndares

de

comunicacin

internacional,

telefnico

telegrfico,

representado con el nmero "0") y joint-iso-ccitt (unin de los dos anteriores,


representado con el nmero "2"). Dentro del nodo iso hay un subrbol para las
organizaciones org (representado con el nmero "3") y dentro de ste un
subrbol para el Department of Defense de USA (dod, representado con el
nmero 6).

El subrbol de internet (identificado con un "1", y que contiene todos los


elementos de una red basada en TCP/IP que se monitorizarn con SNMP) es
un nodo que cuelga de dod. Se identifica (partiendo desde arriba de la
jerarqua) mediante:

internet OBJECT IDENTIFIER::{ iso (1) org (3) dod (6) internet (1)}

Este valor sirve como prefijo de los nodos en niveles inferiores (todos los
parmetros relacionados con Internet que se pueden monitorizar empezarn
con 1.3.6.1).

SMI define cuatro nodos bajo el nodo internet:

directory (1)
o Reservado para uso futuro
o Previsto que contenga informacin sobre el servicio de directorio
OSI, X.500

experimental (3)
o Protocolos y MIBs experimentales, an no son estndar.

private (4)
o MIBs particulares de empresas (aaden funcionalidad).
o Cada empresa tiene su propio rbol a partir de private.
o Se hacen pblicas en www.isi.edu (ftp://ftp.isi.edu/mib/)

mgmt(2)

17

o Debajo

de

management

estn

definidos

los

mdulos

mib

estandarizados. Se han desarrollado 2 versiones, mib-1(RFC1056) y


mib-2 (RFC1213), la segunda es una extensin de la primera y es la
que se est utilizando actualmente.
El OID de mgmt se puede indicar:
{iso (1) org (3) dod (6) internet (1) mgmt(2) } o 1.3.6.1.2

Grupos de mib estndar definidas en mgmt

El grupo mib-2 se subdivide en los siguientes grupos:

system: informacin general del sistema.

interfaces: interfaces de red del sistema.

at: (deprecated: reemplazado) ha quedado vaco en MIB II, pasando sus


objetos a otros grupos.

ip: implementacin y ejecucin de IP en el sistema.

icmp: implementacin y ejecucin de ICMP en el sistema.

tcp: implementacin y ejecucin de TCP en el sistema.

udp: implementacin y ejecucin de UCP en el sistema.

egp: implementacin y ejecucin de EGP(exterior gateway protocol) en


el sistema (no se utiliza)

dot3: esquemas de transmisin y protocolos de acceso.

SNMP: implementacin y ejecucin de SNMP en el sistema.

El grupo system (1.3.6.1.2.1.1) contiene Informacin sobre el sistema en el


que est el agente. Los objetos gestionables definidos en este grupo son:
_ sysObjectID: identificador asignado por el fabricante (en private)

18

formato: 1.3.6.1.4.1.ve.vs.vs
ve: nmero de la empresa
vs: cdigo especfico del producto
Ejemplo: El router 2509 de Cisco (ve = 9)
1.3.6.1.4.1.9.1.25
_ sysServices: servicios (niveles OSI) que ofrece el sistema
_ susUptime: tiempo funcionando desde ltima inicializacin
_ sysDescr: descripcin del sistema
_ sysLocation: localizacin fsica
_ sysContact: persona responsable del sistema
_ sysName: nombre del dispositivo

interfaces (1.3.6.1.2.1.2)
Informacin sobre cada interfaz en un dispositivo de red.
_ Objetos que definen la tabla de interfaces:
_ ifNumber (1): nmero de interfaces de la entidad
_ ifTable (2): tabla de interfaces de la entidad (ver figura debajo).
_ ifEntry(2.1): informacin sobre un interfaz especfico (ver figura debajo).

ifOperStatus:estado operacional (up1/down2/testing3)


_ ifAdminStatus: estado administrativo (up1/down2/testing3)
_ ifLastChange: tiempo desde cambio a estado operacional
_ ifDescr: nombre de la interfaz (eth0)
_ ifType: tipo de interfaz, (6 = ethernet-CSMA/CD)
_ ifMtu: mximo tamao de la trama.
_ ifSpeed: velocidad en la interfaz en un momento dado (til para
19

interfaces que cambian de velocidad como modem)


_ ifInDiscard/ifOutputDiscard: paquetes descartados (error, no
conocido...)
_ ifInErrors/ifOutErrors: paquetes con error
_ ifInOctets/ifOutOctets: bytes recibidos/enviados
_ ifInUcastPkts/ ifOutUcastPkts: paquetes unicast
_ ifInNUcastPkts/ ifOutNUcastPkts: paquetes no unicast
_ ifInUnknownProtos: paquetes recibidos de protocolo desconocido
_ ifOutQLen: paquetes en la cola de salida

En la plataforma tenis a vuestra disposicin el anexo uno con todos los


objetos definidos en mib-2, tambin podis familiarizaros con la mib-2 a travs
de los sistemas gestores que se van a utilizar: getif y mib-browser.

Mibs privadas
Los fabricantes pueden crear objetos especficos para gestionar sus productos.
El uso de SMI y un esquema de identificadores de objetos estndar permite
que se pueda acceder fcilmente a esos objetos.

Se cargan dentro de subrbol private (1.3.6.4.1) y ms concretamente dentro


de la rama enterprises (1.3.6.1.4.1).

Una estacin gestora solo puede acceder a la informacin cuya existencia


conoce y sobre la que puede preguntar. Para que la estacin gestora pueda
gestionar objetos MIB privados, su estructura debe ser cargada en la estacin
gestora. Esto es importante, si se va a gestionar con SNMP un router cisco lo
normal es que el sistema gestor traiga las mibs ms habituales pero no de
fabricantes concretos, por lo que hay que descargar la mib que utilice el router
en concreto para que desde el sistema gestor se puedan referenciar los objetos
gestionables que ha especificado cisco para ese router (se ver en la parte
prctica).

2 SMI: TIPOS DE DATOS Y SINTXIS

20

Los tipos de datos que se usan en SNMP estn basados en los de ASN.1, que
como ya dijimos es un lenguaje para definir estructuras de datos, con el que
definamos:

una tcnica estndar para definir la estructura de una MIB (tratado en el


apartado anterior).

una tcnica estndar para definir objetos individuales (sintaxis y su valor)


(es el tema de este apartado).

una tcnica estndar para codificar los valores de los objetos en sintaxis
concreta de transferencia: BER(Basic Encoder Rules).

Podran valer las definiciones de C (p.e.), pero carecen de una codificacin en


bits estandarizada:
Por ejemplo: para que una estacin de 32 bits, little endian de complemento a
2 pueda comunicarse con otra de 16 bits, big endian y complemento a uno (por
ejemplo, SNMP)

Este apartado es un poco tedioso, basta con que hagis una lectura rpida, lo
que os permitir poder entender los ficheros en los que se definen las mibs.

Reglas de sintaxis

La sintaxis 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.

El valor nulo se expresa con NULL.

Se puede poner comentario en una lnea desde la marca "--" hasta final
de lnea.

21

Tipos de datos definidos en SMI


Los tipos de datos que se usan en SNMP estn basados en los de ASN.1
Todos los tipos ASN.1, tienen una etiqueta asociada. La etiqueta consiste en el
nombre de la clase y un nmero no negativo. La etiqueta se utiliza a la hora de
codificar los datos para transmitirlos.

Hay cuatro clases de tipos de datos en ASN.1:


UNIVERSAL: tipos bsicos de ASN.1 (independientes de la aplicacin)
APPLICATION: relevantes a una aplicacin particular (por ejemplo, SNMP)
CONTEXT-SPECIFIC: igual que antes pero aplicables en un contexto
limitado
PRIVATE: definidos por los usuarios. No estandarizados

SMI: Tipos de datos universales


Los tipos de la clase UNIVERSAL de ASN.1 que se usan en SNMP son
Nombre

Etiqueta

INTEGER

UNIVERSAL 2

OCTETSTRING

UNIVERSAL 4

NULL

UNIVERSAL 5

OBJECT IDENTIFIER

UNIVERSAL 6

SEQUENCE,SEQUENCE-OF

UNIVERSAL 16

En ASN.1 hay ms: BOOLEAN, ENUMERATED,REAL, SET, ... pero no se


usan en SNMP.

SMI: Tipos de datos universales:


INTEGER:

32 bits en complemento a dos

Una variable de este tipo puede adoptar cualquier valor entero, pero se
puede limitar

Por ejemplo:
cuenta INTEGER ::= 100 -- valor inicial opcional
Estado ::= INTEGER {up(1), down(2), unknown(3)} -- subtipo

22

PacketSize ::= INTEGER {0..1023} --subtipo

OCTETSTRING: Cadena de octetos. Puede definirse la longitud de la cadena y


un valor inicial

Casi toda la informacin de gestin que representa un texto es de este


tipo.

Se utiliza tambin DisplayString que es equivalente pero slo puede


contener caracteres NVT ASCII (mximo 255 caracteres).

Tambin PhysAddress es equivalente.

OBJECT IDENTIFIER
Se utiliza para identificar y describir objetos en el rbol OID
El identificador del objeto se puede expresar de varias formas:

Secuencia de nmeros que determinan la posicin dentro de la


estructura del rbol mib2: OBJECT IDENTIFIER ::= {1 3 6 1 2 1}
(identifica a mib2)

Con un nombre equivalente al entero: OBJECT IDENTIFIER ::= {iso org


dod internet mgmt mib2}

Con un nombre y el entero equivalente entre parntesis.

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

Ejemplo:

ip OBJECT IDENTIFIER ::={mib-2 4}

SEQUENCE es una lista ordenada de tipos.

SEQUENCE-OF es un vector de una sola dimensin de un solo tipo.


Hemos visto los tipos de datos primitivos, universales de ASN.1 utilizados en
SMI, ahora vamos a ver los tipos de aplicacin, que corresponden a la clase
APPLICATION de asn.1, son tipos de datos relevantes para una aplicacin en
particular, en este caso SNMP.

23

Tipos de datos de aplicacin definidos en SMI:

IpAddress: direccin de 32 bits, formato IP versin 4. Es un


OCTETSTRING de 4 bytes.

Counter: entero no negativo de 32 bits que puede ser incrementado


pero no decrementado. Cuando alcanza el valor mximo comienza por
0. Ejemplos de aplicacin:
o contar el nmero de paquetes u octetos enviados o recibidos.
o contar el nmero de errores de un cierto tipo.

Gauge: entero no negativo de 32 bits que puede ser incrementado o


decrementado. Cuando alcanza el valor mximo se queda bloqueado en
ese valor hasta que se pone a cero.
o el nmero de paquetes almacenados en una cola en un instante.
o almacenar la diferencia en el valor de algo desde el principio al
final de un intervalo de tiempo.

TimeTicks: entero no negativo que cuenta tiempo en centsimas de


segundo (tiempo relativo).

Opaque: define datos arbitrarios codificados como OCTET STRING,


prcticamente no se utiliza.

Sintaxis de declaracin de objetos: macro OBJECT TYPE


Se han visto los tipos de datos, universales y de aplicacin definidos por SMI
que se pueden utilizar en la MIB. Para poder definir los objetos gestionables de
la MIB se ha creado una macro denominada OBJECT-TYPE, como siempre
con formato ASN.1.

OBJECT-TYPE MACRO ::=


BEGIN
TYPE NOTATION ::=
"SYNTAX" type(ObjectSyntax)
"ACCESS" Access

24

"STATUS" Status
DescrPart
ReferPart
IndexPart
DefValPart
VALUE NOTATION ::= value (VALUE ObjectName)
Access ::= "read-only" | "read-write" | "write-only" | "not-accessible"
Status ::= "mandatory" | "optional" | "obsolete" | "deprecated"
DescrPart ::= "DESCRIPTION" value (description DisplayString) | empty
ReferPart ::= "REFERENCE" value (reference DisplayString) | empty
IndexPart ::= "INDEX" "{" IndexTypes "}" | empty
IndexTypes ::= IndexType | IndexTypes "," IndexType
IndexType ::= value (indexobject ObjectName) | type (indextype)
DefValPart ::= "DEFVAL" "{" value (defvalue ObjectSyntax) "}" | empty
END

Por lo tanto, como se ver en los ficheros donde se definen las mibs, para
definir un objeto se utiliza siempre esta estructura.

Cada objeto dentro de una MIB de SNMP tiene una definicin formal, que
especifica entre otros:

el tipo de datos asociados con el objeto

el rango de valores que puede tomar

su relacin con otros objetos de la MIB (su posicin dentro del


rbol)

Se usa la sintaxis ASN.1

El significado de los posibles campos con los que se define un objeto


es:

SYNTAX: tipo de datos, corresponde a un tipo universal (INTEGER,


OCTETSTRING) o a un tipo de aplicacin (IpAddress, counter, ..)

ACCESS: modo de acceso a una instancia de un objeto (read-only,


read-write, write-only, not-accesible).

25

STATUS: requisitos de implementacin, define si este objeto debe ser


necesariamente incluido en la implementacin de la MIB:

Mandatory: obligatorio.

Optional: opcional.

Deprecated: debe ser soportado, pero ser quitado en la


siguiente versin de MIBs.

Obsolete: ya no es necesario implementarlo.

DescrPart: (opcional) descripcin textual de la semntica del objeto,


una definicin de para que sirve el objeto, dirigido al usuario.

ReferPart: (opcional) referencia cruzada textual a un objeto definido


en otra MIB.

IndexPart: define ndices de las tablas.

DefValPart: (opcional) valor por defecto usado cuando se crea una


instancia del objeto.

VALUE NOTATION: OID asignado al objeto. Indica el nombre que se


usa para acceder a este objeto va SNMP.

Ejemplos de declaraciones de objetos


La definicin dentro de la mib-2 del objeto sysDesc es la siguiente:
sysDescr OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A textual description of the entity. This value should include the full name and
version identification of the system's hardware type, software operating-system,
and networking software. It is mandatory that this only contain printable ASCII
characters."
::= { system 1 }
La definicin dentro de la mib-2 del objeto fNumber es la siguiente:
ifNumber OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory

26

DESCRIPTION
"The number of network interfaces (regardless of their current state) present on
this system."
::= { interfaces 1 }

Definicin de tablas
SMI slo soporta una forma de estructurar los datos que es mediante una tabla
de dos dimensiones de valores escalares.
Para definir una tabla se declara:
_ Nombre de la tabla: Table
_ Entry: tableEntry
_ Los elementos columnares.
_ El ndice.
Cada tabla consiste en SEQUENCE OF TableEntry.
Cada fila (TableEntry) consiste en una SEQUENCE de elementos columnares.

Ejemplo de tabla: ipRoutingTable

ipRouteTable OBJECT-TYPE
SYNTAX SEQUENCE OF IpRouteEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This entity's IP Routing table."
::= { ip 21 }
Entry y declaracin del Indice:

ipRouteEntry OBJECT-TYPE
SYNTAX IpRouteEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"A route to a particular destination."
INDEX { ipRouteDest }
27

::= { ipRouteTable 1 }

Objetos columnares:

IpRouteEntry ::= SEQUENCE {


ipRouteDest IpAddress,
ipRouteIfIndex INTEGER,
ipRouteMetric1 INTEGER,
ipRouteMetric2 INTEGER,
ipRouteMetric3 INTEGER,
ipRouteMetric4 INTEGER,
ipRouteNextHop IpAddress,
ipRouteType INTEGER,
ipRouteProto INTEGER,
ipRouteAge INTEGER,
ipRouteMask IpAddress
ipRouteMetric5 INTEGER,
ipRouteInfo OBJECT IDENTIFIER
}
Definicin de los objetos:

28

Adems estaran las definiciones de los objetos ipRouteProto, ip Route Age, e


ipRouteMask.

En la plataforma tenis la mib-2 en el anexo 2, examinar el fichero y


comprobaris la utilidad de todo lo visto en este apartado.

3 SMI: Reglas de codificacin


Por ltimo, adems de especificar un lenguaje de descripcin de datos tambin
se especifica como las instancias de los objetos, que han sido definidas

29

mediante ASN.1, tienen que ser enviadas por la red mediante BER (Basic
Encode Rules).
BER (Basic Encode Rules) define cmo codificar los valores definidos en
ASN.1 para ser transmitidos.

BER utiliza una tcnica denominada TLV(Type, Longitud, Valor) para codificar
los datos a transmitir.

Para cada dato a transmitir, se enva el tipo de dato, la longitud del dato y el
valor. La codificacin de cada campo consta de tres o cuatro campos:

Tipo: etiqueta que identifica el valor.

Longitud: del valor en octetos.

Valor: (OPCIONAL) codificado segn el tipo.

Ejemplo de codificacin
En la figura se muestran dos datos a enviar. El emisor quiere enviar la cadena
de caracteres "smith seguida por el valor decimal 259(en binario 00000001
0000011, en bytes 1 seguido de 3) El primer byte enviado tiene el valor de 4,
indicando el tipo de dato que le sigue es un OCTET STRING;(corresponde con
la T de la codificacin TLV). El segundo byte del flujo contiene la
representacin ASCII de la letra s. Los valores T,L, y V del siguiente item son:

2 (la etiqueta correspondiente a INTEGER)

2(la longitud del entero son dos bytes)

30

Los dos bytes que representan el valor de 259 decimal.

Para qu sirve todo esto?


A partir de la informacin que almacenamos en las MIB y que el gestor solicita
al agente de los dispositivos a gestionar, se pueden sacar datos interesantes
desde el punto de vista de gestin.

Por ejemplo en el rea funcional de las prestaciones, podemos tener una


herramienta, que a partir de los datos que nos enva el agente, nos calcule
diferentes medidas de la "salud" de la red y las interfaces de cada dispositivo,
como se muestra a continuacin:

Ejemplo de aplicaciones con interfaces:

31

Los paquetes descartados y los errores en un interfaz indican problemas en el interfaz o el


medio.

Porcentaje de errores en un interfaz:


% input errors = ifInError/(ifInUcastPkts+ifInNUcastPkts)
% output errors = ifOutError/(ifOutUcastPkts+ifOutNUcastPkts)

ifIn(Out)Errors: paquetes con error


ifIn(Out)UcastPkts: paquetes unicast
ifIn(Out)NUcastPkts: paquetes no unicast

Porcentaje de paquetes descartados en un interface: similar al caso anterior pero utilizando:

ifInDiscards:paquetes descartados de entrada.


ifOutDiscards:paquetes descartados de salida.
Si ifInDiscard crece al mismo ritmo que ifInUnknownProtos. Los paquetes se descartan por
protocolo desconocido. El problema no es del interfaz.

Utilizacin de un interfaz:
Total de bytes que pasan por el interfaz por segundo:
Bytes/s= [(ifInOctects j ifInOctects i ) + (ifOutOctects j ifOutOctects i )]/(j-i)
Donde j e i son dos instantes de tiempo.
Utilizacin = (Bytes/s*8)/ifSpeed

Indicador de problemas en un interfaz con ifOutQLen:


Si crece la longitud de la cola de salida del interfaz, indica problemas en ste.
Si permanece con un valor elevado indica congestin de interfaz.

Indicador de congestin en la red:


Aumenta ifOutDiscard (paquetes descartados sin error conocido) y baja ifOutOctets.

Ejemplo de aplicaciones con IP


ip : velocidades de datagramas con distintas circunstancias:
ipInReceives: recibidos.
ipInHdrErrors/pInAddrErrors: errores de cabecera/direccin
ipForwDatagrams: reenviados.
ipInUnknownProtos: recibidos con protocolo desconocido.
ipInDiscards: recibidos y descartados.
ipInDelivers: recibidos (sin error).

32

ipOutRequests: enviados, no se cuentan los reenviados


ipOutDiscards: datagramas de salida descartados
ipOutNoRuotes: descartados por falta de informacin de rutas
ipRoutingDiscards: entradas de encaminamiento descartadas
ipReasmReqds: recibidos necesitando reensamblamiento
ipReasmOKs: suficientemente reensamblados
ipReasmFails: fragmentos con error en el reensamblado
ipFragCreates: fragmentos generados
ipFragOks: fragmentos realizados con xito
ipFragFails: fragmentos con errores
Ejemplos de aplicaciones con IP para medir las prestaciones:

Porcentaje de datagramas IP recibidos:

Suma: ifInNUcastPkts + ifInUcastPkts por cada interfaz


divide ipInReceives por la suma anterior.

Indicador de falta de recursos:

ipInDiscard o ipOutDiscard

Carga del sistema si se produce un gran porcentaje de errores:

% erroresIN = (ipInDiscards+ipInHdrErrors+ipInAddrErrors)/ipInReceives

Un elevado porcentaje de fragmentaciones carga el sistema.

ipRoutingDiscard puede decir si la entidad descarta paquetes por falta de recursos.

Velocidad de reenvo: dos medidas en instantes i y j.

Ip-forwarding-rate = (ipForwDatagram j - ipForwDatagram i )/j-i

Velocidad de paquetes recibidos: dos medidas en instantes i y j.

Ip-input-rate = (ipInReceives j - ipInReceives i )/j-i

Si Ip-forwarding-rate es similar a Ip-input-rate, buenas prestaciones.

Ejemplos de aplicaciones con ICMP:


Un alto porcentaje de paquetes icmp procesados reduce el rendimiento:
% icmp = (icmpIn(Out)Msgs)/(total de paquetes ).
icmpOutSrcQuenchs elevado indica falta de recursos (peticiones que un equipo enva a otro
para indicarle, mediante el protocolo ICMP que baje la velocidad de envo de datos, ya que el
equipo destinatario, el que enva esta peticin, no puede procesar la informacin por falta de
recursos).

Ejemplos de aplicaciones con TCP


Indicador de fiabilidad de la red (rechazos de conexin):
tcpAttemptFails: n de intentos fallidos para abrir una conexin.

33

tcpEstabResets: n de resets para una conexin establecida.


tcpRetransSegs: nmero de segmentos retransmitidos (fiabilidad).
tcpInErrs: nmero de paquetes recibidos con error (indicador de problemas).
tcpOutRsts: n de intentos de hacer reset en una conexin indica un problema que afecta a la
fiabilidad.
Velocidad de segmentos: recibidos (tcpInSegs) o enviados (tcpOutSegs), es un indicador de
rendimiento.

Ejemplo de aplicaciones con UDP


udpIn(Out)Datagrams: velocidad de datagramas recibidos (enviados).
udpNoPorts: datagramas no enviados a una aplicacin puerto vlida (contabiliza la basura
procedente de aplicaciones con IP broadcast).
udpInErrors: datagramas recibidos con error (indica problemas).

Ejemplo de aplicaciones con la informacin almacenada sobre


SNMP
Se contabiliza el porcentaje de paquetes de cada tipo para estudiar su influencia en las
prestaciones de la red.
_ SNMPIn(Out)Pkts: paquetes SNMP recibidos (enviados).
_ SNMPInTotalReqVars: paquetes Get y Get-Next recibidos.
_ SNMPInTotalSetVars: paquetes Set-Request recibidos.
_ SNMPIn(Out)GetRequests: paquetes Get-Request recibidos (enviados).
_ SNMPIn(Out)GetNexts: paquetes Get-Next-Request recibidos (enviados).
_ SNMPIn(Out)SetRequests: paquetes Set-Request recibidos (enviados).
_ SNMPIn(Out)GetResponses: paquetes Get-Response recibidos (enviados).
_ SNMPIn(Out)Traps: paquetes Trap recibidos (enviados).

Gestin SNMP: Modelo de comunicacin


En el apartado anterior se ha estudiado el modelo de informacin, con el que
consigue una visin comn de los recursos por parte de gestores y agentes.
Adems, tambin es necesario definir un mecanismo que permita el
intercambio de dicha informacin, esto es lo que se define en el modelo de
comunicacin de SNMP.
Por lo tanto, el protocolo de gestin de red, SNMP, especifica las normas de
comunicacin entre un sistema gestor y un agente.

34

Cabra esperar que tuviera una gran cantidad de comandos diferentes para
poder realizar un gran nmero de operaciones diferentes: reinicializar el equipo,
cambiar el encaminamiento, activar una lnea, etc. Este ha sido el patrn de
diseo de muchos protocolos de gestin, que hace que sean poco flexibles
para la incorporacin de nuevos comandos y sobre todo complejos.
El protocolo SNMP se dise de una forma totalmente distinta. En vez de
definir un gran nmero de comandos diferentes, se emplea la frmula de tomaralmacenar (fech-store) sobre el conjunto de valores definidos en la mib.
Por tanto, SNMP emplea principalmente dos comandos, uno para obtener
informacin de las variables, y otro para almacenar informacin en las
variables.
Todas las dems operaciones se producen como efectos colaterales de estas
dos, por ejemplo. Para reinicializar un dispositivo, pude definirse una variable
que contenga el tiempo que ha de transcurrir hasta el prximo reinicio. Si se
permite al agente almacenar un cero el dicha variable, el efecto ser el mismo
que el de enviar un comando especfico para reinicializar el dispositivo.
La principal ventaja de este diseo reside en la simplicidad y estabilidad del
protocolo. Aunque se aadan nuevas variables a la mib el protocolo SNMP
permanecer estable.
Recordar que la estrategia que utiliza SNMP es la interrogacin peridica de
las variables de la MIB por el Gestor y la notificacin asncrona de
determinados eventos por el agente.
SNMP utiliza como protocolo de la capa de transporte UDP (no confiable, no
orientado a conexin) siguiendo con la simplicidad del modelo y reduciendo as
el trfico.
1 Operaciones
El protocolo SNMP dispone de las siguientes operaciones:

GetRequest:el gestor realiza una peticin de valores especficos de la


MIB del agente.

GetNextRequest: el gestor realiza una peticin del objeto siguiente a


uno dado en la MIB del agente, siguiendo un orden lexicogrfico.

SetRequest: el gestor permite asignar un valor a una variable en el


sistema del agente.
35

GetResponse: el agente devuelve los valores solicitados por la


operaciones anteriores del gestor. Es la respuesta a un SetRequest,
GetRequest o GetNextRequest.

Traps: el agente informa de un suceso inusual predefinido.

2 Comunidades
Una comunidad es una relacin entre un agente SNMP y un conjunto de
gestores que define autenticacin, control de acceso. La forma de
autentificacin es utilizar el mismo nombre para la comunidad, en el agente y
en el gestor.
Cada mensaje (get o set) request de un gestor a un agente incluye un nombre
de comunidad, este nombre funciona como un password. Si el agente no tiene
definido ese nombre de comunidad el mensaje se contestar con un error de
autentificacin.
Adems, cada comunidad tiene asociado un modo de acceso, que puede ser
slo lectura o lectura y escritura. No confundir con el acceso especificado al
definir un objeto. Un objeto puede tener acceso de lectura y escritura, pero si
nosotros nos comunicamos con el agente mediante una comunidad que slo
tiene acceso de lectura, no podremos modificar el valor del objeto (aunque est
es escribible).
Por defecto la comunidad de slo lectura tiene como nombre public y la de
lectura y escritura es private. Obviamente, lo primero que debemos hacer en
nuestra red es cambiar el nombre de las comunidades (porque cualquiera
conoce que, por defecto, sern public y private), an as la versin 1 de SNMP
es bastante insegura ya que los nombres de las comunidades no se encriptan
en los mensajes con lo que cualquiera que escuche en nuestra red puede
hacerse con estos valores. La siguiente imagen es una captura de un mensaje
36

SNMP en el que se puede comprobar que el nombre de la comunidad no est


encriptado.

3 Identificacin de Instancias
Como ya se ha explicado, cada objeto en una MIB tiene un identificador de
objeto nico, que est definido por la posicin del objeto en la estructura del
rbol de la MIB. Hay que distinguir entre objeto e instancia, cuando accedemos
va SNMP, lo que solicitamos es una determinada instancia de un objeto, no el
objeto en s.
Para los objetos que aparecen en las tablas, el identificador el objeto no es
suficiente para identificar la instancia ya que habr un valor para ese objeto
para cada fila de la tabla.
Cmo identificar las instancias no est definido en la MIB, es responsabilidad
del protocolo de gestin especificarlo. En el caso de SNMP, utiliza una columna
de la tabla cuyo valor sea diferente para cada fila como ndice, con lo que el
identificador de la instancia se forma con el identificador del objeto + el ndice.
Por ejemplo, para la tabla de rutas IP, en SNMP se ha elegido como columna
que no se repite ipRouteDest (la ruta destino).
En la siguiente figura hay una captura de una tabla de rutas obtenida por
SNMP, el identificador de la instancia IpRouteNextHop de la tercera fila se
obtiene aadiendo al identificador del objeto IpRouteNextHop el valor del objeto
ipRouteDest de la misma fila. As, tendremos:
37

Identificador del Objeto IpRouteNextHop: 1.3.6.1.2.1.4.21.1.7


Valor de ipRouteDest en la fila 3: 193.146.96.0
Identificador

de

la

instancia

IpRouteNextHop(fila3):

1.3.6.1.2.1.4.21.1.7.193.146.96.0

Hay casos en los que no existe una nica columna que pueda servir como
ndice, en ese caso se escoge una combinacin de columnas q identifique de
manera nica una fila, p.e en la siguiente figura se muestra la tabla de
conexiones TCP, para identificar una instancia se utiliza la combinacin de
cuatro

columnas

tcpConnLocaladdres+tcpConnLocalPort+tcpConnRemAddress+tcpConnRemP

ort como se puede apreciar en la primera columna de la tabla que muestra el


identificador (no olvidar que delante ira el identificador del objeto en concreto
que se solicita, por lo que el identificador de tcpConnState fila 2 sera:

Identificador de objeto tcpConnState: 1.3.6.1.2.1.6.13.1.1


Identificador de la instancia tcpConnState (fila 2):
1.3.6.1.2.1.6.13.1.1.0.0.0.0.135.0.0.0.0.2112
Las instancias de los objetos escalares para seguir la misma convencin, se
identifican con el identificador del objeto ms un cero.
Por ejemplo:
Identificador del objeto sysDescr: 1.3.6.1.2.1.1.1
Identificador de la instancia sysDescr: 1.3.6.1.2.1.1.1.0
38

4 Formato del mensaje SNMP


Un mensaje de SNMP consiste en un identificador de la versin, un nombre de
la comunidad SNMP y un PDU (Protocol Data Unit).
Toda implementacin de SNMP debe soportar las siguientes cinco PDUs:

GetRequest., GetNextRequest, , SetRequest, , GetResponse, Trap

Significado de los campos del mensaje:


Versin: versin del protocolo SNMP.
Comunity: comunidad que permite la autenticacin del gestor ante el agente y
el control de acceso.
Type: GetRequest, GetNextRequest, SetRequest, GetResponse, Trap.
Request-id: identificador nico para cada peticin, es el mismo en la respuesta
correspondiente. Permite relacionar peticin con respuesta y detectar
duplicados (esto es necesario hacerlo ya que el protocolo UDP no es confiable)
y o peticiones perdidas. Corresponde a la entidad gestora decidir si retransmite
una solicitud si no recibe respuesta pasado un determinado tiempo.
Error-status: indica si ha ocurrido un error cuando procesa una peticin. Los
cdigos son: noError (0), tooBig (1), noSuchName (3), badValue (4), readOnly
(4), genErr (5).
o noError (0).

39

o tooBig (1): el tamao del mensaje de respuesta no cabe en el


tamao mximo de datos UDP impuesto por el sistema.
o noSuchName(2),: OID no referencia a una instancia o no se
encuentra en la vista.
o BadValue(3): el valor de una variable en variable binding no
corresponde con el tipo, longitud esperado.
o readOnly (4)
o genErr(5): cualquier otro motivo.
Siempre vale 0 en el caso en caso de getRequest, getNextRequest y
setRequest.
Error-index: cuando se ha producido un error, puede aportar informacin,
indicando qu instancia de la lista de variablebindings ha producido el error.
Vale 0 en caso de getRequest, getNextRequest y setRequest.
Variablebindings: lista de nombres de variables (OIDs) y sus correspondientes
valores. Permite solicitar simultneamente mltiples variables, con el mismo
tipo de operacin.
La respuesta debe ser atmica, es decir, si una peticin falla:
o No se devuelve el resultado de ninguna.
o Error-index apunta al name (varible-bindings) que ha producido el
fallo. Ejem: si falla el segundo name, error-index = 2.
Los valores son nulos (NULL) en casos como GetRequest, GetNextRequest o
GetResponse con error.
La siguiente imagen muestra la captura de un mensaje GetRequest en el que
se solicita el valor del objeto sysDescr (OID 1.3.6.1.2.1.1.1) y en el que se
pueden apreciar todas las cabeceras que aade SNMP.

40

La respuesta a este mensaje se muestra en la siguiente imagen, un mensaje


GetResponse en el que en el campo value se ha aadido el valor del objeto
descripcin del sistema, en este caso un ordenador personal.

Pdu tipo trap:


Enterprise: tipo de sistema que genera el trap, basado en sysObjectID.
Agent-addr: direccin IP del agente que genera el trap.
Generic-trap: cdigo de trap genrico (los cdigos se indican a continuacin).
Specific-trap: cdigo de trap especfico.

41

Time-stamp: tiempo desde la ltima (re)inicializacin del agente y la


generacin del trap (valor de sysUpTime).

Generic Traps puede contener los siguientes cdigos:


coldStart (0): reinicio inesperado debido a algn tipo de fallo.
warmStart (1): reinicio en caliente, normalmente programado.
linkDown (2): fallo en uno de los enlaces del sistema.
linkUp (3): uno de los enlaces se ha iniciado, activado.
authenticationFailure (4): se ha recibido un mensaje SNMP con error de
autenticacin.
egpNeighborLoss (5): se ha perdido la relacin con un vecino EGP (EGP
es un protocolo de routing).
enterpriseSpecific (6): se ha producido algn evento especfico de
empresa (no estandarizado) especificado en specific-trap.

Evolucin de SNMP
Cmo ya se ha dicho anteriormente, SNMP se dise como una solucin
simple y provisional para redes TCP/IP mientras se diseaba la solucin OSI.
Entre las mayores ventajas de SNMP se pueden destacar:

Es un protocolo maduro, estndar de facto aceptado por la industria.


Est disponible en gran cantidad de productos.
Es fcil de implementar y requiere pocos recursos del sistema.

Por otro lado, el mayor inconveniente de SNMP es su escasa seguridad:


El nombre de comunidad en la cabecera de cada mensaje SNMP no es
suficiente, ya que la identificacin de la comunidad viaja tal cual. Por este
motivo, muchos fabricantes no implementan la orden Set o si la implementan
los administradores de red no la utilizan, con lo que el sistema de gestin se
convierte en un sistema de monitorizacin (obtener informacin de los
dispositivos gestionados).
Esta primera versin de SNMP, conocida como SNMPv1 se public en 1988 y
como ya se ha comentado ha tenido una gran aceptacin y se sigue utilizando
ampliamente, sobre todo para monitorizacin.

42

Debido a las deficiencias de seguridad de SNMPv1 en 1993 se publica una


versin mejorada SNMPv2, pero el sistema de seguridad que incorpora es
demasiado complejo por lo que la versin es rechazada y no se llega a utilizar.
En 1996 se publica una revisin de SNMPv2 (RFC1901..1908) que es
aceptada pero no incorpora ningn incremento de la seguridad, las principales
mejoras introducidas son:

Estructura: adems de comunicacin agente-gestor aparece el


esquema gestor-gestor donde un gestor solicita informacin a otro y
este responde.
Nuevas PDUs:
o getBulkRequest: permite la transferencia de bloques de informacin
de forma eficiente.
o informRequest: un gestor enva un informe a otro con OIDs y sus
valores. Tiene el mismo formato que setRequest y se responde con
getResponse
o .Amplia los cdigos de respuesta de error.
Nuevos tipos: Unsigned32, Counter64.

En 1998 se publica SNMPv3, extensin de SNMP que aborda especialmente


deficiencias de seguridad.

Se define una arquitectura general de gestin SNMP.


Nuevos servicios de seguridad: autenticacin, privacidad y control de
acceso.
RFCs 2271..2275

Lo que antes se denominaba agentes y gestores SNMP ahora se llaman


entidades SNMP. Una entidad SNMP est formada por un motor SNMP y
aplicaciones SNMP como se muestra en la siguiente figura.

43

Una PDU pasa por el motor SNMP antes de ser enviada va la capa de
transporte adecuada. El motor se divide en cuatro mdulos: dispatcher,
subsistema de proceso de mensajes, subsistema de seguridad y subsistema de
control de acceso.
Dispatcher: responsable de enviar y recibir mensajes. Cuando se recibe un
mensaje, determina la versin y lo pasa al Modelo de Procesamiento de
Mensajes adecuado, SNMPv3, o v2 o v1.
Subsistema de procesamiento de mensajes: Se compone de uno o varios
Modelos de Procesamiento de Mensajes. Se encarga de preparar los mensajes
que deben ser enviados y extraer los datos de los mensajes recibidos.

44

Ejemplo: el Dispatcher recibe un mensaje SNMPv3 vlido y determina la


versin: 3

Lo enva al Modelo de Procesamiento de mensajes SNMPv3 donde se


extrae el mensaje.
ste llama al Subsistema de Seguridad para descifrarlo (si es
necesario) y autentificarlo.
Enva el mensaje a la aplicacin adecuada

Subsistema de seguridad

Autentifica los mensajes.


Cifra/descifra los mensajes

El modelo de seguridad de SNMPv3 se basa actualmente en:

Protocolos de autenticacin HMAC-MD5-96 y HMAC-SHA-96:


o Verificar que el contenido del mensaje no ha sido alterado
o Verificar la fuente del mensaje
Protocolo de privacidad (cifrado) CBC-DES (Cipher Block ChainingData Encrytion Standard)

Subsistema de control de acceso:

Determina si se debe permitir o no el acceso a un objeto de la MIB.


Actualmente slo hay definido un modelo de control de acceso: ViewBased Access Control Model (VACM).
Cuando se procesa una operacin Get,Get-Next, Get-Bulk o Set hay
que comprobar que se tiene acceso a los objetos referenciados.

Monitorizacin Remota RMON

45

La informacin que se obtiene con la MIB-II definida para SNMP es local a


cada dispositivo gestionado donde se ejecuta el agente. Si queremos obtener
informacin acerca de una red como un todo hay que hacer sucesivas
consultas individuales a cada nodo de la red. Esto supone un gran consumo de
recursos (tiempo de procesamiento en agentes y
el gestor, y ancho de banda consumido por las
consultas/respuestas SNMP).
Con esa motivacin surge RMON. RMON
consiste bsicamente en la definicin de una
MIB de monitorizacin remota como extensin a
la MIB-II. Adems, para poder monitorizar la red
de forma global, en cada subred se coloca un
monitor RMON (tambin denominado agente
RMON o sonda) que recoger y analizar (tiene
ms

capacidades

informacin

de

que

un

gestin,

agente

SNMP)

principalmente

estadsticas del trfico sobre la red y las pondr


a disposicin de las estaciones de gestin.
Resaltar que el protocolo de comunicacin entre
la sonda y el sistema gestor sigue siendo SNMP.
La sonda puede ser un dispositivo dedicado
(hardware) o una funcin disponible en un sistema (por ejemplo software
instalado en un switch, es muy habitual que los switch, los que tienen ya un
poco de nivel, implementen una sonda o agente RMON)
Se han definido dos MIBs para monitorizacin Remota:

RFC1757 (2/95): MIB de monitorizacin remota.


RFC2021 (1/97): MIB-2 de monitorizacin remota.

Como se puede apreciar en la figura la MIB de RMON cuelga del nodo mib-2.
Conclusin
Como resumen se puede afirmar que, despus de dos dcadas de existencia,
la gestin SNMP es ampliamente utilizada y aceptada. Sin embargo, su uso
ms extendido es el de monitorizacin, debido en gran parte a la falta de
seguridad de su primera versin que hizo que se limitar el uso de SNMP a la
46

recoleccin de informacin omitiendo las utilidades de modificacin y


configuracin. Aunque en la versin tres la seguridad ha sido ampliamente
reforzada, su aceptacin y uso ha sido menor debido a su mayor complejidad.

Caso Prctico - Gestin de Internet: SNMP


El principal objetivo de este caso es trabajar con ejemplos los
principales conceptos vistos en teora, as se pretende que el alumno
entienda la estructura del rbol OID (Object Identifier) donde se
almacenan de forma estructurada los objetos a gestionar; se
familiarice con los objetos de la mib-2, examine la definicin de
varias mibs recordando la sintaxis y tipos de datos de SMI; visualice
y compile mibs privadas; active y configure un agente SNMP; maneje
dos sistemas gestores SNMP, realice capturas de los mensajes
intercambiados entre agentes y sistema gestores para comprobar la
estructura de los mensajes SNMP, etc.
Equipamiento para realizar el caso2
Para realizar la gran mayora del caso prctico slo es necesario un
equipo con sistema operativo Windows en el que se instalar tanto el
agente como los sistemas gestores. El problema de utilizar un solo
ordenador viene a la hora de capturar los mensajes intercambiados
entre ambos, el analizador de protocolos de red que utilizamos,
Wireshark, no puede capturar mensajes recibidos y enviados en el
mismo ordenador (una gracieta del Windows con la tarjeta de
loopback http://wiki.wireshark.org/CaptureSetup/Loopback). Para los
que slo dispongis de un equipo hemos guardado la captura para
que podis visualizarla si queris, se os indica a lo largo del caso).

Los linuxeros que no quieran tocar Windows pueden hacer la prctica utilizando
agentes SNMP de Linux y el mg-soft mib-browser tiene versin de Linux con lo que
todo lo que se hace con el getif (slo tiene versin windows) lo pueden hacer con el
mg-soft mib-browser.

47

Resumiendo, el que disponga de ms de un ordenador instalar en


equipos diferentes el agente SNMP y los sistemas gestores. El que no
los tenga puede virtualizar otro Windows en su equipo (aunque para
este caso prctico no merece la pena) o simplemente en vez de
capturar los mensajes utilizar nuestra captura.
Agente SNMP en Windows
Obviamente para poder gestionar un dispositivo por SNMP es
necesario que el dispositivo sea gestionable por SNMP, es decir que
disponga de un agente SNMP instalado. Puede que muchos de
vosotros tengis en vuestro entorno de trabajo dispositivos con
agentes SNMP (routers, impresoras, switches, etc.) pero para
asegurarnos de que la mayora podis hacer el caso hemos elegido
como dispositivo a gestionar un ordenador con el sistema operativo
Windows (en principio con cualquier versin a partir del 2000).
Para instalar un agente SNMP en Windows (si no lo tenis ya
instalado).
Windows 2000/XP:
1. Desde el panel de control->agregar o quitar programas>agregar o quitar componentes de Windows
2. Seleccionar herramientas de administracin y supervisin.
3. Seleccione el protocolo SNMP.
4. Termina la instalacin.
Windows Vista:
1. Desde el panel de control->programas y
>activar o desactivar las caractersticas
>Caracterstica SNMP
2. Termina la instalacin.

caractersticasde Windows-

Una vez instalado para configurar las opciones e iniciar/detener el


agente (las capturas pertenecen a Windows XP):
1. Desde el panel de control-> Herramientas administrativas->
Servicios-> Hacer clic en Servicio SNMP.

48

2. Aparecen las opciones de configuracin del agente SNMP

3. En la pestaa seguridad se configuran los nombres de las


comunidades y las direcciones IP o nombres de host que se
pueden comunicar con nuestro agente.3

Para mejorar la seguridad de nuestro sistemas es recomendable usar nombres de


comunidad distintas de public y private ya que son las que traen por defecto la
mayor parte de los sistemas gestores y adems, permitir el acceso a nuestro
agente slo al equipo desde el que gestionamos la red, donde tengamos instalado
el software de gestin (en nuestro caso prctico agente SNMP (dispositivo a
gestionar) y sistema gestor coinciden).

49

Aadir public como comunidad de lectura y private como comunidad


con permisos de lectura y escritura. Como medida de seguridad
adicional indicaremos la direccin IP de los equipos que se pueden
comunicar con nuestro agente, en este caso aadir la direccin IP
donde instalaris el sistema gestor (getif).

En la pestaa capturas indicamos como nombre de comunidad public


y destino de la captura la IP del sistema gestor. Cuando se produzca
un evento de los contemplados en SNMP el agente enviar un trap al
sistema gestor.

50

4. Iniciar el servicio.

Ya tenemos un dispositivo a gestionar por SNMP, ahora vamos a


instalar una herramienta sencilla que nos permita comunicarnos con
el agente, un sistema gestor SNMP muy bsico, getif.

GETIF (http://www.wtcs.org/SNMP4tpc/getif.htm)
Getif es un programa freeware para Windows, que nos permite
comunicarnos

mediante

el

protocolo

SNMP

con

dispositivos

(ordenadores, routers, switch, etc) que contengan un agente SNMP.


Lo tenis disponible en la plataforma, en herramientas, el fichero
getif1.zip. El proceso de instalacin es muy simple, es un ejecutable.
En la siguiente figura se muestra la ventana de inicio de getif, en el
que se puede comprobar que aparece por defecto como nombre de
comunidad de lectura public y de escritura private.

51

Introducir en getif->Host Name la direccin del ordenador en el que


has configurado el agente SNMP y pulsar el botn Start, si aparece
no SNMP Response from es que en dicho ordenador no hay
instalado un agente SNMP o no est iniciado.
Si getif conecta correctamente con el agente en la parte inferior
aparece SysInfo variables OK y muestra en la pantalla los objetos de
la rama system de la mib-2 (nombre del sistema, contacto,
descripcin del sistema, etc.) y el nmero de interfaces que tiene el
dispositivo

52

Ir a la pestaa Mbrowser que permite visualizar y en algunos casos


modificar los valores de los objetos gestionados.

Desplegar e inspeccionar el rbol, comprobar que la estructura


coincide con la vista en el temario, la mib-II (RFC1213).
53

En la siguiente imagen se ha obtenido el nmero de interfaces del


dispositivo. Observar que el identificador de la instancia, al ser un
objeto escalar, se forma, como se vio en teora, aadiendo al
identificador del objeto un cero.

Si pulsis Walk sobre un nodo que contiene una tabla, por ejemplo la
tabla de interfaces, getif solicita todos los valores de la tabla:

54

Obtener:

El nombre del equipo.


La tabla de rutas (IP).
El nmero de mensajes ICMP que ha recibido el equipo.
La tabla de conexiones TCP.
Nmero de mensajes SNMP recibidos.

Hasta ahora estamos obteniendo informacin (monitorizando) el


dispositivo a gestionar, si queremos

modificar su configuracin

utilizaremos el botn Set que har que getif envi mensajes


SetRequest

al

agente.

Vamos

aprovechar

para

recordar

la

estructura de un mensaje SNMP para ello utilizaremos el capturador


de paquetes Wireshark, es de libre distribucin y de esta manera
tambin trabajamos con otra herramienta muy utilizada en gestin de
redes, los capturadores/analizadores de paquetes.
Wireshark es de libre distribucin y lo podis descargar de su pgina
Web:

55

http://www.wireshark.org/download.html (bajar la versin 1.2.11 ya


que en la ltima versin tiene un bug a la hora de decodificar los
mensajes SNMP), tambin lo tenis disponible desde la plataforma en
herramientas. El proceso de instalacin es muy sencillo, debis
marcar la opcin de instalar Winpcap, aplicacin necesaria para que
Wireshark pueda capturar los paquetes.

En la ventana principal de la aplicacin se mostrarn los paquetes


capturados. Wireshark muestra la informacin capturada en tres
secciones principales.

En la primera seccin aparece un listado de los paquetes capturados


con su informacin ms relevante. En la segunda seccin podemos
observar los detalles del mensaje seleccionado en la seccin 1. En la
ltima seccin se muestran los paquetes en bruto, es decir, tal y
como fueron capturados por la tarjeta de red.
Para capturar paquetes, men Capture->interfaces, aparece una
ventana con las tarjetas de red disponibles, pulsis start sobre la
tarjeta con la que estis trabajando, en la figura se selecciona el
cable de red Ethernet.

56

Cuando queris terminar la captura de paquetes pulsis el botn Stop


the running live capture y buscis entre los mensajes capturados los
que son de vuestro inters, en este caso sern todos con protocolo
SNMP.

Cmo habamos dicho vamos a modificar la configuracin, por


ejemplo modificando el nombre de la persona de contacto. Para ello
seleccionamos el objeto sysContact, escribimos en nuevo nombre en
el recuadro de abajo y pulsamos el botn Set (no olvidis arrancar la
captura de mensajes antes de pulsar el botn para poder visualizar el
mensaje que enva getif al agente y el de respuesta del agente).

57

Para comprobar que el valor se ha cambiado pulsar el botn Walk


para obtener el nuevo valor de sysContact.

En la figura podis comprobar las cabeceras que aade SNMP,


versin, comunidad (en este caso ha incluido private ya que es una
operacin de escritura), es un set-request, el identificador de

58

conversacin (request-id) y en variable-bindings el OID del objeto


seleccionado (sysContact) y el valor que queremos que tome
(Carmen). Tambin podis comprobar que el puerto destino es el 161
que es en que escuchan por defecto los agentes SNMP. Para los que
no puedan capturar el mensaje pueden abrir mi captura con el
Wireshark, fichero set_syscontact.pcap (en la plataforma dentro de
capturas_wireshark.zip).
A continuacin vamos a cambiar el nombre a la comunidad de
escritura de nuestro agente SNMP, vamos a el panel de control->
Herramientas administrativas-> Servicios-> Hacer clic en Servicio
SNMP . En la pestaa seguridad cambiamos el nombre de la
comunidad de lectura y escritura, por ejemplo ponemos secwrite.
Recordar que en la primera pestaa de getif introducimos los
nombres de las comunidades con las que queremos que nuestro
sistema se comunique con el agente y que tenemos puestas las de
por defecto, public y private.
Procedemos a repetir el ejercicio anterior, cambiar el nombre de la
persona de contacto. Comprobamos que ahora no podemos hacerlo
ya que el nombre de la comunidad no es el correcto.
Al no coincidir la comunidad de escritura del sistema gestor, getif,
que es private con la del agente (secwrite), el agente no modifica el
valor del objeto y adems enva un trap al sistema gestor avisndole
del fallo de autentificacin, lo que puede alertar al responsable de la
red de que hay algn intruso intentando hacer travesuras en la red.
En la imagen se muestra la captura del trap, los que no podis
realizar la captura podis cargar mi captura en Wireshark (fichero
trap_bad_comunity). Se observa que el puerto destino es el 162, en
el que el sistema gestor escucha la recepcin de traps. Y la estructura
59

de las cabeceras SNMP son las vistas para un trap: Enterprise


311.1.1.3.1 (es el identifcador del agente SNMP de Microsoft
Windows), la direccin del agente que ha enviado el trap y el tipo de
trap que en este caso es fallo de autentificacin.

Para los que no puedan capturar el mensaje pueden abrir mi captura


con el Wireshark, fichero trap_bad_comunity.pcap (en la plataforma
dentro de capturas_wireshark.zip).
Con el Wireshark vemos que el uso de las comunidades es una
medida de seguridad muy dbil ya que el nombre de la comunidad
viaja sin encriptar, cualquier analizador de paquetes puede leer
nuestro

nuevo

nombre

de

comunidad.

Por

eso

siempre

es

recomendable si utilizis la versin 1 de SNMP no dejar las


comunidades por defecto.
(No os olvidis de volver a poner private en la comunidad de lectura y
escritura de vuestro agente).

60

Con el siguiente ejercicio vamos a reforzar otro concepto visto en la


teora: para que un sistema gestor pueda acceder/modificar la
informacin de los objetos gestionables de un agente tiene que tener
cargada la mib que define la estructura de esos objetos gestionables.
A continuacin, vamos a intentar obtener a travs de getif el software
instalado en el equipo que estamos gestionando. Explorar el rbol de
getif buscando algn objeto que represente dicha informacin.

El resultado de la exploracin es que con las mibs que tiene cargadas


actualmente getif no se puede acceder a esa informacin aunque el
agente

la

tenga

disponible.

En

la

carpeta

C:\Archivos

de

programa\Getif 2.2\Mibs podis comprobar las mibs que tiene


cargadas getif. En esa C:\Archivos de programa\Getif est el archivo
MIBS-2K.ZIP, donde se almacenan un grupo de mibs adicionales.
Abrir el fichero RFC1514-HOST.MIB con un editor de texto, p.e.
editplus, y comprobar los objetos definidos en esta mib, as tambin
os familiarizis con la sintaxis y tipos de datos definidos en SMI vistos
en teora.

61

Cerrar el programa getif, extraer del zip el fichero RFC1514HOST.MIB en la carpeta Mibs y borrar el fichero .index y reiniciar
getif.
Al explorar de nuevo el rbol OID podis comprobar que debajo de
mib-2 aparece un nuevo nodo host.

Desplegando

el

rbol

si

solicitamos

el

valor

del

objeto

hrSWInstalledName obtendremos el software instalado en nuestro


equipo.

62

Luego ahora podemos acceder/modificar toda la informacin definida


en esta mib.
Familiarizarse con la MIB-host, obtener:

Los procesos/software que se estn ejecutando en el equipo


El nmero de cuentas de usuario que tiene el equipo.
Etc.

En

http://www.wtcs.org/SNMP4tpc/FILES/Tools/SNMP/getif/GETIF-

MIBS.ZIP hay una recoleccin de ms de 600 MIBs disponibles, de


CISCO, ATM, etc. Aunque lo ms recomendable es que cuando
tengis un dispositivo gestionable por SNMP, por ejemplo un router
cisco 3640, del que no tenis la mib con los objetos que se pueden
gestionar los bajis de la web del fabricante (las mibs de cisco las
tenis

disponibles

en

http://www.cisco.com/public/sw-

center/netmgmt/cmtk/mibs.shtml), en la parte de teora tenis un


enlace donde se indican donde tienen las mibs cisco, hp, etc.
Recordar que las mibs de empresas privadas no aparecen en el rbol
debajo

de

mgmt,

sino
63

que

aparecen

en

.iso.org.dod.internet.private.enterprises como se puede ver en la


figura.

Getif tambin permite visualizar en una grfica como van variando los
valores que toman los objetos (cuyo valor es de tipo entero). Para
visualizar el valor de un objeto:
1. Seleccionar

en

el

rbol

el

.iso.org.dod.internet.mgmt.mib2.interfaces.ifTable.ifEntry.ifInUcastPkts).

2.
3.
4.
5.
6.

objeto

(por

ejemplo

Pulsar walk.
Pulsar sobre el valor obtenido en la ventana inferior.
Pulsar sobre el botn aadir al grfico.
Cambiar a la pestaa graph
Presionar start para que empieze a mostrar los valores que van
tomando los objetos seleccionados (accede a travs del
navegador a diferentes sitios Web para generar trfico)

64

Getif, es un programa gratuito que nos ha permitido ver en la


prctica gran parte de los contenidos desarrollados en la teora, a
continuacin vamos a ver otro sistema gestor, ms profesional, con
un entorno ms amigable a la hora de visualizar los objetos de las
MIBs (se nota especialmente en el caso de las tablas) y con ms
opciones,

por

ejemplo

puede

monitorizar

varios

agentes

simultneamente, guardar los datos en ficheros logs, mostrar los


traps que envan los agentes, mostrar todos los agentes SNMP
activos en nuestra red, soporta SNMPv1, v2 y v3, etc.

MG-SOFT MIB BROWSER


El programa MG-SOFT Mib browser permite (entre otras cosas)
explorar de forma amigable la estructura de una MIB, enviar
peticiones (get/set) a un agente SNMP, mostrar los traps recibidos.
Aunque es un programa de pago tiene una versin de evaluacin
(pasada el periodo de evaluacin podis seguir utilizndolo si
65

cambiis la fecha del ordenador) que tiene algunas limitaciones frente


a la versin con licencia.
Lo podis descargar de http://www.mg-soft.com/index.html o de la
plataforma en herramientas.
Al instalarlo os pedir una licence key que podis encontrar tambin
en la plataforma.
Arrancar el programa PROGRAMAS->MG-SOFT MIB BROWSER->MIB
BROWSER. En la siguiente figura se muestra el entorno de trabajo:

El MIB-Browser tiene 4 reas principales que estn remarcadas en la


figura.
1. El primer rea contiene al Menu principal con los submenus (File,
Edit,.. Help).

66

2. El segundo rea est constituida por un men basado en iconos.


Estos sirven para agilizar algunas de las tareas ms utilizadas del
MIB-Browser.
3. La tercera rea es el rea de trabajo y contiene tres pestaas que
permiten realizar 3 actividades distintas (Query, MIB, Ping).
4. Finalmente, el cuarto rea es la barra de estado. En esta rea se
presenta al usuario de forma visual informacin acerca del estado
de las conexiones y de las peticiones.

Dentro del rea de trabajo, nos interesan principalmente las 2


primeras pestaas:
Presentacin de las consultas
El rea de consulta (Query) es la que est capturada en la figura
anterior. La finalidad de esta rea de trabajo es la de permitir al
usuario explorar de forma grfica (abriendo / cerrando los nodos del
rbol) los objetos de una MIB. Hay que indicar la direccin del agente
del que queremos obtener/modificar informacin en el campo
Remote SNMP agent. Una vez que se ha escrito la direccin, la
exploracin es iniciada pulsando la tecla de retorno de carro o
presionando el botn Contact Remote Agent del men de iconos. Si
contactamos correctamente o no con el agente lo vemos en la parte
inferior de la ventana, en la barra de estado.
Una vez que se ha contactado con un agente, se puede pedir
informacin de los objetos de la MIB primero seleccionndolos y
pulsando el botn de informacin o con el botn derecho del ratn
(obtener el identificador de objeto, el valor del objeto, una vista
amigable de las tablas, etc..). Tambin se puede modificar los valores
de los objetos que son escribibles.
Seleccin de la mib
Cmo su nombre indica esta rea sirve para que el usuario seleccione
las MIBs con la que se va a trabajar(recordar que para que un

67

sistema gestor pueda obtener informacin sobre una mib tiene que

tenerla cargada). El aspecto de esta rea es el siguiente:


Desde la pestaa MIB puedes ver:
1.

Las MIBs que tiene el programa cargadas (en la versin de


evaluacin
slo
puedes
tener
3
mibs
cargadas
simultneamente).
2.
Las MIB de las que dispone el programa pero no estn
cargadas.

Desde esta pestaa podemos cargar las MIBs que necesitemos


mediante las flechas de arriba y abajo (controles de seleccin de
MIB).
Por

ejemplo

probar

cargar

la

mib

HOST-RESOURCES-MIB

(necesitars antes descargar una de las que hay, quita la SNMPv2),


comprobar el antes y el despus en la ventana de exploracin de la
MIB, al igual que con el getif hasta que no cargamos esta MIB no
podemos acceder a los objetos gestionables del tipo, software
instalado, software ejecutndose, capacidad de almacenamiento,
cuentas de usuario, etc.

68

Conctate mediante el mib browser al agente de Windows con el que


trabajamos

anteriormente,

explora

las

distintas

opciones

del

programa para acceder y visualizar la informacin del agente remoto.


Por ejemplo obtn la descripcin del sistema.

69

La tabla de interfaces:

Como se puede apreciar el entorno es mucho ms amigable que el


anterior (tambin es de pago).

70

Remote SNMP Agent Discovery


Esta herramienta permite encontrar todos los agentes que existan
dentro de un rango de direcciones IP.

En la figura se muestra los

agentes SNMP que estn activos en mi red. Si estis en el trabajo


podis probar a introducir un rango de IPs de vuestra red para
comprobar si hay ms agentes SNMP aparte del vuestro.

SNMP Trap ringer console


Esta utilidad permite visualizar los traps que nos envan los agentes
SNMP de nuestra red. Para ello, como ya vimos, tenemos que
configura el agente SNMP para que envi los traps a la IP de nuestro
sistema gestor.

71

Abrir la ventana SNMP trap ringer console. Para probarlo podis


desconectar el cable de la tarjeta de red del ordenador donde est el
agente y volver a conectarla, deberan apareceros dos traps como se
puede apreciar en la siguiente figura. Tambin podis hacer algn set
o get con un nombre comunidad errneo y os llegar un trap de fallo
de autentificacin.
En la versin de evaluacin slo podris visualizar 5 traps (salvo que
cerris y volvis a abrir la aplicacin).

2
COMPILAR LAS MIBS
Si necesitis una MIB que no venga con el software tendris que
descargarla de la pgina del fabricante y antes de cargarla al sistema
hay que transformarla a un formato especfico para las mibs que
utiliza mg-soft, denominado smidb, a esta operacin se le denomina
compilar la mib.
Descargar una mib de :
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml

72

Frecuentemente para compilar una MIB son necesarios objetos


definidos en otras MIBs, por lo que yo os he bajado ya dos MIBs de
Cisco para el que no quiera tener que buscar. Los tenis en la
plataforma, fichero cisco-mibs.
Desde esta pgina se pueden acceder a las mib desarrolladas por
cisco ordenadas por producto y versin del sistema operativo.
Abrir el fichero para seguir familiarizndoos con la sintaxis del
lenguaje y la estructura de los objetos.
Compilar las mib.
Desde el men: Action-> Run mib compiler.
Una vez arrancado el mib compiler:

Abrir el fichero CISCO-SYSLOG-MIB.my


Compilar, os pedir la ubicacin del otro fichero.
Guardarlos a la carpeta que aparece por defecto.

Volver a mib browser, cargar en el mib browser la mib CISCO-SMI y


CISCO-PROCESS-MIB, para actualizar la vista de las mib disponibles
para cargar: Action ->refresh mib modules.
Comprobar, desde la pestaa de navegacin, que tenis disponibles
las MIBs. Recordar que las MIBS privadas se cargan debajo del nodo
private->enterprises.
No podris obtener informacin de estos objetos ya que nuestro
agente no est gestionando un router (no contempla esos objetos). Si
tenis algn dispositivo distinto de un ordenador gestionable por
SNMP podis probar a descargar sus MIBS y obtener informacin.

73

Para quin est interesado en profundizar ms en el funcionamiento


de MG-SOFT MIB BROWSER tiene a su disposicin el manual de
ayuda en la plataforma y en la pgina web de la herramienta. Por
ejemplo se pueden configurar perfiles de varios agentes para no
tener que configurarlo cada vez que accedamos a ellos:

Otra herramienta te permite configurar mltiples operaciones (get,


getnext, set, trap, etc) y puedes ejecutarlas en un agente concreto
con un simple click. El estado de las operaciones se muestra en el
panel de la izquierda y los valores obtenidos en la parte izquierda de
abajo. Esta herramienta es muy til para tareas repetitivas.

74

Tambin tiene disponible una herramienta (Performance Graph


window) que te permite obtener grficos de los objetos numricos.

75

Existen muchas otras herramientas para explorar y trabajar con las


MIBS: ManageEngine free MibBrowse (tambin tienen versin de
pago), NetDecision MIB Browser (de pago), iReasoning MIB browser
(tiene una versin gratuita para uso no profesional),
En SimpleWeb (http://www.simpleweb.org/), es una pgina dedicada
a la gestin de red centrada especialmente en SNMP, tenis una
seccin de software de gestin (muchos de ellos relacionados con
SNMP) dividido en de libre uso y con licencia de pago.
Por ltimo, mencionar que, en los prximos temas veremos otras
herramientas de monitorizacin como Nagios, Cacti Zabbix, que
adems de incorporar gestin por SNMP permite otras formas de
monitorizacin de datos.

76