Monday, September 12, 2011

SNMP (Protocolo Simple de Administración de Red - Simple Network Management Protocol)

Como una araña en su red, una estación de administración de red SNMP tiene la tarea de monitorear un grupo de dispositivos en una red, dichos dispositivos administrados son servidores, enrutadores, hubs, switches, estaciones de trabajo, impresoras, etc; los cuales poseen un software llamado Agente de gestión (Managment Agent) que proporciona información de su estado y ademas permite su configuración.
  

SNMP hace parte de la suite de protocolos de Internet (TCP/IP) y está compuesto por un conjunto de normas de gestión de redes, incluyendo un protocolo de capa de aplicación, un esquema de base de datos, y un conjunto de objetos de datos. SNMP expone la gestión de datos en forma de variables que describen la configuración del sistema administrado. Estas variables pueden ser consultadas y configuradas por  medio de sus aplicaciones de gestión. 

Algunos de los objetivos SNMP
  • Gestión, configuración y monitoreo remoto de los dispositivos de red
  • Detección, localización y corrección de errores
  • Registro y estadísticas de utilización
  • Inventario y Topología de red
  • Planificación del crecimiento de la red.
Componentes SNMP
Una red con aplicaciones SNMP posee al menos uno o varias estaciones de Administración, cuya función es supervisar y administrar un grupo de dispositivos de red por medio de un software denominado NMS (Network Management System- Sistema de gestión de redes), este se encarga de proporciona los recursos de procesamiento y memoria requeridos para la gestión de la red administrada, la cual a su vez puede tener una o más instancias NMS.
El dispositivo administrado es un nodo de red que implementa la interfaz SNMP, este tambien intercambia datos con el NMS y permite el acceso (bidireccional o unidimensional -solo lectura) a la información específica del nodo. Cada dispositivo administrado ejecuta permanentemente un componente de software llamado agente, el cual reporta y traduce información a través de SNMP con la estación de administración.
En esencia, los agentes SNMP exponen los datos de gestión a las estaciones de administración en forma de variables organizadas en jerarquías, dichas jerarquías junto con  otros metadatos (como el tipo y la descripción de las variables), son descritos en una Base de Gestión de Información (MIB Managment Information Base).El protocolo también permite ejecutar tareas de gestión activa, como la modificación y la aplicación de una nueva configuración de forma remota, a través de la modificación de dichas variables. 

OID Object Identifier
Es el identificador único para cada objeto en SNMP, que proviene de una raíz común en un namespace jerárquicamente asignado por la IANA, Los OIDs están organizados sucesivamente para identificar cada nodo del árbol MIB desde la raíz hasta los nodos hojas.

MIB Management  Information Base

Base de datos con información jerárquicamente organizada en forma de arbol con los datos de todos los dispositivos que conforman una red. Sus principales funciones son: la asignación de nombres simbólicos, tipo de datos, descripción y parámetros de accesibilidad de los nodos OID.

PDU (Protocol Data Unit - Unidad de datos del Protocolo)
SNMP utiliza un servicio no orientado a conexión como UDP (User Datagram Protocol) para realizar las operaciones básicas de administración de la red, especialmente el envío de pequeños grupos de mensajes (denominados PDUs) entre las estaciones de administración y los agentes. Este tipo de mecanismo asegura que las tareas de gestión no afectan el rendimiento global de la red.  SNMP utiliza comúnmente los puertos 161 UDP para obtener y establecer mensajes y 162 UDP para capturar mensajes y traps.

 =============================================================
| Tipo de  | ID de     | ... | ... |  ... Variables  ...      |
| PDU      |Petición   | ... | ... |        MIB               |
 =============================================================

Petición y Respuesta GET (SNMPv1)
La estación de administración hace UNA petición al agente para obtener el valor de una o muchas variables del MIB, las cuales se especifican mediante asignaciones (los valores no se utilizan). el agente recupera los valores de las variables con operaciones aisladas y envía una respuesta indicando el éxito o fracaso de la petición. Si la petición fue correcta, el mensaje resultante contendrá el valor de la variable solicitada.

Petición  GETNext


La estación de administración hace una petición al agente para obtener los valores de las variables disponibles. El agente retorna una respuesta con la siguiente variable según el orden alfabético del MIB. Con la aplicación de una petición GetNextRequest es posible recorrer completamente la tabla MIB si se empieza con el ID del Objeto 0. Las columnas de la tabla pueden ser leídas al especificar las columnas OIDs en los enlaces de las variables de las peticiones.

Petición  GETBulk (SNMPv2)

La estación de administración hace una petición al agente para obtener  múltiples iteraciones de GetNextRequest. El agente retorna una respuesta con múltiples variables MIB enlazadas. Los campos non-repeaters y max-repetitions se usan para controlar el comportamiento de las respuesta.





Set-Request & -Response
La estación de administración hace una petición al agente para cambiar el valor de una variable, una lista de variables MIB o para la configuración de los agentes. El acceso a las variables se especifica dentro de la petición para que el agente cambie las variables especificadas por medio de operaciones atómicas., despues se retorna una respuesta con los valores actualizados de las variables preestablecidas y  con los valores de las nuevas variables creadas. Así mismo existen conjunto de parámetros de configuración (por ejemplo, direcciones IP, switches, ...)

