Você está na página 1de 21

SNMP

SNMP: Administración y Mantenimiento de Redes


con Linux

Por David Guerrero, LinuxFocus enero 1998

Traducido por Ismael Ripoll

Este artículo apareció por primera vez en Linux Journal.


Lo hemos reimpreso y traducido con permiso del autor

Introducción

En el mundo actual, en el que la informática gira en torno al concepto


de red, el trabajo de los administradores de sistemas es muy
complejo. Su misión consiste en mantener en funcionamiento
recursos tales como encaminadores (routers), concentradores
(hubs), switches, servidores, así como cada dispositivo crítico que
conforma la red.

Hay gran cantidad de motivos por los cuales un administrador


necesita monitorizar entre otros : la utilización del ancho de banda,
el estado de funcionamiento de los enlaces, la detección de cuellos
de botella, detectar y solventar problemas con el cableado,
administrar la información de encaminamiento entre máquinas, etc.
La monitorización de la red es también un buen punto desde el que
comenzar el estudio de los problemas de seguridad.

En muchos casos, la red de una organización está enlazada

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 1 de 21
mediante costosos enlaces a redes de área extensa (WAN) o con la
Internet, y cuyos costes dependen del volumen de tráfico. Es muy
importante mantener un registro estadístico del tráfico que circula
por estos enlaces. Ésta situación es bastante común en Europa,
donde los enlaces X.25 son todavía de uso corriente. La tarificación
de este tipo de líneas se realiza en función del número de paquetes
enviados y recibidos.

Otros tipos de enlaces, como los punto a punto (Frame relay), son de
tarifa plana. En éstos la compañía telefónica ha de garantizar un
ancho de banda, el cual es importante monitorizar.

En la última parte de este artículo, se presenta una herramienta que


permite hacer un seguimiento gráfico del tráfico en los
encaminadores (router). Ésta es fácilmente configurable para poder
monitorizar otras clases de información de la red.

¿ Qué es SNMP ?

La respuesta a todas las necesidades antes expuestas, es el


protocolo llamado Simple Network Management Protocol (SNMP).
Diseñado en los años 80, su principal objetivo fue el integrar la
gestión de diferentes tipos de redes mediante un diseño sencillo y
que produjera poca sobrecarga en la red.

SNMP opera en el nivel de aplicación, utilizando el protocolo de


transporte TCP/IP, por lo que ignora los aspectos específicos del
hardware sobre el que funciona. La gestión se lleva a cabo al nivel de
IP, por lo que se pueden controlar dispositivos que estén conectados
en cualquier red accesible desde la Internet, y no únicamente
aquellos localizados en la propia red local. Evidentemente, si alguno
de los dispositivos de encaminamiento con el dispositivo remoto a
controlar no funciona correctamente, no será posible su

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 2 de 21
monitorización ni reconfiguración.

El protocolo SNMP está compuesto por dos elementos: el agente


(agent), y el gestor (manager). Es una arquitectura cliente-servidor,
en la cual el agente desempeña el papel de servidor y el gestor hace
el de cliente.

El agente es un programa que ha de ejecutase en cada nodo de red


que se desea gestionar o monitorizar. Ofrece un interfaz de todos los
elementos que se pueden configurar. Estos elementos se almacenan
en unas estructuras de datos llamadas "Management Information
Base" (MIB), se explicarán más adelante. Representa la parte del
servidor, en la medida que tiene la información que se desea
gestionar y espera comandos por parte del cliente.

El gestor es el software que se ejecuta en la estación encargada de


monitorizar la red, y su tarea consiste en consultar los diferentes
agentes que se encuentran en los nodos de la red los datos que
estos han ido obteniendo.

Hay un comando especial en SNMP, llamado trap, que permite a un


agente enviar datos que no han sido solicitados de forma explícita al
gestor, para informar de eventos tales como: errores, fallos en la
alimentación eléctrica, etc.

En esencia, el SNMP es un protocolo muy sencillo puesto que todas


las operaciones se realizan bajo el paradigma de carga-y-
almacenamiento (load-and-store), lo que permite un juego de
comandos reducido. Un gestor puede realizar sólo dos tipos
diferentes de operaciones sobre un agente: leer o escribir un valor
de una variable en el MIB del agente. Estas dos operaciones se
conocen como petición-de-lectura (get-request) y petición-de-
escritura (set-request). Hay un comando para responder a una

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 3 de 21
petición-de-lectura llamado respuesta-de-lectura (get-response),
que es utilizado únicamente por el agente.

La posibilidad de ampliación del protocolo está directamente


relacionado con la capacidad del MIB de almacenar nuevos
elementos. Si un fabricante quiere añadir un nuevo comando a un
dispositivo, como puede ser un encaminador, tan sólo tiene que
añadir las variables correspondientes a su base de datos (MIB).

Casi todos los fabricantes implementan versiones agente de SNMP


en sus dispositivos: encaminadores, hubs, sistemas operativos, etc.
Linux no es una excepción, existen varios agentes SNMP disponibles
públicamente en la Internet.

La cuestiónde la seguridad

SNMP ofrece muy poco soporte para la autentificación. Tan sólo


ofrece el esquema de dos palabras clave (two-passwords). La clave
pública permite a los gestores realizar peticiones de valores de
variables, mientras que la clave privada permite realizar peticiones
de escritura. A estas palabras clave se les llama en SNMP
communities. Cada dispositivo conectado con una red gestionada
con SNMP, ha de tener configuradas estas dos communities.

Es muy común tener asignando por defecto el valor "public" al


community público, y "private" al privado. Por lo que es muy
importante cambiar estos valores para proteger la seguridad de tu
red.

¿ Quées el MIB ?

SNMP define un estándar separado para los datos gestionados por


el protocolo. Este estándar define los datos mantenidos por un

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 4 de 21
dispositivo de red, así como las operaciones que están permitidas.
Los datos están estructurados en forma de árbol; en el que sólo hay
un camino desde la raíz hasta cada variable. Esta estructura en árbol
se llama Management Information Base (MIB) y se puede encontrar
información sobre ella en varios RFC's.

La versión actual de TCP/IP MIB es la 2 (MIB-II) y se encuentra


definida en el RFC-1213. En ella se divide la información que un
dispositivo debe mantener en ocho categorías (ver Tabla 1).
Cualquier variable ha de estar en una de estas categorías.

Tabla 1. Categorías TCP/IP


Categoría Información
system Información del host del sistema de encaminamiento
interfaces Información de los interfaces de red
addr-translation Información de traducción de direcciones
ip Información sobre el protocolo IP
icmp Información sobre el protocolo ICMP
tcp Información sobre el protocolo TCP
udp Información sobre el protocolo UDP
egp Información sobre el protocolo (Exterior Gateway)

La definición de un elemento concreto MIB implica la especificación


del tipo de dato que puede contener. Normalmente, los elementos
de un MIB son enteros, pero también pueden almacenar cadenas de
caracteres o estructuras más complejas como tablas. A los
elementos de un MIB se les llama "objetos". Los objetos son los
nodos hoja del árbol MIB, si bien, un objeto puede tener más de una
instancia, como por ejemplo un objeto tabla. Para referirse al valor
contenido en un objeto, se ha de añadir el número de la instancia.
Cuando sólo exista una instancia del objeto, está es la instancia cero.

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 5 de 21
Por ejemplo, el objeto ifNumber de la categoría "interfaces" es un
entero que representa el número de interfaces presentes en el
dispositivo; mientras el objeto ipRoutingTable de la categoría "ip"
contiene la tabla de encaminamiento del dispositivo.

Hay que acordarse de utilizar el número de la instancia para leer el


valor de un objeto. En este caso, el número de interfaces presentes
en un encaminador puede ser observado mediante la instancia
ifNumber.0.

En el caso de ser un objeto tabla, se ha de utilizar el índice a la tabla


como último número para especificar la instancia (fila de la tabla).

Existe otro estándar que define e identifica las variables MIB, llamado
"Structure of Management Information" (SMI). SMI especifica las
variables MIB, éstas se declaran empleando un lenguaje formal ISO
llamado ASN.1, que hace que tanto la forma como los contenidos de
estas variables sean no ambiguos.

El espacio de nombres ISO (árbol) está situado dentro de un espacio


de nombres junto con otros árboles de otros estándares de otras
organizaciones. Dentro del espacio de nombres ISO hay una rama
específica para la información MIB. Dentro de esta rama MIB, los
objetos están a su vez jerarquizados en subárboles para los distintos
protocolos y aplicaciones, de forma que esta información puede
representarse unívocamente.

La Figura 1 muestra el espacio de nombres del MIB del TCP/IP, éste


está situado justo bajo el espacio del IAB "mgmt". La jerarquía
también específica el número para cada nivel.

Figura 1. TCP/IP Organizational Tree

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 6 de 21
Es importante constatar que la mayor parte del software necesita el
punto raíz (.) para localizar el objeto en el MIB. Si no se incluye el
punto raíz, se asume que el path es relativo desde
.iso.org.dod.internet.mgmt.mib-2.

De esta forma, el objeto ifNumber de la categoría "interfaces" se


puede llamar:

.iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber

o el equivalente numérico:

.1.3.6.1.2.1.2.1

y la instancia es:

.iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber.0

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 7 de 21
o el equivalente numérico:

.1.3.6.1.2.1.2.1.0

Adicionales MIB se pueden añadir a este árbol conforme los


vendedores definen nuevos objetos y publican los correspondientes
RFC.

¿ Cuál es el futuro de SNMP ?

Una nueva especificación llamada SNMPv2 está actualmente en


rápido desarrollo. Esta versión trata de solucionar la laguna existente
en cuestiones de seguridad del protocolo actual mediante
mecanismos que se centran en la privacidad, la autentificación y el
control de acceso. También permitirá un complejo mecanismo de
especificación de variables, así como algunos comandos nuevos. El
problema del SNMPv2 es que aún no es un estándar ampliamente
aceptado, a diferencia del SNMPv1. No es fácil encontrar versiones
de SNMPv2 de agentes ni de software que haga uso de los nuevos
comandos. Dejemos que pase el tiempo y ya veremos que sucede
en el futuro próximo...

SNMP en Linux

Uno de los paquetes más populares de SNMP es el CMU-SNMP.


Diseñado originalmente en la Universidad de Carnegie Mellon, ha
sido transportado a Linux por Juergen Schoenwaelder y Erik
Schoenfelder. Es completamente compatible con el estándar
SNMPv1 e incluye algunas de las nuevas funcionalidades de
SNMPv2.

La distribución contiene algunas herramientas de gestión que


permiten, desde la línea de comandos, enviar peticiones a

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 8 de 21
dispositivos que ejecuten agentes SNMP. También contiene un
programa agente SNMP, diseñado para ejecutarse sobre Linux, que
ofrece a gestores ejecutándose en la red (o en el propio sistema),
información sobre el estado de los interfaces, tablas de
encaminamiento, instante de inicio (uptime), información de
contacto, etc.

Una valiosa característica añadida que viene con CMU-SNMP es un


SNMP C-API, que permite a los programadores construir complejas
herramientas de gestión basadas en las capacidades de red de la
distribución.

La instalación en un sistema Linux es sencilla, si bien algo diferente


de la instalación original. Existe una distribución con los ejecutables
pre-compilados de las herramientas de gestión, el demonio y la
biblioteca API.

Lo primero que se ha de hacer es decidir si "bajarse" la distribución


con los fuentes, o la distribución con los ejecutables. No es difícil
encontrar este paquete en la Internet. La distribución binaria se
instala y ejecuta sin problema alguno en los Linux que soporten ELF.
Si bien explicaremos cómo instalar la distribución binaria, es una
buena práctica el bajarse las distribuciones binarias únicamente de
servidores Internet de confianza para evitar caballos de Troya y otros
problemas de seguridad.

Copia el fichero cmu-snmp-linux-3.4-bin.tar.gz en el directorio


raíz (/). Descomprímelo y extrae los fichero del tar con con la
siguiente orden:

tar zxvf cmu-snmp-linux-3.4-bin.tar.gz

Ahora tendrás todas las utilidades y bibliotecas correctamente

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 9 de 21
instaladas en el sistema, a excepción del fichero de configuración del
agente: /etc/snmpd.conf. Lo puedes crear ejecutando el siguiente
"script":

/tmp/cmu-snmp-linux-3.4/etc/installconf

con los siguientes parámetros:

/tmp/cmu-snmp-linux-3.4/etc/installconf -mini password

donde password es la palabra clave pública (community) que se vaya


a utilizar. Ahora se puede editar el nuevo fichero de configuración
/etc/snmpd.conf. En él, se pueden cambiar el valor de puerto UDP
empleado por el agente, las variables systemContact, sysLocation y
sysName, así como los parámetros de velocidad del interface para
las tarjetas de red y los puertos PPP.

Las herramientas más importantes de gestión de este paquete son:

/usr/bin/snmpget Un programa diseñado para consultar un


valor concreto a un agente MIB de la red (una encaminador, un
hub, etc).
/usr/bin/snmpgetnext Permite leer el siguiente objeto de un
árbol MIB sin necesidad de conocer el nombre.
/usr/bin/snmpset Una herramienta para escribir valores en los
objetos de agentes remotos.
/usr/bin/snmpwalk Herramienta que lee un objeto completo o
una serie de objetos sin necesidad de especificar la instancia
exacta. Es útil para pedir objetos tipo tabla.
/usr/bin/snmpnetstat
/usr/bin/snmptrapd Demonio que escucha los "traps"de los
agentes.
/usr/bin/snmptest Herramienta interactiva diseñada para

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 10 de 21
demostrar las posibilidades del API.

El agente se encuentra en el directorio /usr/sbin/snmpd.

CMU_SNMP también instala un fichero MIB en /usr/lib/mib.txt. Éste


es un buen lugar en donde buscar qué tipo de información se le
puede pedir a un dispositivo de red.

El agente se tiene que lanzar a ejecución cuando se pone en marcha


la máquina. Ésto se puede hacer añadiendo el siguiente comando en
alguno de los ficheros de arranque (por ejemplo en /etc/rc.f/rc.local):

/usr/sbin/snmpd -f ; echo 'Arrancando snmpd'

Una vez se tiene el agente SNMP en ejecución en la máquina Linux,


se puede comprobar su funcionamiento con alguna de las
herramientas de gestión, por ejemplo:

/usr/bin/snmpget localhost public interfaces.ifNumber.0

la cual retornará el número de interfaces configurados en el sistema,


y:

/usr/bin/snmpwalk localhost public system

devuelve todos los valores en el subárbol "system" del MIB. (Véase


en la Figura 2 el resultado de esta orden).
Figura 2
dragon:~$ /usr/bin/snmpwalk

usage: snmpwalk gateway-name community-name object-identifier

dragon:~$ /usr/bin/snmpwalk localhost public system

system.sysDescr.0 = "Linux version 2.0.24 (root@dragon)


(gcc version 2.7.2) #6 Mon Nov 25 15t08t40 MET 1996"

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 11 de 21
system.sysObjectID.0 = OID: enterprises.tubs.ibr.linuxMIB
system.sysUpTime.0 = Timeticks: (39748002) 4 days, 14t24t40
system.sysContact.0 = "David Guerrero"
system.sysName.0 = "dragon "
system.sysLocation.0 = "Madrid (SPAIN)"
system.sysServices.0 = 72
system.sysORLastChange.0 = Timeticks: (39748006) 4 days, 14t24t40
system.sysORTable.sysOREntry.sysORID.1 = OID:
enterprises.tubs.ibr.linuxMIB.linuxAgents.1
system.sysORTable.sysOREntry.sysORDescr.1 = "LINUX agent"
system.sysORTable.sysOREntry.sysORUpTime.1 = Timeticks: (39748007)
4 days, 14t24t40

dragon:~$

El C-API está en el directorio /lib/libsnmp.so.3.4.

Se pueden ojear los ficheros de cabecera relacionados con la


biblioteca en :

/usr/include/snmp/snmp.h
/usr/include/snmp/snmp_impl.h
/usr/include/snmp/asn1.h
/usr/include/snmp/snmp_api.h

Se puede encontrar más información en las páginas del manual


snmp_api(3) y varibles(5).

Existe también un módulo Perl de interface con CMU C_API con el


que se pueden realizar fácilmente llamadas a esta biblioteca desde
programas Perl (Perl-scripts).

MRTG: Multi Router Traffic Grapher

MRTG es una avanzada utilidad gráfica escrita por Tobias Oetiker y


Dave Rand para representar gráficamente los datos que los gestores

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 12 de 21
SNMP leen de los agentes SNMP. Produce unas vistosas págimas
HTML con gráficos GIF sobre el tráfico entrante y saliente en los
interfaces de red prácticamente tiempo real. Con esta herramienta
se evita el tener que trabajar directamente con las utilidades CMU-
SNMP mediante línea de comandos. Ésta es la herramienta más
potente y fácil de utilizar que he encontrado en la Internet.

MRTG utiliza una implemantación de SNMP escrita completamente


en Perl, por tanto, no es necesario instalar otros paquetes. El
programa principal está escrito en "C" para acelerar el proceso de
toma de muestras y la generación de imágenes GIF. Los gráficos son
generados con la ayuda de la biblioteca GD escrita por Thomas
Boutell, autor de la FAQ WWW.

El paquete contiene algunas utilidades para analizar los interfaces de


enlace, extraer sus características y generar los ficheros de
configuración base, que luego se pueden modificar para adaptarlos
a las necesidades concretas.

Otra característica interesante del MRTG es la cantidad de


información que produce. Permite cuatro niveles de detalle para
cada interface: tráfico en las últimas 24 horas, la última semana, el
último mes y un gráfico anual. Ésto permite recoger información para
realizar estadísticas. Guarda toda esta información en una base de
datos utilizando un algoritmo de consolidación que impide que los
ficheros crezcan de forma desmesurada.

También genera una página principal que contiene las imágenes GIF
de los detalles diarios de cada interface del encaminador, lo que
permite hacerse una idea general de qué es lo que está pasando en
el encaminador con un sólo vistazo. Se puede ver la página principal
generada por MRTG en las Figuras 3 y 4.

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 13 de 21
Veamos el procedimiento básico de instalación. Lo primero que se
necesita es la distribución. En el momento de escribir este artículo, la
última versión es la 2.5.1 (está disponible en castellano (español) y
pre-compilada); puedes encontrar la dirección URL del servidor
principal al final de este artículo.

Antes de comenzar la instalación del MRTG es necesario instalar la


biblioteca GD la dirección URL también está al final del artículo. La
versión actual es la 1.2 y no deberían haber problemas en compilarla
e instalarla. Sencillamente hay que ejecutar make en el directorio en
el que se ha desempaquetado la distribución y se genera como
resultado el fichero llamado libgd.a. Se copia este fichero al
directorio /usr/local/lib y los ficheros con extensión .h al directorio
/usr/local/include/gd.

En este punto el paquete GD debe estar correctamente instalado.


