Sei sulla pagina 1di 18

Tutorial de SNMP

Este tutorial es un esfuerzo para dar una explicación breve sobre

 ¿Qué es SNMP?
 ¿Cuáles son los componentes básicos de SNMP y sus funcionalidades?
 Comandos básicos SNMP
 ¿Cómo se produce una comunicación SNMP normal?
 Versiones de SNMP (SNMP v1, v2 y v3)

¿Qué es SNMP?
El Protocolo simple de administración de redes (SNMP) es un protocolo de capa de aplicación
definido por la Junta de arquitectura de Internet (IAB) en RFC1157 para intercambiar
información de administración entre dispositivos de red. Forma parte del conjunto de
protocolos Protocolo de control de transmisión/Protocolo de Internet (TCP/IP).

SNMP es uno de los protocolos ampliamente aceptados para administrar y monitorizar


elementos de red. La mayoría de los elementos de red de nivel profesional vienen con un
agente SNMP incluido. Estos agentes deben estar habilitados y configurados para
comunicarse con el sistema de administración de red (NMS).

Componentes básicos de SNMP y sus


funcionalidades
SNMP consta de
 Administrador SNMP
 Dispositivos administrados
 Agente SNMP
 Base de datos de información de administración denominada de otro modo Base de
información de administración (MIB)

Administrador SNMP:
Un administrador o sistema de administración es una entidad separada responsable de
comunicarse con los dispositivos de red implementados por el agente SNMP. Normalmente es
un equipo que se utiliza para ejecutar uno o más sistemas de administración de red.

Funciones clave del administrador SNMP


 Agentes de consultas
 Obtiene respuestas de agentes
 Establece variables en agentes
 Reconoce eventos asincrónicos de agentes

Dispositivos administrados:
Un dispositivo administrado o el elemento de red es una parte de la red que requiere algún
tipo de monitorización y administración, por ejemplo, enrutadores, conmutadores, servidores,
estaciones de trabajo, impresoras, UPS, etc.

Agente SNMP:
El agente es un programa que está empaquetado dentro del elemento de red. La habilitación
del agente le permite recopilar la base de datos de información de administración del
dispositivo localmente y la pone a disposición del administrador SNMP, cuando se le solicita.
Estos agentes pueden ser estándar (por ejemplo, Net-SNMP) o específicos de un proveedor
(por ejemplo, HP Insight Agent)

Funciones clave del agente SNMP


 Recopila información de administración sobre su entorno local
 Almacena y recupera información de gestión según se define en la MIB.
 Señala un evento al administrador.
 Actúa como proxy para algunos nodos de red administrables que no son SNMP.

Diagrama básico de comunicación SNMP


Base de datos de información de administración o Base de
información de administración (MIB)
Cada agente SNMP mantiene una base de datos de información que describe los parámetros
del dispositivo administrado. El administrador SNMP usa esta base de datos para solicitar al
agente información específica y traduce aún más la información según sea necesario para el
Sistema de administración de red (NMS). Esta base de datos comúnmente compartida entre el
Agente y el Administrador se denomina Base de información de administración (MIB).

Por lo general, estas MIB contienen un conjunto estándar de valores estadísticos y de control
definidos para nodos de hardware de una red. SNMP también permite la extensión de estos
valores estándar con valores específicos para un agente en particular mediante el uso de MIB
privadas.

En resumen, los archivos MIB son el conjunto de preguntas que un administrador SNMP
puede hacerle al agente. El agente recopila estos datos localmente y los almacena, según se
define en la MIB. Por lo tanto, el administrador de SNMP debe conocer estas preguntas
estándar y privadas para cada tipo de agente.

Navegador SNMP MIB y herramienta SNMP Walk


El conjunto de herramientas gratuitas de ManageEngine incluye un navegador SNMP MIB que
ayuda a cargar/descargar MIB y a obtener datos MIB de agentes SNMP (v1, v2c, v3). El
navegador SNMP MIB es una herramienta completa para monitorizar dispositivos y servidores
habilitados para SNMP. Puede cargar, ver múltiples módulos MIB y realizar operaciones
SNMP GET, GETNEXT y SET. Esta herramienta es fácil de usar y le permite ver, configurar y
analizar capturas SNMP. También puede realizar operaciones SNMP desde dispositivos
Windows y Linux.