Notificaciones y Trampas(Traps)
Son mensaje SNMP generados por el agente que opera en un dispositivo monitoreado, estos mensajes no son solicitados por la consola y están clasificados según su prioridad  (Muy importante, urgente,... ) . Estas notificaciones se producen cuando el agente SNMP detecta un cambio de parámetros en las variables MIB. Estos mensajes son utilizados por los sistemas de alerta sin confirmación. Los tipos estándar de trampas indican los siguientes eventos:
  • (0) Coldstart:  El agente se ha reiniciado
  • (1) Warmstart: La configuración del agente ha cambiado.
  • (2) Linkdown: Alguna interfaz de comunicación está fuera de servicio (inactiva)
  • (3) Linkup: Alguna interfaz de comunicación está en servicio (activa).
  • (4) Authenticationfailure: El agente ha recibido una solicitud de un NMS no autorizado
  • (5) EGPNeighborLoss: Un equipo, junto a un sistema donde los routers están utilizando el protocolo EGP, está fuera de servicio;
  • (6) Enterprise:  Incluye nuevas traps configuradas manualmente por el administrador de red.
Versiones SMNP
Las versiones más utilizadas son la versión SNMPv1 y SNMPv2. El SNMPv3 última versión tiene cambios importantes con relación a sus predecesores, sobre todo en temas de seguridad, sin embargo, no ha sido ampliamente aceptada en la industria.
 
SNMPv1 
Esta es la versión inicial y la mas utilizada, principalmente debido a la simplicidad del esquema de autenticación y a las políticas de acceso que utiliza el agente SNMP para determinar cuales estaciones de administración pueden acceder a las variables MIB. Una política de acceso SNMP es una relación administrativa, que supone asociaciones entre una comunidad SNMP, un modo de acceso, y una vista MIB.
  • Una comunidad SNMP es un grupo de uno o más dispositivos y el nombre de comunidad (cadena de octetos que una estación de administración debe agregar en un paquete de solicitud SNMP con fines de autenticación).
  • El modo de acceso especifica como se accede a los dispositivos de la comunidad se les permite con respecto a la recuperación y modificación de las variables MIB de un agente SNMP específico. El modo de acceso: ninguno, sólo lectura, lectura-escritura o sólo escritura. 
  •  Una vista MIB define uno o más sub-árboles MIB a los cuales una comunidad SNMP específica puede tener acceso. La vista MIB puede ser el árbol MIB o un subconjunto limitado de todo el árbol MIB.
Cuando el agente SNMP recibe una solicitud de una estación de administración, este verifica el nombre de la comunidad a la que pertenece y la dirección IP para determinar si el host solicitante en realidad  es miembro de la comunidad que dice pertenecer. El agente SNMP determina si concede el acceso hasta las variables MIB según lo defina la política de acceso asociada a esa comunidad. Si todos los criterios son verificados y se cumplen. De lo contrario, el agente SNMP genera una captura authenticationFailure o devuelve el mensaje de error correspondiente a la máquina solicitante.  
Formato del mensaje SNMP
 ======================================================================
| Versión    | Nombre de Comunidad | ...           PDU   ...           |
| (Integer)  | (Octet Str.)        |             (Sequence)            |
 ======================================================================
  El diseño de esta versión fue realizado en los años 80, cuando la prioridad era atender la  demanda de protocolos generado por el rápido crecimiento de las redes, así que es de esperarse que nadie se haya preocupado por los problemas de autenticación y de seguridad, siendo estas sus principales falencias. La autenticación de los clientes se realiza sólo por la cadena de octetos de Comunidad, en efecto tenemos un tipo de contraseña, que se transmite en texto plano.

SNMPv2
Incluye mejoras en rendimiento, seguridad, confidencialidad y comunicación entre estaciones de administración. Introduce GetBulkRequest, una alternativa a GetNextRequests iterativo para la recuperación de grandes cantidades de datos de administración en una sola solicitud. Sin embargo, no fue ampliamente aceptado debido a su complejidad y a la poca compatibilidad con los  NMSs de la versión anterior; sin embargo este inconveniente se soluciono utilizando agentes proxy y NMS bilingües para ambas versiones de NMS; adicionalmente se desarrolló la versión SNMPv2c un poco mas simple, pero sin embargo mas segura que la primera versión.

SNMPv3
Proporciona importantes características de seguridad y configuración remota:
  • Autenticación: Firmas digitales MD5 y SHA1 basadas en usuarios garantiza que el mensaje proviene de una fuente segura.
  • Confidencialidad: Cifrado de paquetes DES y AES para garantizar mayor privacidad
  • Integridad: Asegurar que el paquete no ha sido alterado en tránsito, incluye un mecanismo opcional de protección de paquetes reenviados. 
 Mas Información sobre herramientas SNMP aqui
References
http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol
http://h18000.www1.hp.com/products/quickspecs/10757_div/10757_div.HTML
Class Slides: N_Netzwerk-Management SNMP.pdf

Si tienes información adicional sobre este tema, tus comentarios son bienvenidos.

No comments: