D-SOP-06 / Protocolo SNMP

El Protocolo Simple de Administración de Red o SNMP (del inglés Simple Network Management Protocol) es un protocolo de la capa de aplicación del modelo TCP/IP 1.

Su utilidad en la administración de redes proviene del hecho de que permite que la información sobre dispositivos conectados a la red se recopile de manera estandarizada en una gran variedad de tipos de hardware y software.

Este protocolo les permite a los administradores de red supervisar el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento.

SNMP surge para resolver los problemas de administración de redes TCP/IP, debido a que el crecimiento apresurado y desmesurado de este tipo de redes ha hecho que la administración y gestión de estas se convierta en una labor intensa.

1 ¿En qué consiste? TCP/IP es un conjunto de protocolos que permiten la comunicación entre los ordenadores pertenecientes a una red. La sigla TCP/IP significa Protocolo de control de transmisión/Protocolo de Internet. Proviene de los nombres de dos protocolos importantes incluidos en el conjunto TCP/IP, es decir, del protocolo TCP y del protocolo IP. Fuente: Modelo TCP/IP - https://es.wikipedia.org

Valor agregado

Para administrar una red, los administradores necesitan información al respecto. Aquí es donde SNMP tiene su mayor valor. Reúne todos los datos de muchos dispositivos y permite poner estos datos en contexto, lo que nuevamente permite rastrear problemas, tomar decisiones basadas en datos reales y tomar el control cuando sea necesario.

Componentes Básicos de SNMP

La arquitectura de administración de la red propuesta por el protocolo SNMP se basa en tres elementos principales:

MANAGED DEVICES (MD)

Dispositivos administrados

Un MD es un nodo de red que contiene un agente SNMP y que se encuentra en una red administrada. Los dispositivos administrados colectan y almacenan información y hacen que esta información esté disponible al NMS ́s utilizando el SNMP.

AGENTS

Agentes

Un agente es un módulo de software de administración de red que reside en un dispositivo administrado. Un agente posee un conocimiento local de información de administración (memoria libre, número de paquetes IP recibidos, rutas, etcétera), la cual es traducida a un formato compatible con SNMP y organizada en jerarquías.

SISTEMA ADMINISTRADOR DE RED (NMS)

Un NMS ejecuta aplicaciones que monitorean y controlan MD´s. Los NMS ́s proporcionan la mayor parte de recursos de procesamiento y memoria requeridos para la gestión de la red. Uno o más NMS ́s deben existir en cualquier red administrada.

Una red normalmente tiene al menos una computadora o servidor que ejecuta un software de monitoreo. Es el NMS. Una red también más probable que tenga algunos, o muchos, o incluso realmente muchos, otros dispositivos: conmutadores, enrutadores, estaciones de trabajo, bastidores de servidores, impresoras, máquinas de café, o cualquier otra cosa que necesita ser analizada. Son los dispositivos administrados.

Los mensajes SNMP se envían y reciben entre los denominados administradores y agentes. Por lo general, el administrador SNMP en la red se instala en la entidad administradora y los agentes SNMP se instalan en los dispositivos administrados.

Comandos Básicos SNMP

Los MD son supervisados y controlados utilizando 4 comandos SNMP básicos:

READ

El comando READ es utilizado por un NMS para supervisar los MD.

WRITE

El comando WRITE es utilizado por un NMS para controlar los MD.

TRAP

El comando TRAP es utilizado por los Managed Devices para reportar eventos de forma asíncrona a los Network Management Systems (NMS). Cuando cierto tipo de eventos ocurren, un MD envía un TRAP hacia el NMS.

OPERACIONES DE RECORRIDO (TRAVERSAL OPERATIONS)

Las operaciones de recorrido o Traversal Operationsson utilizadas por los NMS para determinar cuáles variables son soportadas por los MD y obtener secuencialmente información en una tabla de variables, tal como una routing table.

Tipos de mensajes SNMP

Existen diferentes tipos de mensajes SNMP que se pueden usar para configurar la supervisión de la red a través de SNMP:

GetRequest: se trata del mensaje que envía un administrador SNMP para solicitar datos, y es el que se usa con mayor frecuencia. El dispositivo objetivo devuelve el valor solicitado con un mensaje de respuesta.

GetNextRequest: el administrador de SNMP puede enviar este tipo de mensaje para descubrir qué información está disponible desde el dispositivo. Al comenzar en OID 0, el administrador puede continuar enviando una solicitud de los siguientes datos disponibles hasta que no haya más. De esta manera, los usuarios pueden descubrir todos los datos disponibles en un determinado dispositivo, incluso aunque no hayan tenido ningún conocimiento previo del sistema o dispositivo de respuesta.

GetBulkRequest: aparece por primera vez en SNMP 2, y se trata de una versión más nueva y optimizada de GetNextRequest. La respuesta solicitada contendrá tantos datos como permita la solicitud. Esencialmente, es una forma de efectuar varias GetNextRequest a la vez, permitiendo a los usuarios generar una lista de todos los datos y parámetros disponibles.

SetRequest: es un comando iniciado por el administrador para establecer o modificar el valor de un parámetro a través de SNMP en el dispositivo o sistema del agente. Este tipo de mensaje se puede usar para administrar o actualizar la configuración u otros ajustes. ¡Pero hay que tener cuidado! Un SetRequest incorrecto podría afectar seriamente a los sistemas y las configuraciones de red.

Response: la respuesta es el mensaje que un agente de dispositivo envía tras una solicitud del administrador. Cuando se envía en respuesta a un tipo GetRequest, el paquete contiene los datos o valores solicitados. En el caso de un SetRequest, el paquete responde indicando el nuevo valor establecido a modo de confirmación de que el SetRequest se ha completado con éxito.

Trap(v2): el agente SNMP envía (“expulsa”) una trampa sin que el administrador lo haya solicitado. De hecho, las trampas se envían bajo determinadas condiciones, como en caso de un error o al sobrepasar un umbral preestablecido. Las trampas son una excelente idea en términos de supervisión proactiva, pero si los usuarios desean beneficiarse de su uso, es posible que primero tengan que configurarlas con la ayuda del administrador de SNMP.

InformRequest: este tipo de mensaje se agregó en SNMP v2 para dar al administrador la posibilidad de confirmar que ha recibido un mensaje de captura de un agente. Algunos agentes están configurados de modo que sigan enviando una trampa hasta recibir la confirmación de un mensaje de informe.

Report: los mensajes Report (“informe”) necesitan SNMP v3 y permiten que un administrador de SNMP determine qué tipo de problema detectó el agente SNMP remoto. Dependiendo del error detectado, el motor de SNMP puede intentar enviar un mensaje corregido. De no ser posible, puede enviar una indicación del error a la aplicación en cuyo nombre se emitió la solicitud SNMP fallida.

¿Qué son los OID y MIB?

OID

OID significa Object Identifier. Los OID identifican de forma exclusiva los objetos administrados que se definen en los archivos MIB.

La jerarquía de objetos (OID) generalmente se representa como un árbol con diferentes niveles desde la raíz hasta las hojas individuales. Cada OID tiene una dirección que sigue los niveles del árbol OID.

Hay dos tipos de objetos: escalares y tabulares. Los objetos escalares definen una única instancia de objeto, mientras que los objetos tabulares definen múltiples instancias de objeto relacionadas agrupadas en tablas MIB.

MIB

MIB representa Mangement Information Base, y se refiere a un formato independiente para la definición de información de gestión. En otras palabras, las MIB contienen OID de una manera bien definida. En una MIB, cada objeto obtiene su definición que define sus propiedades dentro del dispositivo a administrar. Se accede a los objetos utilizando el protocolo SNMP.

¿Por qué se necesitan OID y MIB?

Cada parte de la información de administración que se puede obtener a través de SNMP se trata individualmente por su OID, ya sea el uso de la memoria de un servidor, el tráfico de un switch o los archivos en cola de una impresora. Esta propiedad es la razón por la cual se necesitan los OID, pues ayudan a los administradores a identificar y supervisar los objetos que tienen en su red y, de ese modo, lograr que la supervisión sea significativa.

Para que se comuniquen con éxito la entidad administradora y un dispositivo administrado en las redes, ambos necesitan conocer qué OID están disponibles.

Esta es la razón por la cual existen las MIB, y por qué las necesitan los administradores del sistema. Todos los objetos que hay que supervisar en un dispositivo dado deben conocer las MIB de dicho dispositivo, por lo cual los administradores deben asegurarse de que todas las MIB necesarias estén almacenadas tanto en los dispositivos agentes SNMP como en el sistema de la entidad administradora. Los archivos MIB se pueden reconocer fácilmente a través de sus extensiones .my o .mib.

Versiones SNMP

Las versiones de SNMP más utilizadas son SNMP versión 1 (SNMPv1) y SNMP versión 2 (SNMPv2).