Estructura de MIB e identificador de objeto (ID de objeto u


OID)
La Base de información de administración (MIB) es una recopilación de información para
administrar el elemento de red. Las MIB se componen de objetos administrados identificados
mediante el nombre Identificador de objeto (ID de objeto u OID).

Cada identificador es único y señala características específicas de un dispositivo


administrado. Cuando se lo consulta, el valor de retorno de cada identificador puede ser
diferente, por ejemplo, Texto, Número, Contador, etc.

Hay dos tipos de objeto administrado o ID de objeto: Escalar y tabular. Podrían entenderse
mejor con un ejemplo

Escalar: Nombre del proveedor del dispositivo, el resultado solo puede ser uno. (Como dice la
definición: "Objeto escalar define una instancia de objeto única")

Tabular: El uso de la CPU de un procesador cuádruple, esto me daría un resultado para cada
CPU por separado, lo que significa que habrá 4 resultados para esa ID de objeto en particular.
(Como dice la definición: "El objeto tabular define varias instancias de objetos relacionados
que se agrupan en tablas MIB")

Cada ID de objeto se organiza jerárquicamente en MIB. La jerarquía de MIB se puede


representar en una estructura de árbol con un identificador de variable individual.

Un ID de objeto normal será una lista punteada de enteros. Por ejemplo, el OID en RFC1213
para "sysDescr" es .1.3.6.1.2.1.1.1

 
Diagrama de árbol de MIB

 
Comandos básicos de SNMP
La simplicidad en el intercambio de información ha convertido al SNMP en un protocolo
ampliamente aceptado. La razón principal es un conjunto conciso de comandos, que se
enumeran a continuación:

 GET: La operación GET es una solicitud enviada por el administrador al dispositivo


administrado. Se realiza para recuperar uno o más valores del dispositivo administrado.
 GET NEXT: Esta operación es parecida a la GET. La diferencia significativa es que la
operación GET NEXT recupera el valor del siguiente OID en el árbol MIB.
 GET BULK: La operación GETBULK se utiliza para recuperar datos voluminosos de
una tabla MIB grande.
 SET: Los administradores utilizan esta operación para modificar o asignar el valor del
dispositivo administrado.
 TRAPS: A diferencia de los comandos anteriores que se inician desde el administrador
SNMP, los agentes inician TRAPS. Es una señal al administrador SNMP por parte del agente
sobre la repetición de un evento.
 INFORM: Este comando es similar al TRAP iniciado por el agente, además, INFORM
incluye la confirmación del administrador SNMP al recibir el mensaje.
 RESPONSE: Es el comando utilizado para transportar los valores o la señal de las
acciones dirigidas por el administrador de SNMP.
 

Capturas SNMP:
Las capturas SNMP permiten que un agente notifique al administrador SNMP de eventos
significativos mediante un mensaje SNMP no solicitado. Los protocolos de captura SNMP
incluyen el valor actual de sysUpTime, un OID que identifica el tipo de captura y enlaces de
variables opcionales. El direccionamiento de destino para las capturas SNMP se determina de
una manera específica para la aplicación, generalmente a través de variables de configuración
de captura en la MIB. El formato del mensaje de captura se modificó en SNMPv2 y las
unidades de datos de protocolo cambiaron su nombre a SNMPv2-Trap.

Comunicación SNMP normal


Al ser parte del conjunto de protocolos TCP⁄ IP, los mensajes SNMP se envuelven como
Protocolo de datagramas de usuario (UDP) y el interno se envuelve y transmite en el
Protocolo de Internet. El siguiente diagrama ilustrará el modelo de cuatro capas desarrollado
por el Departamento de Defensa (DoD).
GET⁄ GET NEXT⁄ GET BULK⁄ SET

TRAP

INFORM
 

De forma predeterminada, el puerto SNMP es 161 y TRAP⁄INFORM utiliza el puerto SNMP


162 para la comunicación.
 

Versiones de SNMP
Desde su inicio SNMP ha sufrido importantes actualizaciones. Sin embargo, el protocolo
SNMP v1 y v2c son las versiones más implementadas de SNMP. La compatibilidad con el
protocolo SNMP v3 ha comenzado a ponerse al día recientemente, ya que es más segura en
comparación con sus versiones anteriores, pero aún no ha alcanzado una cuota de mercado
considerable.

SNMPv1:
Esta es la primera versión del protocolo SNMP, que se define en RFC 1155 y 1157

SNMPv2c:
Este es el protocolo revisado, que incluye mejoras de SNMPv1 en las áreas de tipos de
paquetes de protocolo, asignaciones de transporte y elementos de estructura MIB pero
usando la estructura de administración SNMPv1 existente ("basada en la comunidad" y, por lo
tanto, SNMPv2c). Se define en RFC 1901, RFC 1905, RFC 1906, RFC 2578.

SNMPv3:
SNMPv3 define la versión segura de SNMP. El protocolo SNMPv3 también facilita la
configuración remota de las entidades SNMP. Se define mediante RFC 1905, RFC 1906, RFC
3411, RFC 3412, RFC 3414, RFC 3415.

Aunque cada versión había evolucionado hacia funcionalidades sofisticadas, destacó


especialmente el aspecto de seguridad en cada actualización. Aquí hay un pequeño clip sobre
la seguridad de cada edición.
SNMP v1 Seguridad basada en la comunidad
SNMP v2cSeguridad basada en la comunidad
SNMP
v2u Seguridad basada en el usuario
SNMP v2 Seguridad basada en el grupo
SNMP v3 Seguridad basada en el usuario
Ejercicios con SNMP, parte I
Objetivos:
 Instalar y utilizar los comando SNMP
 Explorar e identificar partes estandar o enterprise del arbol MIB
 Instalar MIB especificas de fabricantes y utilizarlas con comandos SNMP

Nota:
 Los comandos precedidos por el signo de pesos "$", deben ser ejecutados
como un usuario general - y no como superusuario (root).
 Los comandos precedidos por el signo de número "#", deben ser
ejecutados por el superusuario (root).
 Si la línea de comandos termina con una barra invertida "", quiere decir
que el comando continua en la próxima línea y todas líneas deben ser
tratadas como un comando de sola línea.

Muchos de los comandos en este ejercicio no tienen que ejecutarse como root,
pero no hay problema con ejecutarlos todos como root. Así que sería más sencillo
si inicia una shell de root y los ejecuta todos desde ahí. Puede iniciar una shell de
root así:

$ sudo -s

Instalación del los programas de


gestion del cliente
Empieza instalando el software de net-snmp:

# apt-get install snmp


# apt-get install snmp-mibs-downloader

El segundo paquete (snmp-mibs-downloader) baja los MIBs estandares de IANA


y de IETF que no estan incluidos por defecto.
Nota: Para que esto funciona tiene que habilitar el fuente "multiverse" en su
configuracion de APT - hemos hecho esto para Ud.

Ahora tiene que editar el archivo /etc/snmp/snmp.conf

# vi /etc/snmp/snmp.conf

y cambiar este linea:

mibs :

... para que se vea asi:

# mibs :

Ahora, guarde el archivo y salga del editor.

Esta accion deshabilito la linea de mibs vacia que estaba indicando a las
herramientas de SNMP de no cargar automaticamente los mibs en el directorio
/usr/share/mibs/.

Ahora, realice su propia copia del fichero /etc/snmp/snmp.conf, configure los


permisos de solo lectura solo para usted y adicione sus credenciales:

Tiene que trabajar como el usario "sysadm" así, deja de ser el usuario "root":

# exit

Y, ahora haz:

$ cd
$ mkdir .snmp
$ cp /etc/snmp/snmp.conf .snmp/
$ chmod 700 .snmp/
$ sudo editor .snmp/snmp.conf

Adiciones las siguientes lineas al final:

defVersion 3
defCommunity NetManage
defSecurityName admin
defSecurityLevel authNoPriv
defAuthPassphrase NetManage
defAuthType SHA

Con este informacion no sera necesario definir las credenciales cada vez que
utilice los comandos SNMP

Configuración de SNMP en el
enrutador
Para esta parte del ejercicio, necesitan trabajar en grupos. Una persona estará
asignada para escribir en el teclado.

Si no está seguro de a qué grupo pertenece, refiérase al diagrama de red en la


wiki del taller, en http://noc.ws.nsrc.org/

Ahora conéctese a su enrutador:

$ ssh cisco@rtrN.ws.nsrc.org (ó "ssh cisco@10.10.N.254")


username: cisco
password: <CLASS PASSWORD>

rtrN> enable
Password: <CLASS PASSWORD>
rtrN# configure terminal (conf t)

Ahora es necesario agregar una lista de control de acceso (ACL) para acceso a
SNMP. Luego iniciaremos el agente SNMP, asignaremos una "comunidad" de
sólo lectura y le indicaremos al enrutador que nunca cambie los índices de
interfaces al reiniciarse. Para ello, haremos lo siguiente:

rtrN(config)# access-list 99 permit 10.10.0.0 0.0.255.255


rtrN(config)# snmp-server community NetManage ro 99
rtrN(config)# snmp-server group ReadGroup v3 auth access 99
rtrN(config)# snmp-server user admin ReadGroup v3 auth sha NetManage
rtrN(config)# snmp-server ifindex persist

Ahora salgamos del modo configuración y grabemos:

rtrN(config)# exit
rtrN# write memory (wr mem)
rtrN# exit (volver al shell del PC)

Ahora, probaremos si estos cambios han hecho efecto.


Comprobación de SNMP
Para verificar que su instalación de SNMP funciona, ejecute el comando
'snmpstatus' en cada uno de los siguientes nodos:

$ snmpstatus <IP_ADDRESS>

Donde es cada uno de los siguientes:

* El servidor NOC: 10.10.0.254


* Su enrutador: 10.10.N.254
* El switch dorsal: 10.10.0.253
* The backbone router: 10.10.0.254
* Los puntos de acceso: 10.10.0.251, 10.10.0.252 (no siempre funcionan)

Note que se ha utilizado SNMPv3. No todos los dispositivos que implementan


SNMP soportan la version 3. Intentelo de nuevo, adicionando "-v2c" como
parametro El comando automaticamente utiliza la comunidad definida en el
fichero snmp.conf y no las credenciales de la version 3. Pruebe "-v1".

Qué pasa si intenta usando la comunidad incorrecta (ej. cambie "NetManage" por
algo diferente)

SNMP Walk y los OIDs


Ahora, utilizará el comando 'snmpwalk', parte de la suite SNMP, para listar las
tablas asociadas con los OIDs más abajo, para cada dispositivo que probó más
arriba:

.1.3.6.1.2.1.2.2.1.2
.1.3.6.1.2.1.31.1.1.1.18
.1.3.6.1.4.1.9.9.13.1
.1.3.6.1.2.1.25.2.3.1
.1.3.6.1.2.1.25.4.2.1
$ snmpwalk <IP_ADDRESS> <OID>

$ snmpwalk -On <IP_ADDRESS> <OID>

... Donde es uno de los OIDS más arriba: .1.3.6…


... Donde puede ser su enrulado...

Nota: la opcion "-On" habilita salida numerica, asi no traduccion del OID <->
MIB pasara.

Con estos OIDs:

a. Responden todos los dispositivos ?


b. Nota algo interesante en los OIDS de las respuestas ?

Configuración del agente SNMP en su


PC
Para este ejercicio su grupo necesita verificar que el servicio SNMP está activo y
respondiendo a solicitudes desde todas las máquinas de su grupo. Primero active
el demonio snmpd en su máquina, luego pruebe si su máquina está respondiendo,
y luego compruebe cada máquina de sus compañeros de grupo.

 Instalar el agente SNMP (demonio)

$ sudo apt-get install snmpd


$ sudo apt-get install libsnmp-dev

Debido a un fallo en Ubuntu (https://bugs.launchpad.net/ubuntu/+source/net-


snmp/+bug/1322431), el comando para crear los usuarios SNMPv3 no existe,
mientras se corrige el error, realice siguiente:

$ cd /tmp/
$ wget
https://gist.githubusercontent.com/rarylson/72d1414d6907a4548427/raw/d9
7aed8debf0a291a0457ec634a3be370bd16546/net-snmp-create-v3-user
$ chmod +x net-snmp-create-v3-user
$ sudo mv net-snmp-create-v3-user /usr/local/bin

 Configuración:

Haremos una copia de respaldo del archivo que viene con el paquete, y luego
crearemos uno propio:

$ cd /etc/snmp
$ sudo mv snmpd.conf snmpd.conf.dist
$ sudo editor snmpd.conf

Luego, copiar/pegar lo siguiente (no incluya las líneas -- cortar aquí --)

-- cortar aquí -------------------------

# Escuchar en todas las interfaces (en IPv4 *e* IPv6)


agentAddress udp:161,udp6:[::1]:161

# Configurar comunidad de "sólo lectura"


# y restringir quién se puede conectar
rocommunity NetManage 10.10.0.0/16
rocommunity NetManage 127.0.0.1

# Información sobre este servidor


sysLocation NSRC Network Management Workshop
sysContact sysadm@pcX.ws.nsrc.org

# Cuáles capas OSI están activas


# (applicación + extremo a extremo)
sysServices 72

# Incluye MIB de dskTable que es propietario (además de hrStorageTable)


includeAllDisks 10%

-- cortar aquí -------------------------

Ahora guarde el fichero y salga del editor.

Ahora, adicione el mismo usuario SNMPv3 en su computadora. Se necesita


detener snmpd antes de adicionar el usuario y reinicarlo para aplicar los cambios
y el nuevo usuario

$ sudo service snmpd stop


$ sudo net-snmp-create-v3-user -a SHA -A NetManage admin
$ sudo service snmpd start

Compruebe que está funcionando:


$ snmpstatus localhost

Qué puede observar?

Pruebe con sus vecinos


Compruebe que ahora puede ejecutar snmpstatus con cada uno de los servidores
de su grupo:

$ snmpstatus pcN.ws.nsrc.org

Por ejemplo, en el grupo 5:

* pc17.ws.nsrc.org
* pc18.ws.nsrc.org
* pc19.ws.nsrc.org
* pc20.ws.nsrc.org

Agregar MIBs
Recuerde que cuando ejecutó:

$ snmpwalk 10.10.X.254 .1.3.6.1.4.1.9.9.13.1

El cliente SNMP (snmpwalk) no pudo interpretar todos los OIDS que venían en
la respuesta:

SNMPv2-SMI::enterprises.9.9.13.1.3.1.2.1 = STRING: "chassis"


SNMPv2-SMI::enterprises.9.9.13.1.3.1.6.1 = INTEGER: 1

Qué es '9.9.13.1.3.1' ?

Para poder interpretar esta información, necesitamos instalar MIBs adicionales:

Utilizaremos las siguientes MIBs (no las descargue todavía!):

MIBS de Cisco

ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-ENVMON-MIB.my

Para hacerlo más fácil, tenemos una copia local


en http://noc.ws.nsrc.org/mibs/

Descargalos así:
$ cd /usr/share/mibs
$ sudo mkdir cisco
$ cd cisco

$ sudo wget http://noc.ws.nsrc.org/downloads/mibs/CISCO-SMI.my


$ sudo wget http://noc.ws.nsrc.org/downloads/mibs/CISCO-ENVMON-MIB.my

Ahora tenemos que decir a las herramientas de snmp que tenemos los MIBS que
deberia cargar. Edite el archivo /etc/snmp/snmp.conf y agrega las dos siguiente
lineas:

mibdirs +/usr/share/mibs/cisco
mibs +CISCO-ENVMON-MIB:CISCO-SMI

Grabe el archivo y salga.

Ahora, pruebe de nuevo:

$ snmpwalk 10.10.X.254 .1.3.6.1.4.1.9.9.13.1

Qué puede notar?

SNMPwalk - el resto de MIB-II


Intente ejecutar snmpwalk en cualquiera de los nodos (enrutadores, switches,
PCs) que no haya probado todavía, en la red 10.10.0.X.

Note el tipo de información que obtiene.

$ snmpwalk 10.10.0.X ifDescr


$ snmpwalk 10.10.0.X ifAlias
$ snmpwalk 10.10.0.X ifTable | less
$ snmpwalk 10.10.0.X ifXTable | less
$ snmpwalk 10.10.0.X ifOperStatus
$ snmpwalk 10.10.0.X ifAdminStatus
$ snmpwalk 10.10.0.X if

(Recuerda que con "less" apreta la barra del espacio por la proxima pagina, 'b'
para ir atras una pagina y 'q' para salir)

Puede ver la diferencia entre ifTable y ifXTable?


Que puede ser la diferencia entre 'ifOperStatus' y 'ifAdminStatus' ? Puede
imaginar en qué escenario esto sería útil?

1. Más diversión con las MIBs

 Use SNMP para examinar lo siguiente:

a. los procesos activos en un servidor vecino (hrSWRun)


b. el espacio de disco disponible en un servidor vecino (hrStorage)
c. las interfaces en un servidor vecino (ifIndex, ifDescr)

Puede usar nombres cortos para "caminar" estas tablas?

 Experimente con el comando "snmptranslate", ejemplo:

$ snmptranslate .1.3.6.1.4.1.9.9.13.1

 Pruebe con otros varios OIDs

Potrebbero piacerti anche