Tutorial de SNMP: ¿cómo funcionan snmpwalk y snmpget?

El protocolo simple de administración de red (SNMP) es uno de los protocolos más usados en la comunicación entre redes de ordenadores. Muchas herramientas de administración se basan en este protocolo cliente-servidor, lanzado en 1990, permitiendo así al usuario supervisar y controlar todos los dispositivos de red como los routers, los conmutadores o los sistemas NAS (almacenamiento conectado en red). Gracias a las herramientas snmpwalk y snmpget es posible solicitar registros de datos de las MIB (bases de información de gestión) de agentes SNMP seleccionados, los cuales están instalados por defecto en la mayoría de dispositivos Linux y Windows. Para saber para qué sirven y cómo funcionan estas herramientas, sigue leyendo este tutorial de SNMP.

¿Qué hay detrás de las herramientas snmpwalk y snmpget?

Las herramientas de línea de comandos snmpwalk y snmpget son parte de la suite Net-SNMP, con la que SNMP puede implementarse y usarse en redes IPv4 e Ipv6. Este conjunto de herramientas está disponible para la mayoría de sistemas UNIX y Linux (en la gestión de paquetes), así como para Microsoft Windows. La funcionalidad de cada aplicación, sin embargo, puede variar ligeramente dependiendo del sistema. snmpwalk y snmpget se cuentan entre los instrumentos integrados para solicitar información de dispositivos que utilizan SNMP mediante un comando GET (snmpget) o mediante varios comandos GETNEXT (snmpwalk).

Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

snmpget: solicitudes SNMP simples

Con la aplicación snmpget se puede solicitar información de una unidad de red a través del protocolo simple de administración de red (SNMP). Para ello, se usa el mensaje GET de SNMP que solicita un registro de datos específico en el sistema de destino. Para que funcione, el servidor (nombre o dirección IP) y la cadena de comunidad o los datos de autenticación (SNMPv3), así como el número de identificación correspondiente (object identifier, OID), deben introducirse como argumentos.

snmpget [opciones] [cadena de comunidad/datos de autenticación] [nombre o dirección de host] [object identifier]

snmpwalk: solicitudes SNMP de MIB completas

Con la herramienta snmpwalk no se solicita tan solo un registro de datos concreto del dispositivo SNMP, sino también registros de datos que le sigan (útil en el caso de tablas, por ejemplo). Para solicitar tales conjuntos enteros de información, es decir, una MIB completa, snmpwalk usa mensajes del tipo GETNEXT que piden información de los agentes hasta que se alcance el final de la MIB en cuestión. En lo que respecta a la sintaxis, el uso de snmpwalk no se diferencia de las solicitudes sencillas de snmpget.

snmpwalk [opciones] [cadena de comunidad/datos de autenticación] [nombre o dirección de host] [OID]

Tutorial de SNMP: los comandos más importantes de snmpget y snmpwalk

Como herramientas de línea de comandos, snmpwalk y snmpget son accesibles sin problemas desde la terminal de línea de comandos. Una vez la suite Net-SNMP está instalada en el sistema, basta con abrir la línea de comandos para comenzar a consultar la información de red deseada. En este tutorial de SNMP resumimos algunos de los comandos más importantes para ambas herramientas.

Nota

Encontrarás el paquete de instalación de Net-SNMP en el apartado de descargas de la página web oficial. Puesto que los archivos binarios para Windows se basan en la versión 0.9.8r de OpenSSL, por motivos de compatibilidad la instalación no funciona en sistemas que tengan instalada la versión 1.0 o una superior.

¿Cómo funciona la solicitud de datos con snmpget?

Para familiarizarte más fácilmente con las opciones de snmpget , puedes empezar abriendo el menú de ayuda. Aquí se enumeran los parámetros disponibles, incluyendo breves explicaciones. Se puede abrir con el siguiente comando:

snmpget -h

La apariencia de un comando para una solicitud estándar de registro de datos seleccionado dependerá sobre todo de la versión del protocolo subyacente. Dicha versión está indicada en los parámetros y, por su parte, determina si es necesaria la cadena de comunidad (SNMPv1 y SNMPv2c) o un método de autenticación (authNoPriv, authPriv, noAuthNoPriv), incluyendo las informaciones de registro correspondientes (SNMPv3). Para saber, por ejemplo, si hay disponible alguna actualización firmware o del sistema operativo, se puede teclear una de las siguientes cinco opciones de comando, específicas de cada versión:

