SNMP
-
Funcionamiento
-
Configuración
Resumen
El protocolo SNMP tiene tres elementos: el administrador, el agente y la MIB. El administrador de SNMP reside en NMS, mientras que el agente y la MIB se encuentran en los dispositivos cliente.
El administrador de SNMP puede sondear a los dispositivos cliente para obtener información, o puede utilizar un mensaje de trap que le indica a un cliente que debe informar inmediatamente si llega a determinado umbral.
SNMP también se puede utilizar para cambiar la configuración de un dispositivo. SNMPv3 es la versión recomendada porque proporciona seguridad. SNMP es una herramienta de administración remota integral y potente.
Se explica el funcionamiento de SNMP. También se describe cómo configurar SNMP para recopilar mensajes en un dispositivo de administración de red de una pequeña a mediana empresa.
Tabla de Contenido
1. Introducción a SNMP
SNMP (Protocolo simple de administración de red) se desarrolló para permitir que los administradores puedan administrar los nodos, como los servidores, las estaciones de trabajo, los routers, los switches y los dispositivos de seguridad, en una red IP. Permite que los administradores de red administren el rendimiento de la red, detecten y resuelvan problemas de red, y planifiquen el crecimiento de la red.
SNMP es un protocolo de capa de aplicación que proporciona un formato de mensaje para la comunicación entre administradores y agentes. El sistema SNMP consta de tres elementos:
- Administrador de SNMP
- Agentes SNMP (nodo administrado)
- Base de información de administración (MIB)
Para configurar SNMP en un dispositivo de red, primero es necesario definir la relación entre el administrador y el agente.
El administrador de SNMP forma parte de un sistema de administración de red (NMS) y ejecuta software de administración SNMP.

El administrador de SNMP puede recopilar información de un agente SNMP mediante una acción “get” y puede cambiar la configuración con “set”. Además, los agentes SNMP pueden reenviar información directamente a un NMS mediante “traps”.
El agente SNMP y la MIB residen en los clientes de dispositivo de red. Los dispositivos de red que se deben administrar cuentan con un módulo de software de agente SMNP. Las MIB almacenan datos sobre el funcionamiento del dispositivo y están diseñadas para estar disponibles para los usuarios remotos autenticados. El agente SNMP es responsable de proporcionar acceso a la MIB local que refleja los recursos y la actividad de los objetos.
2. Funcionamiento de SNMP
Los agentes SNMP que residen en los dispositivos administrados recopilan y almacenan información sobre los dispositivos y su funcionamiento. El agente almacena esta información localmente en la MIB. El administrador SNMP luego usa el agente SNMP para tener acceso a la información dentro de la MIB.
Existen dos solicitudes principales de administrador de SNMP: get y set.
- NMS usa una solicitud get para solicitar datos al dispositivo.
- NMS usa una solicitud establecida para cambiar las variables de configuración en el dispositivo del agente. Una solicitud set también puede iniciar acciones dentro de un dispositivo. Por ejemplo, una solicitud set puede hacer que un router se reinicie, que envíe o que reciba un archivo de configuración.
2.1. Operaciones de SNMP
El administrador de SNMP utiliza las acciones de las solicitudes get y set para realizar las operaciones descritas en la tabla:
Operación | Descripción |
---|---|
get-request | Recupera un valor de una variable específica. |
get-next-request | Recupera un valor de una variable dentro de una tabla; el administrador de SNMP no necesita saber el nombre exacto de la variable. Se realiza una búsqueda secuencial para encontrar la variable necesaria dentro de una tabla. |
get-bulk-request | Recupera grandes bloques de datos, como varias filas en una tabla, que de otra manera requerirían la transmisión de muchos bloques pequeños de datos. (Solo funciona con SNMPv2 o más reciente). |
get-response | Responde a una operación get-request, get-next-request y set-request que envió NMS. |
set-request | Almacena un valor en una variable específica. |
El agente SNMP responde a las solicitudes del administrador de SNMP de la siguiente manera:
- Obtener una variable de MIB: el agente SNMP realiza esta función en respuesta a una PDU de solicitud get de NMS. El agente recupera el valor de la variable de MIB solicitada y responde a NMS con ese valor.
- Establecer una variable de MIB: el agente SNMP realiza esta función en respuesta a una PDU de solicitud set de NMS. El agente SNMP cambia el valor de la variable de MIB por el valor que especifica NMS. La respuesta del agente SNMP a una solicitud set incluye la nueva configuración en el dispositivo.
En la Imagen 2, se muestra el uso de una solicitud get de SNMP para determinar si la interfaz G0/0 está up/up (activa/activa).

