SNMP Funcionamiento y Configuración
SNMP Funcionamiento y Configuración

SNMP: Funcionamiento y Configuración

SNMP
  • Funcionamiento
  • Configuración
5

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.

¡Bienvenido a CCNA desde Cero!: Este tema forma parte del Capítulo 8 del curso de Cisco CCNA 4, para un mejor seguimiento del curso puede ir a la sección CCNA 4 para guiarse del índice.

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.

Simple Network Management Protocol
Imagen 1: Simple Network Management Protocol = Protocolo simple de administración de red (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.

SNMP utiliza el número de puerto UDP 162 para recuperar y enviar la información de administración.

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:

Tabla de Operaciones de SNMP.
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).

Solicitud get de SNMP
Imagen 2: Solicitud get de SNMP

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.

Trampa de SNMP
Imagen 3: Trampa 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.

Intercambio de mensajes de SNMP
Imagen 4: Intercambio de todos los mensajes de SNMP

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.

Nota: SNMPv1 y SNMPv2c ofrecen características de seguridad mínima. Específicamente, SNMPv1 y SNMPv2c no pueden autenticar el origen de un mensaje de administración ni proporcionar cifrado.

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.

Modelos y niveles de seguridad de SNMP
Imagen 5: Modelos y niveles de seguridad de SNMP

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.

Cómo funciona SNMP con la cadena de comunidad.
Imagen 7: Cómo funciona SNMP con la cadena de comunidad

Nota: las contraseñas de texto no cifrado no se consideran un mecanismo de seguridad. Esto se debe a que las contraseñas de texto no cifrado son sumamente vulnerables a los ataques man-in-the-middle.

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.

Estructura de MIB Cisco
Imagen 8: Estructura de MIB

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.

Herramienta de representación gráfica de SNMP
Imagen 9: Herramienta de representación gráfica de SNMP

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.

Freeware snmpget
Imagen 10: Freeware snmpget,  permite la recuperación rápida de información de la MIB.

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.

Nota: de manera predeterminada, SNMP no tiene ninguna trap configurada. Sin este comando, los administradores de SNMP deben realizar sondeos para obtener toda la información importante.

Ejemplo configuración SNMP
Imagen 11: Ejemplo configuración SNMP

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.

Configuración del administrador de SNMP
Imagen 12: Configuración del administrador de SNMP

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.

Visualización de mensajes del administrador de SNMP
Imagen 13: Visualización de mensajes del administrador de SNMP

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.

Comando show snmp
Imagen 14: 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.

Comando show snmp community
Imagen 15: Servicio de comunidad SNMP

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.

Prácticas recomendadas de seguridad SNMP
Imagen 16: 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.

Nota: la configuración de SNMPv3 excede el ámbito de los currículos de CCNA.