Skip to main content

¿Que es SNMP?

Introducción a SNMP

El protocolo SNMP o Simple Network Management Protocol es un protocolo de capa de aplicación definido en la RFC1157 basado en Solicitud/Respuesta: GET / SET.

El protocolo SNMP se utiliza para intercambiar información de administración y estadísticas de rendimiento entre dispositivos de red.  Es uno de los protocolos más comunes utilizados para la administración de red. 

Puertos SNMP

SNMP utiliza el número de puerto 161/162 UDP. Hay que distinguir entre el SNMP el puerto por el que se realizan las operaciones de consulta y/o modificación de valores que suele usar el puerto UDP 161 y el SNMP que envía eventos o excepciones del sistema (TRAPS) al sistema de Monitorización que usa el puerto 162 UDP normalmente.

Operaciones SNMP

Aunque el SNMP permite realizar operaciones de escritura en los dispositivos (modo R/W), no es aconsejable usar esto y por lo general se recomienda usar el modo Read Only (RO) en las configuraciones de SNMP.

SNMP no es muy seguro, por lo que como hemos comentado no es conveniente configurar los dispositivos en modo Lectura/Escritura.

Versiones de SNMP

Las versiones de SNMP más utilizadas son SNMP versión 1 (SNMPv1) y SNMP versión 2 (SNMPv2). Existe una versión de SNMP versión 3 (SNMPv3) que ya incorpora funciones de autenticación y encriptación de los paquetes de datos e incorpora características avanzadas de seguridad, pero debido a que es mucho más complejo de configurar y que añade una carga adicional en la monitorización, no está muy extendido el uso de esta versión.

RFC's de las versiones de SNMP

v1 (1988) – RFC1155, RFC1156, RFC1157

v2 – RFC1901 a RFC1908 + RFC2578

v3 – RFC3411 a RFC3418 (alta seguridad)

La versión más usada es la v2c que es una evolución de la versión v2.

Arquitectura de un sistema SNMP

En primer lugar disponemos de dos entidades un sistema de administración (NMS o Network Management System) y los agentes en los dispositivos administrados.

Sistema NMS

Un sistema de gestión o administración de red (NMS) ejecuta aplicaciones que supervisan y controlan a los dispositivos administrados. Los NMS’s se encargan de sondear a los agentes, recabar información y almacenarla a fin de obtener datos estadísticos y pueden enviar alertas cuando alguno de estos parámetros supere un umbral predefinido.

Dispositivos administrados

Un dispositivo administrado es un dispositivo que contiene un agente SNMP y reside en una red administrada. Estos recogen y almacenan información de administración, la cual es puesta a disposición de los NMS’s usando SNMP. Los dispositivos administrados, que son elementos conectados a la red, pueden ser routers, switches, servidores,  ordenadores, impresoras, etc.

Agentes

Un agente es un módulo de software de administración de red que reside en un dispositivo administrado. Un agente posee un conocimiento local de información de administración (memoria libre, número de paquetes IP recibidos, rutas, etcétera), la cual es traducida a un formato compatible con SNMP y organizada en jerarquías.

Elementos del protocolo SNMP

MIB's

El protocolo SNMP usa una estructura jerárquica basada en dos elementos que se denominan MIB (Management Information Base o Base de Información de Administración) que es una colección de información que está organizada jerárquicamente por áreas. Estas áreas están definidas dentro de unos valores denominados OID (Identificador de objeto o en inglés object ID).

Las MIB se dividen normalmente en dos apartados, las MIB generales de SNMP definidas en la RFC3418 y las propietarias de cada fabricante que añaden valores específicos del hardware.

Por ejemplo 

IF-MIB, IP-MIB son elementos MIB estándar que representan por ejemplo las interfaces de red y las IPv4 respectivamente, y se incluyen en todos los elementos de red.

Luego muchos fabricantes incluyen ficheros MIB descargadles de sus páginas de soporte a fin de añadir capacidades de monitorización sobre los elementos de su hardware o aplicaciones.

OID's

Las OID son como hemos dicho identificadores de objeto que se incluyen dentro de los ficheros MIB. 

El formato de los OID suele estar representado por una secuencia de números separados por puntos. La jerarquía es como la mostrada a continuación.

oid.001.png

Como vemos en este ejemplo, una MIB de cisco vendría dada por .1.4.1.9 (ejemplo ficticio) Una interfaz de red comenzaría por  .1.1.1.2, la memoria RAM usada comenzaría por  .1.1.1.2, las direcciónes IP comenzarían por .1.1.1.4.

Un ejemplo real de una OID estaría representado, según la nomenclatura

La obtenida del fichero MIB (Notación ASN.1)

{iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 4413 quantaProducts(1) fastPath(1) fastPathSwitching(1) agentInfoGroup(1) agentSwitchCpuProcessGroup(4) agentSwitchCpuProcessMemFree(1)}

En formato OID-RI

/ISO/Identified-Organization/6/1/4/1/4413/1/1/1/1/4/1

En formato dot o númerico separado por puntos.

1.3.6.1.4.1.4413.1.1.1.1.4.1

Otro ejemplo (propietario de Synology) incluido en el fichero MIB de Synology SYNOLOGY-SMART-MIB.txt

{iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 6574 synologyDiskSMART(5)}

/ISO/Identified-Organization/6/1/4/1/6574/5

1.3.6.1.4.1.6574.5

synologyDiskSMART MODULE-IDENTITY
LAST-UPDATED "201605050000Z"
ORGANIZATION "www.synology.com"
CONTACT-INFO
"postal: Aki Wang
email: akiwang@synology.com"
DESCRIPTION "Characteristics of the disk SMART information"
REVISION "201605050000Z"
DESCRIPTION "First draft."

En la siguiente imagen podemos ver una captura de imagen del principio de este fichero.

synloogy.png

Como vemos en la imagen hay un identificador ::={ enterprises 6574 } que identifica al fabricante Synology, y los diferentes atributos así como el tipo de valor (OCTECT STRING, Integer32, Gauge, etc).

Podemos ver la salida de estos valores usando el comando snmpwalk.