3. Traps del agente SNMP
NMS sondea periódicamente a los agentes SNMP que residen en los dispositivos administrados para solicitar datos a los dispositivos mediante la solicitud get. Con este proceso, una aplicación de administración de red puede recopilar información para controlar cargas de tráfico y verificar las configuraciones de los dispositivos administrados.
La información se puede mostrar a través de la GUI de NMS. Se pueden calcular los promedios, los mínimos o los máximos, representar los datos gráficamente o establecer umbrales para activar un proceso de notificación cuando se exceden los umbrales.
Por ejemplo, NMS puede controlar el uso de CPU de un router Cisco. El administrador de SNMP prueba el valor periódicamente y presenta esta información en un gráfico a fin de que el administrador de red la utilice para crear una línea de base.
El sondeo periódico de SNMP tiene desventajas:
- Existe un retraso entre el momento en el que ocurre un evento y el momento en el que NMS lo advierte (mediante el sondeo).
- Existe un nivel de equilibrio entre la frecuencia del sondeo y el uso del ancho de banda.
Para mitigar estas desventajas, es posible que los agentes SNMP generen y envíen traps para informarle a NMS sobre ciertos eventos de inmediato.
3.1. Uso de una trap de SNMP
Las traps son mensajes no solicitados que alertan al administrador de SNMP sobre una condición o un evento en la red. Algunos ejemplos de las condiciones de trap incluyen, entre otros, la autenticación incorrecta de usuarios, los reinicios, el estado del enlace (activo o inactivo), el seguimiento de direcciones MAC, el cierre de una conexión TCP, la pérdida de conexión a un vecino u otros eventos importantes.
Las notificaciones de trap reducen los recursos de red y de agente al eliminar la necesidad de algunas de las solicitudes de sondeo de SNMP.

En la Imagen 3, se muestra el uso de una trap de SNMP para alertar al administrador de red que la interfaz G0/0 falló. El software de NMS puede enviar un mensaje de texto al administrador de red, mostrar una ventana emergente en el software de NMS o mostrar el ícono del router en color rojo en la GUI de NMS.
El intercambio de todos los mensajes de SNMP se muestra en la Imagen 4.

4. Versiones de SNMP
Existen varias versiones de SNMP, incluidas las siguientes:
- SNMPv1: el protocolo simple de administración de red, un estándar de Internet completo, se define en RFC 1157.
- SNMPv2c: se define en las RFC 1901 a 1908; utiliza el marco administrativo basado en cadenas de comunidad.
- SNMPv3: protocolo interoperable basado en estándares definido originalmente en las RFC 2273 a 2275; proporciona acceso seguro mediante la autenticación y el cifrado de paquetes a través de la red.
Todas las versiones usan administradores de SNMP, agentes SNMP y MIB. El software IOS de Cisco admite las tres versiones mencionadas anteriormente.
A diferencia de SNMPv1, SNMPv2c incluye un mecanismo de recuperación masiva e informes de mensajes de error más detallados para las estaciones de administración.
La descripción más actualizada de SNMPv3 se encuentra en las RFC 3410 a 3415. Agrega métodos para garantizar la transmisión segura de datos importantes entre los dispositivos administrados.
SNMPv3 proporciona tanto modelos como niveles de seguridad. Un modelo de seguridad es una estrategia de autenticación configurada para un usuario y el grupo dentro del que reside el usuario. Un nivel de seguridad es el nivel de seguridad permitido dentro de un modelo de seguridad.
La combinación del nivel de seguridad y el modelo de seguridad determina qué mecanismo de seguridad se utiliza al manejar un paquete SNMP. Los modelos de seguridad disponibles son SNMPv1, SNMPv2c y SNMPv3.

Un administrador de red debe configurar el agente SNMP para que use la versión de SNMP que admite la estación de administración.
5. Cadenas de comunidad
Para que SNMP funcione, NMS debe tener acceso a la MIB. Para asegurar que las solicitudes de acceso sean válidas, debe haber cierta forma de autenticación.
SNMPv1 y SNMPv2c usan cadenas de comunidad que controlan el acceso a la MIB. Las cadenas de comunidad son contraseñas de texto no cifrado. Las cadenas de la comunidad de SNMP autentican el acceso a los objetos MIB.
Existen dos tipos de cadenas de comunidad:
- Solo lectura (ro): proporciona acceso a las variables de MIB, pero no permite realizar cambios a estas variables, solo leerlas. Debido a que la seguridad es mínima en la versión 2c, muchas organizaciones usan SNMPv2c en modo de solo lectura.
- Lectura y escritura (rw): proporciona acceso de lectura y escritura a todos los objetos de la MIB.
Para ver o establecer variables de MIB, el usuario debe especificar la cadena de comunidad correspondiente para el acceso de lectura o escritura.

