Monitorizar el estado de una (o varias) rutas

Últimamente andamos con un problema de lo mas extraño (que yo creo que no es por culpa nuestra, a ver si conseguimos arreglarlo (me lo apunto para otro post)). El caso es que necesitamos alguna forma de comprobar que unos switches tengan todas las rutas que tienen que tener (que son aprendidas desde un equipo en el CPD y propagadas por una MPLS de un proveedor).

Lo primero que pensamos fue … snmp … mirar desde la consola de monitorización la tabla de rutas y comparar con la siguiente lectura, si el numero es igual todo perfecto … sino alerta al canto. El problema es que, cuando se pierden las rutas, la monitorización deja de funcionar (porque no es capaz de llegar a los equipos) así que tuvimos que descartar esa forma (lo de montar sondas locales lo dejaremos para otro rato).

Así que se me ocurría una cosa …

1.- Montar un linux en local, modificar el super script para que hiciera un show ip route y compararlo con otro …

Y después de buscar un rato descubrí que hay otra forma mas sencilla de hacerlo. Por lo visto (al final voy a acabar siendo un «experto» en estas cosas) hay dos cosas que vienen por defecto en la IOS de los equipos (depende de que versión).

Enhanced Object Tracking que vale para poner una serie de test (que es justo lo que necesitamos) y Embedded Event Manager que lo que hace es interpretar los eventos y ejecutar acciones (snmp, enviar correos, etc).

Encontré un tutorial muy efectivo con su configuración: http://blog.ipspace.net/2007/02/reporting-state-of-ip-route.html.

Lo que hay que hacer:

Crear un Track Object para monitorizar lo que necesites, en nuestro caso una ruta en concreto

conf t
track 100 ip route x.x.x.x x.x.x.x reachability (hay muchas opciones que se pueden ver en el enlace anterior)

Con esto creamos el track, después hay que definir la acción

event manager applet comprueba_x.x.x.x
event track 100 state any
action 1.0 syslog msg «route is $_track_state»

Y aquí empieza lo «gracioso», dependiendo de la version de IOS que tengas puedes hacer algunas cosas y otras no.

Por ejemplo:

action snmp-trap
action mail (que es la que nos interesaba a nosotros y que no se si esta soportada por la version de IOS de mi cacharro).

En este caso la sintaxis es la siguiente:

action label mail server server-address to to-address from from-address [ cc cc-address ] subject subject body body-text port port-number secure { none | tls } source-address { ipv4-address | ipv6-address } source-interface interface-type interface-number vrf vrf-name

El manual tiene algunos ejemplos (menos mal).

Para mas información:

http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/eem/command/eem-cr-book.html

Estoy alucinando con la potencia que tiene esto … Tengo que leerlo con mas calma.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.