Simple Network Management Protocol (SNMP) is a standard network management protocol that enables monitoring and configuration of enterprise devices such as routers, switches, and servers through a manager-agent model using UDP ports 161 and 162. Agents expose device data as objects in a Management Information Base (MIB) organized by Object Identifiers (OIDs), which managers retrieve through polling requests or unsolicited trap notifications that alert stations to events immediately. Effective SNMP deployment requires proper security practices including SNMPv3 authentication and encryption, careful management of polling intervals to avoid device CPU overload, and maintenance of correct MIBs and agent configuration to prevent blind spots and security vulnerabilities.
Cómo funciona el SNMP
El SNMP utiliza un modelo de gestor y agente. El agente se ejecuta en un dispositivo gestionado y expone sus datos como objetos identificados mediante identificadores de objeto (OID) y organizados en una Base de Información de Gestión (MIB).
- Definición de los datos: cada MIB describe los objetos que un dispositivo puede comunicar, como los contadores de interfaz o la carga de la CPU, y asigna a cada objeto un OID único dentro de una estructura de árbol.
- Enviar una solicitud: el gestor envía un mensaje al agente a través del puerto UDP 161. Una solicitud Get lee un objeto específico, GetNext y GetBulk recorren el árbol paso a paso, y Set modifica un valor modificable.
- Autenticación de la solicitud: SNMPv1 y SNMPv2c identifican al remitente mediante una cadena de comunidad. SNMPv3 añade autenticación basada en el usuario y cifrado opcional.
- Devolver la respuesta: el agente busca los objetos solicitados y envía los valores o un error al gestor.
- Enviar una notificación: cuando se produce un evento definido, como la caída de un enlace, el agente envía una «trap» al gestor a través del puerto UDP 162 sin que se le haya realizado un sondeo. Un «inform» funciona como una «trap», pero requiere un acuse de recibo.
Un recorrido SNMP es una serie repetida de solicitudes GetNext o GetBulk que recupera todos los objetos situados bajo un punto elegido del árbol de OID. Se utiliza habitualmente para descubrir qué información expone un dispositivo. Las trampas (traps) cubren los eventos que se producen entre ciclos de sondeo, pero no se garantiza la entrega UDP de una trampa sin cifrar.
Problemas habituales con SNMP
Los dispositivos que conservan cadenas de comunidad como «public» o «private» permiten que cualquier persona que pueda acceder al puerto UDP 161 lea los datos y, en ocasiones, los escriba. Las analizaciones de seguridad suelen detectar este problema en impresoras y conmutadores que nunca se han reforzado tras su instalación.
Un receptor de traps no recibe nada porque el dispositivo no tiene configurado ningún destino de traps, un cortafuegos bloquea el puerto UDP 162 o la comunidad o el usuario SNMPv3 no coinciden. Dado que las traps son espontáneas y las traps SNMPv1 y SNMPv2c no se acusan recibo, el remitente no da ninguna señal de fallo.
Las consultas agotan el tiempo de espera o devuelven errores de autenticación cuando el gestor y el agente no coinciden en el nivel de seguridad, el protocolo de autenticación o el protocolo de privacidad. Otra causa frecuente es la discrepancia en el ID del motor utilizado para las trampas y los avisos.
Los intervalos de sondeo agresivos o los recorridos GetBulk de gran envergadura en tablas extensas, como las de enrutamiento o ARP, pueden aumentar el uso de la CPU en dispositivos antiguos y provocar lagunas en los gráficos. Esto suele resolverse escalonando los sondeos y limitando los OID solicitados.
Si no se carga la MIB correcta del fabricante, las herramientas muestran OID numéricos sin procesar o valores mal interpretados. El rebote del contador en los contadores de interfaz de 32 bits también puede producir picos falsos en enlaces rápidos, donde los contadores de 64 bits son la mejor opción.