SNMP en su última versión (SNMPv3) posee cambios significativos con relación a sus predecesores, sobre todo en aspectos de seguridad; sin embargo, no ha sido mayoritariamente aceptado en la industria.

SNMPv1

SNMP versión 1 (SNMPv1) es la implementación inicial del protocolo SNMP. SNMPv1 opera a través de protocolos como el User Datagram Protocol (UDP), Protocolo de Internet (IP), servicio de red sin conexión OSI (CLNS), AppleTalk Protocolo de datagramas de entrega (DDP), y Novell Internet Packet Exchange (IPX). SNMPv1 es ampliamente utilizado y es el de facto protocolo de gestión de red en la comunidad de Internet.

Los primeros RFCs para SNMP, ahora conocido como SNMPv1, aparecieron en 1988:

  • RFC 1065 - Estructura e identificación de información de gestión para internet basadas en TCP / IP.

  • RFC 1066 - Base de información de gestión para la gestión de la red de internet basadas en TCP / IP.

  • RFC 1067 - Un protocolo simple de administración de red.

Estos protocolos estaban obsoletos por:

  • RFC 1155 - Estructura e identificación de información de gestión para internet basadas en TCP / IP.

  • RFC 1156 - Base de información de gestión para la gestión de la red de internet basadas en TCP / IP.

  • RFC 1157 - Un protocolo simple de administración de red.

Después de un corto tiempo, RFC 1156 (MIB-1) fue reemplazada por la más habitual:

  • RFC 1213 - Versión 2 de la base de información de gestión (MIB-2) para la gestión de la red de internet basadas en TCP / IP.

SNMPv1 ha sido criticado por su falta de seguridad. La autenticación de los clientes se realiza sólo por una "cadena de comunidad", en efecto, un tipo de contraseña, la cual transmite en texto plano. El diseño de los años 80 de SNMPv1 fue realizado por un grupo de colaboradores que vieron que el producto patrocinado oficialmente (HEMS/CMIS/CMIP) por OSI / IETF / NSF (National Science Foundation) eran tanto inaplicable en las plataformas informáticas de la época, así como potencialmente inviable. SNMP se aprobó basándose en la creencia de que se trataba de un Protocolo provisional necesario para la toma de medidas del despliegue a gran escala de Internet y su comercialización. En esos tiempos, estándares de internet de autenticación y seguridad eran un sueño, a la vez desalentado por los grupos de diseño enfocados en protocolos.

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 solucionó utilizando agentes proxy y NMS bilingües para ambas versiones de NMS; adicionalmente se desarrolló la versión SNMPv2c un poco más simple, pero sin embargo más segura que la primera versión.

Esta es la versión que es la que incorpora Windows tanto en sus servidores tanto como en sus distribuciones Server 2003 en adelante, es la utilizada por Neotel actualmente.

SNMPv3

Aunque SNMPv3 no realiza cambios en el protocolo, aparte de la adición de seguridad criptográfica, da la impresión de ser muy diferente debido a las nuevas convenciones textuales, los conceptos y la terminología.

SNMPv3 añadió principalmente la seguridad y mejoras de configuración remota SNMP. Debido a la falta de seguridad de las versiones previas de SNMP, los administradores de red usaban otros medios, tales como SSH para la configuración, contabilidad y gestión de fallos.

SNMPv3 se ocupa de cuestiones relacionadas con el despliegue a gran escala de SNMP, contabilidad y gestión de fallos. Actualmente, SNMP se utiliza principalmente para el control y la gestión del rendimiento.

Desventaja del SNMP

La principal deficiencia del protocolo es sin dudas la seguridad que puede permitir el acceso a la información de forma no autorizada.

La solución comenzó incorporándose en la versión 2 (v2), que es con la que trabajaremos en los servidores y posteriormente en la versión 3 (v3).

Aunque fue un gran avance en este punto sigue siendo un punto débil, que, con ciertas limitaciones desde nuestra parte, como la limitación en los privilegios de la comunidad de “SOLO LECTURA” y el re-direccionamiento de los “trap´s” a una única IP del entorno LAN del cliente, no existirían riesgos.

En el siguiente ejemplo se simula lo que sucede si se quiere capturar el árbol MIB de un servidor web y mi IP no es la seteada para el envío de traps:

-Ingreso la IP del agente SNMP, la comunidad de lectura - escritura y la versión. (Servidor de Aplicación)

-Me indica que no puedo acceder a la información.

 

En cambio, esto es lo que sucede si no se limita a un único servidor NMS. Desde cualquier PC de la red local puedo acceder al árbol MIB:

Alcances y responsabilidades de Neotel