Ahora se puede compilar el paquete MRTG. Extrae la distribución y
edita el fichero Makefile para indicar donde se encuentra la
biblioteca y los archivos de cabecera de GD, así como cual es el
fichero ejecutable Perl 5.003: normalmente se encuentra en
/usr/bin/perl o en /usr/local/bin/perl.

Construye el programa principal tecleando make rateup; cuando


termine la compilación, teclea make substitute para incluir el path
correcto del interprete de Perl en los scripts de Perl que utiliza
MRTG.

Copia los siguientes ficheros su directorio destino final (por ejemplo:


/usr/local/mrtg): BER.pm, SNMP_Session.pm, mrtg y rateup. También
se han de copiar en este directorio los dos ficheros de configuración:
indexmaker y cfgmaker.

Asegúrese que todos los programas tienen permiso de ejecución. Ya

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 14 de 21
está todo listo para crear un fichero de configuración sencillo. Es
necesario tener acceso SNMP de lectura al encaminador. Para un
encaminador de la marca Cisco, las líneas de configuración que dan
permiso son:

access-list 99 permit 193.147.0.8


access-list 99 permit 193.147.0.9
access-list 99 permit 193.147.0.130
snmp-server community public RO 99>

Esto permite peticiones de sólo lectura desde las direcciones


especificadas en la lista 99, empleando la palabra clave "public"
como community. Si lo que se quiere es permitir el acceso desde
cualquier máquina en modo sólo lectura al encaminador, entonces la
línea ha de ser la siguiente:

snmp-server community public RO

Si el encaminador de la red es de otra marca, entonces se ha de


consultar el manual para determinar cómo permitir el acceso SNMP.

El script cfgmaker simplifica mucho la tarea de construir el fichero de


configuración. Todo lo que hay que hacer es ejecutarlo con los
siguientes parámetros:

cfgmaker <community>@<router-host-name or IP>

Por ejemplo:

cfgmaker public@mec-router.rediris.es > mrtg.cfg

Localizará todos los interfaces del encaminador mec-


router.rediris.es y escribirá una sección en el fichero con las
especificaciones del número de interfaces, velocidad máxima,

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 15 de 21
descripción, etc., junto con algunas etiquetas HTML para que
puedan ser incluidas en la página detallada. Es posible editar este
fichero HTML para traducirlo al idioma y preferencias propias. Se
puede ver en la Figura 5 la salida de uno de los interfaces de mi
encaminador.
Figura 5
Target[mec-router.1]: 1:public@mec-router
MaxBytes[mec-router.1]: 1250000
Title[mec-router.1]: mec-router.rediris.es (mec-router.mec.es): Ethernet0
PageTop[mec-router.1]: <H1>Estadisticas del puerto Ethernet0<BR>
Red del MEC (MECNET)</H1>
<TABLE>
<TR><TD>System:</TD><TD>mec-router.rediris.es en RedIRIS </TD>
</TR>
<TR><TD>Maintainer:</TD><TD>david@mec.es</TD></TR>
<TR><TD>Interface:</TD><TD>Ethernet0 (1)</TD></TR>
<TR><TD>IP:</TD><TD>mec-router.mec.es (193.147.0.1)</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>

Ahora se puede ejecutar el programa mrtg por primera vez.


Sencillamente ejecuta:

./mrtg mrtg.cfg

Si todo va bien, el programa se pondrá en contacto con el