6. ID de objetos de la base de información de administración
La MIB organiza variables de manera jerárquica. Las variables de MIB permiten que el software de administración controle el dispositivo de red. Formalmente, la MIB define cada variable como una ID de objeto (OID).
Las OID identifican de forma exclusiva los objetos administrados en la jerarquía de la MIB. La MIB organiza las OID según estándares RFC en una jerarquía de OID, que se suele mostrar como un árbol.
El árbol de la MIB para un dispositivo determinado incluye algunas ramas con variables comunes a varios dispositivos de red y algunas ramas con variables específicas de ese dispositivo o proveedor.

Las RFC definen algunas variables públicas comunes. La mayoría de los dispositivos implementan estas variables de MIB. Además, los proveedores de equipos de redes, como Cisco, pueden definir sus propias ramas privadas del árbol para admitir las nuevas variables específicas de sus dispositivos.
En la Imagen 8 se muestran partes de la estructura de MIB definida por Cisco. Observe que la OID se puede describir en palabras o números para buscar una variable específica en el árbol. Las OID que pertenecen a Cisco, se numeran de la siguiente manera: .iso (1).org (3).dod (6).internet (1).private (4).enterprises (1).cisco (9). Esto se muestra como 1.3.6.1.4.1.9.
6.1. Herramienta de representación gráfica de SNMP
Dado que la CPU es uno de los recursos clave, se debe medir de manera continua. Las estadísticas de CPU deben recopilarse en NMS y se deben representar gráficamente.
La observación del uso de la CPU durante un período extendido permite que el administrador establezca una línea de base aproximada para el uso de la CPU. Los valores de umbral se pueden establecer en relación con esta línea de base. Cuando el uso de la CPU supera este umbral, se envían notificaciones.

Una herramienta de representación gráfica de SNMP puede sondear de forma periódica a los agentes SNMP, como un router, y representar gráficamente los valores recopilados. En la Imagen 9, se muestran ejemplos de 5 minutos de uso de la CPU por parte de un router durante un período de unas semanas.
6.2. Herramienta snmpget
Los datos se recuperan mediante la utilidad snmpget, que se emite en NMS. Mediante snmpget, se pueden obtener valores manualmente para calcular el promedio de porcentaje de ocupación de la CPU.
Esta utilidad requiere que se establezca la versión de SNMP, la comunidad correcta, la dirección IP del dispositivo de red que se debe consultar y el número de OID.

En la Imagen 10, se muestra un comando bastante largo con varios parámetros, incluido lo siguiente:
- -v2c: versión de SNMP
- -c community contraseña de SNMP, denominada “cadena de comunidad”
- 10.250.250.14: dirección IP del dispositivo monitoreado
- 1.3.6.1.4.1.9.2.1.58.0: OID de la variable de MIB
En la última línea, se muestra la respuesta. El resultado muestra una versión abreviada de la variable de MIB. A continuación, indica el valor real en la ubicación de la MIB.
En este caso, el promedio cambiante exponencial de 5 minutos del porcentaje de ocupación de la CPU es del 11%. La utilidad proporciona cierta información sobre los mecanismos básicos de funcionamiento de SNMP. Sin embargo, trabajar con nombres de variables de MIB largos como 1.3.6.1.4.1.9.2.1.58.0 puede ser problemático para el usuario promedio.
Generalmente, el personal de operaciones de red utiliza un producto de administración de red con una GUI fácil de usar, con el nombre completo de la variable de datos de MIB transparente para el usuario.
7. Pasos para configurar SNMP
Un administrador de red puede configurar SNMPv2 para obtener información de red de los dispositivos de red:
- Paso 1. (Obligatorio) Configure la cadena de comunidad y el nivel de acceso (solo lectura o lectura y escritura) mediante el comando snmp-server community string ro | rw.
- Paso 2. (Optativo) Registre la ubicación del dispositivo mediante el comando snmp-server location text.
- Paso 3. (Optativo) Registre el contacto del sistema mediante el comando snmp-server contact text.
- Paso 4. (Optativo) Restrinja el acceso de SNMP a los hosts NMS (administradores de SNMP) que autoriza una ACL: defina la ACL y, a continuación, nombre la ACL con el comando snmp-server community string access-list-number-or-name . Este comando se puede utilizar para especificar la cadena de comunidad y para restringir el acceso de SNMP a través de las ACL. Los pasos 1 y 4 pueden combinarse en un paso, si lo desea.
- Paso 5. (Optativo) Especifique el destinatario de las operaciones de trap de SNMP con el comando snmp-server host id-host [version {1 | 2c | 3 [auth | noauth | priv]}] community-string. De manera predeterminada, no se define ningún administrador de traps.
- Paso 6. (Optativo) Habilite las traps en un agente SNMP con el comando snmp-server enable traps notification-types. Si no se especifica ningún tipo de notificación de traps en este comando, entonces se envían todos los tipos de trap. Es necesario el uso reiterado de este comando si se desea un subconjunto determinado de tipos de trap.

