El protocolo simple de gestión de redes (SNMP) forma parte del conjunto de protocolos de Internet y se utiliza en los sistemas de gestión de redes para supervisar el estado de los dispositivos y detectar problemas. SNMP es un conjunto de estándares que incluye un protocolo de capa de aplicación, un esquema de base de datos (la MIB) y un conjunto de objetos de datos. Gracias a SNMP, las aplicaciones de gestión pueden consultar variables en los dispositivos gestionados y, en muchos casos, modificarlas para cambiar la configuración.
Cómo funciona (arquitectura básica)
- Manager (gestor): la aplicación o servidor de gestión que solicita información o recibe notificaciones.
- Agent (agente): el software que corre en el dispositivo gestionado (router, switch, servidor, impresora, etc.) y expone datos de gestión.
- MIB (Management Information Base): la “base de datos” lógica que define los objetos disponibles para monitorizar/configurar. Cada objeto tiene un identificador único (OID).
- OID (Object Identifier): cadena numérica que identifica de forma unívoca un objeto en la MIB (por ejemplo, el nombre del sistema, el tiempo de actividad, contadores de interfaz).
Operaciones y mensajes principales
- GET: el gestor consulta el valor de una o varias variables del agente.
- GET-NEXT / WALK: usado para recorrer una rama de la MIB secuencialmente.
- GET-BULK: optimiza la recuperación de grandes cantidades de datos (v2/v2c).
- SET: modifica el valor de una variable en el agente (cuando el agente lo permite).
- TRAP: notificación asíncrona enviada por el agente al gestor para informar eventos críticos (no requiere confirmación).
- INFORM: similar a TRAP pero con confirmación por parte del gestor.
Versiones y seguridad
- SNMPv1: versión original, simple y con seguridad limitada (uso de "community strings" en texto claro).
- SNMPv2c: mejoras en el rendimiento y nuevos PDUs (como GET-BULK), pero mantiene el modelo de comunidad sin seguridad fuerte.
- SNMPv3: añade seguridad robusta (autenticación y cifrado) mediante USM (User-based Security Model) y control de accesos (VACM). Es la versión recomendada para entornos productivos.
Por defecto SNMP utiliza UDP: puerto 161 para consultas y 162 para traps. Existen también variantes que usan TCP o TLS/DTLS para transporte seguro (por ejemplo, SNMP sobre TLS).
Casos de uso comunes
- Monitorización de estado y rendimiento: uso de CPU, memoria, utilización de interfaces, errores en puertos.
- Alarmas y notificaciones: recibir traps ante caídas de enlaces, fallos de hardware o umbrales superados.
- Inventario y descubrimiento: identificar dispositivos y sus características mediante MIBs estándar y privadas.
- Automatización y configuración remota: cambiar parámetros mediante SET cuando el dispositivo lo permite.
Limitaciones y consideraciones
- Las community strings de v1/v2c son inseguras si no se protegen: deben evitarse en redes no seguras.
- SNMP puede generar gran volumen de tráfico si se realizan consultas frecuentes (usar sondeos con prudencia y GET-BULK cuando convenga).
- No todos los dispositivos implementan todas las MIBs; a veces se requieren MIBs privadas del proveedor.
- Algunas operaciones SET pueden ser peligrosas si se aplican sin control (riesgo de cambiar configuraciones críticas).
Buenas prácticas
- Preferir SNMPv3 con autenticación y cifrado para producción.
- Restringir acceso mediante listas de control (ACL), segmentación de red y firewalls.
- Usar cuentas y permisos mínimos (principio de menor privilegio) en VACM.
- Registrar y auditar cambios cuando se usan operaciones SET.
- Emplear herramientas estándar (snmpwalk, snmpget, snmptrapd, Net-SNMP) y mantener actualizadas las MIBs del proveedor.
Ejemplos prácticos
Algunos OID útiles: sysDescr (.1.3.6.1.2.1.1.1.0) para descripción del sistema, y sysUpTime (.1.3.6.1.2.1.1.3.0) para tiempo de actividad. Herramientas como snmpwalk permiten explorar la MIB de un dispositivo; snmpget recuperar valores concretos; y snmptrapd recibir y registrar traps.
En resumen, SNMP es un estándar flexible y ampliamente soportado para la gestión y monitorización de redes. Cuando se aplica con las versiones y medidas de seguridad adecuadas, sigue siendo una pieza fundamental de las operaciones de red modernas.