encaminador, pedirá algunos valores y generará algunos ficheros de
registro y algunos ficheros GIF en el directorio actual. No hay que
sorprenderse por las quejas respecto los ficheros de registro y de
gráficos que no ha encontrado, esto sólo sucede la primera vez que
se ejecuta. Elimina los ficheros de gráficos que genera y vuelve a
ejecutar el programa otra vez. El gráfico generado mostrará el tráfico
producido en el intervalo desde la última ejecución del programa.
También genera páginas HTML para cada interface.

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 16 de 21
Ahora vamos a indicarle a MRTG como ejecutarse adecuadamente
en el sistema. Primero se ha de crear un directorio dentro del
directorio principal del web servidor (suponiendo que en el sistema
haya un servidor web en funcionamiento) para contener las páginas
y gráficos que MRTG generará cada vez que se ejecute. Añade este
directorio en la cabecera del fichero de configuración con la directiva
WorkDir: /usr/local/web/mrtg (suponiendo que el directorio raíz está
situado en /usr/local/web). La próxima vez que MRTG se ejecute,
creará los ficheros de registro y de gráficos en este directorio,
pudiendo accederse vía http://your_host.domain/mrtg.

Ahora vamos a construir la página principal para todos los interfaces


como la que aparece en la Figura 3. Ésto se puede llevar a cabo con
la utilidad indexmaker. Ejecuta:

indexmaker mrtg.cfg <router-name regexp> >


/usr/local/web/mrtg/index.html

Se generará un documento HTML con gráficos diarios de aquellos


interfaces cuyo nombre de encaminador coincida con la expresión
regular anterior y los enlaza con la página individual detallada.

Como se puede imaginar, el programa MRTG se ha de ejecutar a


intervalos regulares para recoger datos en cada intervalo y generar
los gráficos periódicamente, de forma que de la impresión de ser
una monitorización en tiempo real. Esto se puede conseguir
mediante la siguiente línea en el fichero /etc/crontab (suponiendo
/usr/local/mrtg-bin como el directorio donde reside el programa
mrtg):

0,5,10,15,20,25,30,35,40,45,50,55 * * * * \
/usr/local/mrtg-bin/mrtg \
/usr/local/mrtg-bin/mrtg.cfg > \

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 17 de 21
/dev/null 2>&1

En caso de tratarse de una distribución Red Hat, la línea que se


tendría que añadir sería:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * root \
/usr/local/mrtg-bin/mrtg \
/usr/local/mrtg-bin/mrtg.cfg > \
/dev/null 2>&1

Si no se ha producido ningún problema, ahora se puede dedicar


algún tiempo para acabar de configurar y ajustar la página índice
HTML. Una buena mejora consiste en incluir en la sección de
cabecera de esta página un código <META .....> para obligar al visor
web a recargar la información cada 300 segundos.

Otra mejora que se puede incluir en el fichero de configuración es la


directiva WriteExpire, que fuerza a MRTG a crear ficheros ".meta"
para cada fichero GIF y página HTML, eliminando innecesarias
operaciones de "cache" tanto en los servidores proxy como en los
propios visores web. Para ello también es necesario configurar el
servidor Apache (suponiendo que sea éste el servidor) para que lea
estos ficheros ".meta" y envíe correctamente las cabeceras "Expire"
con la directiva MetaDiren el fichero XXXX.

Se pueden encontrar más directivas en el fichero de configuración


ejemplo que viene con la distribución; que por cierto, está muy bien
documentado. Es posible modificar la disposición de las imágenes
generadas por MRTG.

Espero que te guste este programa, si es así, enviarle a los autores


una tarjeta; puedes encontrar su dirección en la página web de
MRTG.

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 18 de 21
Otros Programas

Existe un programa similar llamado Router-Stats, escrito por Iain Lea,


el autor del famoso programa lector de correo "tin". Router-Stats
actualiza los gráficos una vez al día y muestra información
estadística muy interesante sobre la utilización por horas y otros
aspectos. El único problema es que se apoya en muchos programas
externos. (SMU-SNMP para las tareas con SNMP, GNUPLOT para
trazar gráficos, NetPBM y GIFTOOL para trabajar con gráficos).

Hay otra categoría de software que da un paso más allá en la tarea


de gestión de redes, ofreciendo una solución completa tanto para
monitorizar como para configurar toda la red. Este tipo de solución
permite obtener una compleja representación gráfica de la red y
ojear fácilmente los nodos que la componen, verificando detalles de
configuración específicos y otras cuestiones de interés.