Todos los pasos básicos para configurar SNMP se realizan en el modo de configuración global:
R1(config)# snmp-server community batonaug ro SNMP_ACL R1(config)# snmp-server location NOC_SNMP_MANAGER R1(config)# snmp-server contact Wayne World R1(config)# snmp-server host 192.168.1.3 version 2c batonaug R1(config)# snmp-server enable traps R1(config)# ip access-list standard SNMP_ACL R1(config-std-nacl)# permit 192.168.1.3
8. Verificación de la configuración de SNMP
Existen varias soluciones de software para ver el resultado de SNMP. Para nuestros fines, el servidor de syslog Kiwi muestra los mensajes de SNMP asociados a las traps de SNMP.
La PC1 y el R1 están configurados para demostrar el resultado en un administrador de SNMP en relación con las traps de SNMP. Se asignó la dirección IP 192.168.1.3/24 a la PC1. El servidor de syslog Kiwi está instalado en la PC1.
Después de que se configura el R1, cada vez que ocurre un evento que califique como trap, se envían traps de SNMP al administrador de SNMP. Por ejemplo, si se activa una interfaz, se envía una trap al servidor. Los cambios de configuración en el router también activan el envío de traps de SNMP al administrador de SNMP.
Se puede ver una lista de más de 60 tipos de notificación de traps con el comando snmp-server enable traps ? . En la configuración del R1, no se especifica ningún tipo de notificación de trap en el comando snmp-server enable traps notification-types, de modo que se envían todas las traps.
8.1. Administrador de SNMP
En la Imagen 12, se activó una casilla de verificación en el menú Setup (Configuración) para indicar que el administrador de red desea que el software del administrador de SNMP escuche para detectar las traps de SNMP en el puerto UDP 162.

En la Imagen 13, la fila superior del resultado de trap de SNMP que se muestra indica que el estado de la interfaz GigabitEthernet0/0 cambió a up (activo). Además, cada vez que se pasa del modo EXEC privilegiado al modo de configuración global, el administrador de SNMP recibe una trap, como se muestra en la fila resaltada.

8.2. Comandos de Verificación SNMP
Para verificar la configuración SNMP, utilice cualquier variante del comando show snmp del modo EXEC privilegiado. El comando más útil es simplemente el comando show snmp, ya que muestra la información que suele ser de interés al examinar la configuración SNMP.
A menos que haya una configuración SNMPv3 involucrada, la mayoría de las otras opciones de comandos solo muestran partes seleccionadas del resultado del comando show snmp.

El resultado del comando show snmp no muestra información relacionada con la cadena de comunidad SNMP o, si corresponde, con la ACL asociada. En la figura 5, se muestra la información de la cadena de comunidad SNMP y de la ACL mediante el comando show snmp community.

9. Prácticas recomendadas de seguridad
Si bien SNMP es muy útil para el monitoreo y la resolución de problemas, también puede crear vulnerabilidades de seguridad. Por este motivo, antes de implementar SNMP, tenga en cuenta las prácticas recomendadas de seguridad.

SNMPv1 y SNMPv2c dependen de las cadenas de comunidad SNMP en texto no cifrado para autenticar el acceso a los objetos de la MIB. Estas cadenas de comunidad, al igual que todas las contraseñas, se deben elegir cuidadosamente para asegurar que no sean demasiado fáciles de descifrar.
Además, las cadenas de comunidad se deben cambiar a intervalos regulares y de acuerdo con las políticas de seguridad de la red. Por ejemplo, se deben cambiar las cadenas cuando un administrador de red cambia de función o deja la empresa. Si SNMP se utiliza solo para monitorear los dispositivos, use comunidades de solo lectura.
Asegúrese de que los mensajes de SNMP no se propaguen más allá de las consolas de administración. Se deben usar ACL para evitar que los mensajes de SNMP se envíen más allá de los dispositivos requeridos.
Se recomienda SNMPv3 porque proporciona autenticación y cifrado de seguridad. Existen otros comandos del modo de configuración global que puede implementar un administrador de red para aprovechar la autenticación y el cifrado en SNMPv3:
- El comando snmp-server group groupname {v1 | v2c | v3 {auth | noauth | priv}} crea un nuevo grupo SNMP en el dispositivo.
- El comando snmp-server user username groupname v3 [encrypted] [auth {md5 | sha} auth-password] [priv {des | 3des | aes {128 | 192 | 256}} priv-password] se usa para agregar un nuevo usuario al grupo SNMP especificado en el comando snmp-server group ngroupname.