Comando snmpget con SNMPv1:

snmpget -v1 -c [cadena de comunidad] [dirección IP del host] [OID para update check]

Comando snmpget con SNMPv2:

snmpget -v2c -c [cadena de comunidad] [dirección IP del host] [OID para update check]

Comando snmpget con SNMPv3 (autenticación, pero sin cifrado):

snmpget -v3 -l authNoPriv -u [nombre de usuario] -a MD5 -A [hash MD5 de la contraseña de usuario] [dirección IP del host] [OID para update check]

Comando snmpget con SNMPv3 (autenticación y cifrado):

snmpget -v3 -l authPriv -u [nombre de usuario] -a MD5 -A [contraseña de usuario] -x DES -X [contraseña DES] [dirección IP del host] [OID para update check]

Comando snmpget con SNMPv3 (sin autenticación ni cifrado):

snmpget -v3 -l noAuthNoPriv -u [nombre de usuario] [dirección IP del host] [OID para update check]

Como resultado de la solicitud se obtiene un valor numérico que informa sobre el estado de la actualización. El valor 1 indica que hay una actualización disponible, mientras que el valor 2 se muestra cuando el firmware o el sistema operativo ya están actualizados. Para poder interpretar mejor los valores que se muestran, carga la MIB necesaria en el ordenador en el que estés llevando a cabo las solicitudes SNMP y copia el archivo correspondiente en el directorio /usr/share/snmp/mibs. Para ello, en Linux/UNIX se puede instalar un MIB downloader que ayuda en dicha tarea.

sudo apt install snmp-mibs-downloader

¿Cómo funciona la solicitud de MIB completas con snmpwalk?

snmpwalk también ofrece la posibilidad de solicitar una visión general de los parámetros disponibles y requeridos. Este menú de ayuda aparece al introducir el siguiente comando:

snmpwalk -h

snmpwalk tampoco se diferencia apenas de snmpget en lo referente a las solicitudes de datos. La principal diferencia radica en la ejecución de los comandos. Mientras que snmpget devuelve un único valor para el OID solicitado o muestra una notificación de error si no hay ningún objeto disponible que se corresponda con el número de identificación, snmpwalk recorre también todos los nodos inferiores. Así, se puede mostrar una lista detallada de las informaciones relevantes del sistema si la MIB correspondiente reconoce el número de identificación. Como en el caso de las solicitudes sencillas GET, los comandos necesarios dependen de la versión de protocolo elegida:

Comando snmpwalk con SNMPv1:

snmpwalk -v1 -c [cadena de comunidad] [dirección IP del host] [OID de la MIB de la información del sistema]

Comando snmpwalk con SNMPv2:

snmpwalk -v2c -c [cadena de comunidad] [dirección IP del host] [OID de la MIB de la información del sistema]

Comando snmpwalk con SNMPv3 (autenticación, pero sin cifrado):

snmpwalk -v3 -l authNoPriv -u [nombre de usuario] -a MD5 -A [contraseña de usuario] [dirección IP del host] [OID de la MIB de la información del sistema]

Comando snmpwalk con SNMPv3 (autenticación y cifrado):

snmpwalk -v3 -l authPriv -u [nombre de usuario] -a MD5 -A [contraseña de usuario] -x DES -X [contraseña DES] [dirección IP del host] [OID de la MIB de la información del sistema]

Comando snmpwalk con SNMPv3 (sin autenticación ni cifrado):

snmpwalk -v3 -l noAuthNoPriv -u [nombre de usuario] [dirección IP del host] [OID de la MIB de la información del sistema]

En resumen: snmpwalk y snmpget para solicitudes SNMP sencillas

snmpwalk y snmpget te ayudan a solicitar datos de red mediante el protocolo simple de administración de red o SNMP. Como parte de la suite Net SNMP, ambas herramientas de la línea de comandos se instalan rápidamente en el sistema y son fáciles de usar. En este tutorial de SNMP has comprobado lo fácil que es controlar una sola información o un bloque completo de datos, siempre y cuando se conozcan la dirección IP del agente SNMP y el identificador de objeto (OID) correspondiente.