A este nivel podemos hablar de dos soluciones comerciales


ampliamente utilizadas: "HP-OpenView" de Hewlett-Packard y
"SunNet Manager" de Sun. Estas herramientas ofrecen una
plataforma integrada para la gestión de los recursos de red, a través
de impresionantes interfaces gráficos. Entre otras utilidades,
disponen de herramientas para localizar los nodos de la red en los
que se están ejecutándo agentes SNMP. Otra característica
importante es la capacidad de integrar productos de otros
fabricantes, como el CiscoWork de Cisco, que permite al
administrador mantener una base de datos con todas las
configuraciones de los encaminadores e incluso monitorizar
gráficamente los paneles traseros de los encaminadores con todas
sus conexiones.

Los dos inconvenientes fundamentales de estos productos es que

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 19 de 21
son comerciales y no están disponibles para Linux. Pero por
supuesto que existen soluciones disponibles públicamente con una
funcionalidad más o menos similar. Uno de los paquetes que he
encontrado es el Scotty. Scotty es un paquete basado en TCL que
permite crear programas específicos a las necesidades de la red
propia, empleando un API de alto nivel de cadenas de caracteres. Un
paquete similar es el Tkined. Es un editor de red que ofrece
extensiones para crear un entorno de trabajo completo, integrando
algunas herramientas para localizar redes IP, soporte para el proceso
de instalación de la red o resolución de problemas en redes IP
utilizando SNMP en combinación con otras utilidades estándar (por
ejemplo traceroute). Scotty también incluye un visor gráfico MIB que
permite explorar fácilmente información MIB.

Puedes encontrar referencias tanto de paquetes comerciales como


de software libre al final del artículo.

Conclusiones

SNMP es un protocolo sencillo pero potente que puede ayudar a


monitorizar los recursos de red sin sobrecargar mucho la red. Quizás
las extensiones que se están llevando a cabo actualmente
incrementarán la complejidad y las posibilidades de esta herramienta
pero a cambio incrementará los recursos necesarios para
implementarla.

En este artículo, se han presentado dos herramientas que se pueden


encontrar en la Internet. Existe una multitud de herramientas que se
están desarrollando continuamente. Consulta el grupo de noticias de
Usenet comp.protocols.snmp para estar al tanto sobre anuncios
sobre nuevo software y MIBs.

Enlaces de interés

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 20 de 21
CMU-SNMP for Linux:
ftp://sunsite.unc.edu/pub/Linux/system/network/admin/cmu-snmp-linux-
3.2-bin.tar.gz

Módulo de extensiones de PERL 5 para CMU-SNMP:


ftp://ftp.wellfleet.com/netman/snmp/perl5/SNMP.tar.gz

Multi Router Traffic Grapher (MRTG):


http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html

GD Biblioteca gráfica: (necesaria para el MRTG)


http://www.boutell.com/gd/

Perl 5.003: (necesario para el MRTG)


http://www.perl.com/perl/info/software.html

Lista de correo de MRTG:

Lista de discusión
Envía un correo-e a mrtg-request@list.ee.ethz.ch with "subscribe" in
the subject
Lista de anuncios
Envía un correo-e a mrtg-announce-request@list.ee.ethz.ch with
"subscribe" in the subject

Router Stats:
http://www.scn.de/~iain/router-stats/

Software de gestión de red SNMP:


http://wwwsnmp.cs.utwente.nl/software/

Scotty:
http://wwwsnmp.cs.utwente.nl/~schoenw/scotty/

Scotty + Tkined para Linux:


ftp://sunsite.unc.edu/pub/Linux/system/network/admin/tkined-
1.3.4+scotty-ELF.tar.gz

http://redesdecomputadores.umh.es/aplicacion/snmp.htm#SNMP 24/8/17 10?22


Página 21 de 21

Você também pode gostar