Spiga

Introducción a SNMP

¡Hola!

Durante esta semana, voy a dedicar una serie de entradas a estudiar el protocolo SNMP, Simple Netowork Management Protocol - Protocolo de gestión simple de la red, basándonos en el genial artículo de Debby Koren, "Dean" RAD University.

Un repaso histórico

Antes de la aparición de SNMP, si querías gestionar un conjunto de dispositivos de red, debías tener estaciones dedicadas de gestión, quizás con varias ventanas para diferentes tipos de información (estadísticas, actividad, etc) que eran específicas de cada fabricante. De hecho, era raro que un fabricante tuviera una estación de gestión común para todos sus dispositivos.

No existía un protocolo común, sino una gran cantidad de protocolos propietarios. SNMP se desarrolló para tratar de resolver este problema, ofreciendo un protocolo de gestión de la red estandarizado de forma que se pudiera emplear una tecnología común para intercambiar información de forma consistente entre los diferentes dispositivos de la red, aunque fueran de fabricantes distintos.

Desde que se publicó el primer RFC de SNMP hace más de 20 años, SNMP ha sido actualizado varias veces y se ha convertido en un estándar que se implementa en prácticamente todos los dispositivos de red. Aunque se diseñó pensando en elementos de Internet, se pueden encontrar todo tipo de dispositivos que lo soportan, como equipos de aire acondicionado. También se puede usar SNMP para gestionar sistemas software. SNMP puede utilizarse para monitorizar, configurar y obtener información de dispositivos o programas usando impresionantes interfaces gráficas en equipos de gestión carísimos, o usando un software de gestión gratuito o, incluso, desde la CLI.

Componentes y Arquitectura

Hay 4 componentes básicos en SNMP:

  • Nodos gestionados o elementos de la red, que cuentan con un agente (agent).
  • Como mínimo, una estación de gestión de la red (NMS)
  • Información de gestión
  • Un protocolo de gestión de la red, que usan el NMS y los agentes para intercambiar la información de gestión
Un nodo gestionado puede ser cualquier sistema, incluyendo un sistema software, que tiene algún tipo de conectividad de red. De hecho, al comienzo del desarrollo de SNMP, con el objetivo de demostrar la versatilidad del protocolo, la compañía Epilogue mostró cómo se podía usar SNMP para gestionar una tostadora.

El agente que contiene cada nodo de gestión implementa el protocolo SNMP. El agente es capaz de enviar, recibir y parsear mensajes SNMP. El agente interactúa con el dispositivo físico y obtiene la información necesaria para responder las consultas del NMS y para enviar mensajes trap (mensajes de notificación). El agente también es capaz de realizar cambios en la configuración del dispositivo, siguiendo las instrucciones de las peticiones del NMS. Los agentes, por tanto, tienen que contar con una configuración de control de acceso, para gestionar los privilegios de lectura y escritura.

Una estación de gestión de la red (NMS) es un host que es capaz de enviar peticiones SNMP y de recibir y parsear respuestas SNMP y mensajes trap hacia/desde los nodos gestionados. Existen muchos NMS software comerciales que ofrecen muchas funcionalidades, como la capacidad de "descubrir" los nodos gestionables de la red, mostrar gráficamente los nodos en un mapa de la red, usar iconos para cada tipo de nodo, mostrar información del estado, estadísticas, etc.

El tercer componente de SNMP es la información de gestión, que es, evidentemente, la información que intercambian los agentes y el NMS. Usaremos el término objeto gestionado para referirnos a una unidad de información de gestión. ¡Ojo! No hay que confundir un objeto gestionado con un dispositivo gestionado, no es lo mismo. Un objeto gestionado es un concepto abstracto, es la definición de algún tipo de información. Por ejemplo, supongamos que tenemos un dispositivo que puede cambiar de color; podríamos definir un objeto gestionado llamado "color" y su definición correspondiente sería "el color del dispositivo".

A una colección de objetos gestionados relacionados, que se definen en un documento, se le llama módulo MIB (Management Information Base). Veremos que hay algunos módulos MIB estándar, a los que se les llama simplemente MIBs, que todos los dispositivos SNMP deben soportar. Hay otros módulos MIB estándar que deberían ser soportados sólo por dispositivos para los que el MIB es relevante, y otros MIB privados, específicos para un determinado fabricante, que contienen definiciones de objetos gestionados para sus equipos.

Por ejemplo, todos los dispositivos gestionables por SNMP deben contar con cierta información, como una dirección IP, para que se considere que cumplen con el protocolo SNMP; este tipo de información debería estar definida en un MIB estándar que todos los dispositivos deben soportar. Si el dispositivo tiene una interfaz Ethernet, entonces debería ser capaz de ofrecer cierta información, como el número de colisiones, y esta información se define en un MIB Ethernet, que todos los dispositivos con una interfaz Ethernet deben soportar. Por último, un fabricante de switches, por ejemplo, podría ofrecer una funcionalidad que hace sus dispositivos más atractivos a los clientes: el switch puede cambiar de color para mimetizarse con el armario. El fabricante tiene que ofrecer, por tanto, un MIB privado que contendría un objeto gestionado para este propósito.

Por tanto, los MIBs contienen los objetos gestionados que representan los recursos, la configuración, el estado, etc, de un sistema. Los objetos gestionados tienen valores asignados para representarlos, pero no son el propio valor. Por ejemplo, siguiendo con el ejemplo del objeto gestionado "color", su definición sería "el color del dispositivo" y su valor asignado podría ser 0 para negro, 1 para rosa, 2 para gris, 3 para verde, etc. En este caso, el objeto sería un entero, y el valor del entero representaría el color. Sería precisamente el valor del objeto gestionado lo que sería monitorizado y modificado por un NMS.

Y esto nos lleva al último componente de la arquitectura de gestión: el protocolo de gestión de la red. Pero, espera un momento, ¿no esto lo que llamamos 'SNMP'? ¿No es SNMP el protocolo de gestión de la red? SNMP es eso y más cosas, ya que define los MIBs, la arquitectura y el protocolo de intercambio de mensajes. A este último aspecto, el protocolo de intercambio de mensajes entre los nodos gestionados y el NMS, incluyendo el tipo de los mensajes y los formatos, es al que se llama protocolo de gestión de la red.

Veremos en la próxima entrada que hay varios tipos de mensajes SNMP, que permiten al NMS leer y/o escribir información, y permiten a los agentes enviar mensajes trap para notificar o alarmar de una cierta situación.


Arquitectura de gestión


SNMP emplea una arquitectura cliente-servidor tal y como se muestra en la figura siguiente:



Como es el NMS el que inicia las peticiones SNMP, mientras los agentes en los diferentes dispositivos gestionados (router, switch, servidor y tostadora) esperan de forma pasiva estas consultas, podemos decir que el NMS es el cliente y los agentes los servidores. Los agentes escuchan peticiones en el puerto UDP 161.

Sin embargo, SNMP contiene también el protocolo para la gestión de traps. Como ya se ha mencionado, traps son mensajes no solicitados por el NMS que se envían por los agentes para informar de eventos poco usuales o para alarmar sobre una cierta situación. Como el agentes es quien inicia la conexión, en este caso los agentes son los clientes y los NMS los servidores, que escuchan en el puerto UDP 162.


En las próximas entradas seguiremos hablando de SNMP, profundizando en los MIBs, los mensajes de gestión y la seguridad del protocolo.

¡Un saludo!

0 comentarios: