Single Network Management Protocol - SNMP ¿Qué es SNMP? SNMP (Single Network Management Protocol) es un estándar de administración de red. Proporciona un método de gestión de nodos de red (Servidores, estaciones de trabajo, enrutadores, puentes y concentradores) desde un NMS (Network Management Station). Utiliza una estructura de agentes SNMP que encontramos en todos los elementos que administra. Los gestionados y los que gestionan. El NMS es el que conecta con estos agentes instalados en cada uno de los elementos que van a ser administrados. Toda la información de los equipos está en una base de datos MIB (Management Information Base). Esta base de datos con estructura de árbol es recogida por el agente SNMP y comunicada al NMS. La ampliación más importante de SNMP fue RMON que nos permite monitorizar globalmente una subred, no sólo sus dispositivos. Utiliza los puertos 161, 162 y el protocolo UDP. Los agentes escuchan por el puerto 161 y las estaciones gestoras escuchan los Traps en el puerto 162. Componentes básicos de SNMP En cualquier red administrada con el protocolo SNMP encontraremos siempre 3 componentes básicos: - Dispositivos administrativos: Elementos de una red administrada que contienen un agente SNMP. Tales como routers, switches, servidores de acceso, computadores, impresoras, hubs, bridges. - Agente: Componentes software que se ejecuta en el dispositivo a gestionar, y el que gestiona. Es un elemento pasivo y no origina mensajes si no que responde a las peticiones de los NMS’s. Únicamente iniciará la comunicación cuando deba comunicar una alarma porqué el sistema se ha reiniciado o por fallos de seguridad en el sistema. - NMS: Ejecuta aplicaciones que supervisan y controlan a los dispositivos administrados mediante SNMP. Estos NMS’s conectan con los agentes SNMP para proporcionar volumen de recursos de procesamiento y memoria requeridos para la administración de la red. Cuando un NMS envía una solicitud el agente devuelve la información solicitada desde el MIB. - Base de información de gestión (MIB): Los recursos de la red que se pueden gestionar se presentan mediante objetos aunque básicamente son variables. La MIB es básicamente una colección de estos objetos. Dispositivos que se pueden gestionar mediante SNMP Ordenes básicas del estándar SNMP Mostramos los tipos de mensaje que existen en la comunicación entre el agente y el NMS. GetRequest: Mensaje de solicitud SNMP básico. Enviado por un NMS, solicita información de una sola entrada MIB a un agente. GetNextRequest: Tipo extendido de mensaje que se utiliza para ver la jerarquía completa de objetos de administración. Se devuelve el valor del siguiente objeto. SetRequest: Es un mensaje para actualizar un valor en el MIB, siempre que exista acceso de lectura. GetBulkRequest: Solicitud de transferencia de datos tan grande como sea posible. Minimiza el número de intercambios requeridos para obtener una gran cantidad de información. Solo utilizado en versiones 2 y 3 de SNMP. Trap: Mensaje no solicitado por un NMB que envía el agente cuando detecta cierto evento. El tipo de mensaje que inicia el agente cuando se produce una alarma. Formato de un mensaje SNMP Versión 20 bytes Comunidad PDU (GetRequest...) 8 bytes - Campo Versión: Toma valores en función de la versión de SNMP - Campo Comunidad: Se define en el agente y en este mismo se le asigna un perfil a cada comunidad para determinar si tiene permiso de modificación e incluso lectura sobre las variables de la MIB. - Campo PDU: Existen a modo genérico 2 tipos de formatos en las PDU SNMP, aunque luego veremos que se dividen en más tipos. El primero de estos 2 tipos es general y común a casi todas ellas, y el segundo tipo corresponde a la PDU Trap. Cabe recordar que las consultas las realiza el NMS y el Trap es la única que realiza el agente por iniciativa propia por tanto es comprensible que exista un tipo de PDU para cada una de ellas. Tipos de PDU: Especifican el tipo de mensaje y los valores posibles son: Tipo PDU 0 1 Nombre GetRequest GetNextRequest 2 3 4 SetRequest Respone Trap Identificación de la petición: Se utiliza para relacionar peticiones y respuestas. SNMP puede hacer frente a PDU’s duplicadas por un servicio de transporte inseguro como UDP gracias a que cada una de estas peticiones va identificada por el emisor. Estado de error: Se emplea para indicar que ha ocurrido una anomalía mientras se procesaba una consulta existiendo valores diferentes para cada tipo de error. Tiene diferentes valores tales como: Tipo de error 0 1 2 3 4 5 Significado No hay error Demasiado grande No existe esa variable Valor incorrecto El valor es de solo lectura Error genérico Índice de error: Se utiliza cuando el campo estado de error es diferente de 0 y tiene como objetivo proporcionar información adicional. Lista de variables: Es una lista de nombres de variables con sus valores correspondientes. Existe tanto en las preguntas como en las respuestas. Estructura de la base de información de gestión - MIB MIB es una base de datos en forma de árbol, obtenido una jerarquía para cada uno de los objetos de la base de datos, cada uno de estos tiene un numero identificador que lo identifica dentro de este árbol. Como podemos observar en la captura hay dos directorios importantes ya que de estos cuelga toda la información importante para la monitorización del protocolo. “SNMPv2” aquí se encuentra la información genérica del elemento, fabricante, modelo , etc…, podemos observar que su ubicación es .1.3.6.1.6. En cambio “private” hay información extra que el fabricante proporciona, dependiendo el producto puede ser más completa o menos, esta es totalmente para uso corporativo donde el fabricante nos ofrece el software de gestión para pode acceder a dicho directorio. Aplicaciones del estándar SNMP a diferentes escenarios SNMP puede utilizarse de varias maneras: - Para configurar dispositivos remotos: desde el NMS configuramos los equipos. - Para supervisar el rendimiento de la red: se puede hacer un seguimiento de la velocidad de la red. - Para detectar fallos de red: Puede llevar una alarma al NMS cuando: - o Se apague un dispositivo. o Se detecte un error de enlace con un enrutador. Para auditar el uso de la red: Se puede auditar el uso de los equipos por sus usuarios. Simulación del protocolo SNMP En este apartado haremos una pequeña simulación con el protocolo SNMP para eso necesitamos un software de gestión y un elemento que monitorizar. La aplicación que utilizaremos es “iReasoning MIB Browser Personal Edition”, está tiene una versión de prueba de 30 días. Este punto hay que remarcarlo nosotros realizaremos una prueba, por lo tanto el software de gestión nos era un poco igual cual fuera, cualquiera aplicación gratuita hubiera echo la función pero esto en un entorno corporativo es muy diferente. Aquí interviene otro factor, la marca del hardware instalado, estos productos incorporan en una parte de su MIB datos específicos del fabricante, estos nos dotaran de datos que aran mucho más eficiente nuestra monitorización, por eso siempre se recomienda que todo el hardware instalado sea del mismo proveedor, esta MIB especifica solo puedes acceder a ella con la aplicación de gestión propietaria de dicho fabricante. El elemento ha monitorizar será un router CISCO modelo c2691. El router la virtulizaremos con la aplicación GNS3, este punto podríamos haber utilizado el cliente que incorpora Windows pero hemos preferido simular un elemento externo de donde estaba ubicado el cliente SNMP. Lo primero que haremos es instalar la aplicación y crear la topología con GNS3. La topología es muy simple, solo necesitaremos un router conectador a la NIC de nuestro ordenador. La configuración del router es muy simple, solo necesitamos configurar la interface Ethernet con una IP del rango de nuestra red, en este caso utilizaremos una 172.16.0.10/16 y activar el cliente SNMP. Para eso hemos utilizado la siguientes comandas: Router> enable Router# configure terminal Router(config)# interface FastEthenert 0/0 Router(config)# ip address 172.16.0.10 255.255.0.0 Router(config)# no shutdown Router(config)# exit Router(config)# snmp-server community public RO Router(config)# snmp-server community private RW Router(config)# exit Router# show running-config | include snmp ;Verdificar ativación SNMP Una vez configurado el router con el servició SNMP empezaremos ha enviar algunas comandas al router desde la aplicación pero previamente haremos un vistazo general al software donde veremos todos los parámetros comentados anteriormente. Captura de la aplicación iReasoning MIB Browser Como podemos observar en la captura hay varios campos señalados: - Address: La dirección IP del agente en este caso el router . - Operation: Una lista de operaciones básicas, para pode gestionar el contenido de la MIB. - SNMP MIBs: Aquí podemos visualizar de una forma la distribución de los directorios de la MIB del router. - Result Table: Este apartado aparecerá el contenido de la petición echa, en este caso el objeto es sysDescr del directorio system. Vistos los elementos básicos de la aplicación procederemos ha hacer una peticion. System sysDescr ubicada en .1.3.6.1.2.1.1, obtenemos la siguiente información. Value: Cisco Internetwork Operating System Software IOS (tm) 2600 Software (C2691-JK9O3S-M), Version 12.2(15)T17, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2005 by cisco Systems, Inc. Compiled Fri 12-Aug-0 Type: OctetString Observamos que estamos utilizando una IOS genérica de la serie 2600 de CISCO versión 12.2, para el router C2691, compilada el viernes 12 de agosto del 2000. La información subministrada es del tipo OctetString (texto). Vista la petición vamos ha ver a nivel de trama la información para captura la trama utilizaremos la aplicación Wireshark. Como se observa en la captura la petición “get-request” se ha realizado desde ordenador 172.16.0.4 hacia el agente 172.16.0.10 el cual a respondido con “get-response”. Ahora vamos ha entrar con más detalle. La petición al objeto 1.3.6.1.2.1.1.1.0 esta petición se realizada por el puerto UDP 54374 hacia el 161, estamos utilizando la versión 1 de SNMP. En la respuesta podemos observar que no habido ningún error, una apartado significativo que no hemos comentado en la parte anterior esta petición va dirigida a la comunidad publica. Conclusiones Bibliografía: http://webcache.googleusercontent.com/search?q=cache:DzufnCedgKIJ:personal.telefonica.te rra.es/web/lmp/SMNP/SNMP.doc+NMS+en+SNMP&cd=1&hl=es&ct=clnk&gl=es&client=firefox -a http://es.wikipedia.org/wiki/Simple_Network_Management_Protocol#Componentes_b.C3.A1 sicos http://www.ireasoning.com/download.shtml http://www.gns3.net/ http://www.wireshark.org http://www.luteus.biz/Download/LoriotPro_Doc/V4/LoriotProV4Doc/C3Introduction_to_Network_supervision/C3-E5_MIB.htm