Failover con Netwatch III

From MikroTik Wiki
Revision as of 20:20, 15 December 2009 by Webasdf (talk | contribs)
Jump to: navigation, search

El proposito de este script es dar una solucion inmediata a cortes de servicios proveidos por ISP. Esta pensado para una topologia en donde se tienen 2 conexiones con distintos ISP, uno de ellos nos provee de IP fija mientras que el otro de IP Dinamica. Es importante aclarar que no cualquier DNS puede ser utilizado desde cualquier ISP. Cada ISP tiene su propio servicio DNS, es por eso que si se nos cae una conexion es probable que el ISP2 no sea reconocido por los DNS del ISP1 y no nos permita resolver peticiones DNS. La solucion a esto seria utilizar servidores DNS publicos. OpenDNS

Bien para aquellos amantes del Copy Paste, les dejo el codigo a continuacion, mas adelante sera explicado el funcionamiento.

/tool netwatch

   add comment=Test1 disabled=no down-script="/tool netwatch set [find comment=\"Test2\"] disabl\
   ed=no\r\
   \n/tool netwatch set [find comment=\"Test1\"] disabled=yes" host=74.125.47.104 interval=\
   30s timeout=2s up-script=""
   add comment=Test2 disabled=yes down-script=":global GA\r\
   \n:global GA [/ip dhcp-client get \"ether2 Fibertel\" gateway ]\r\
   \n/ip route set [find comment=\"Fibertel\"] gateway=\$GA\r\
   \n/ip route set [find comment=\"Telefonica\"] disabled=yes\r\
   \n/ip route set [find comment=\"Fibertel\"] disabled=no\r\
   \n/tool e-mail send to=\"DIRECCIONDEMAIL\" body=\"Conexion con Telefonica Caid\
   a, Pasado a Fibertel, Ver Falla\" subject=\"Caida de Servicio Telefonica\"\r\
   \n/tool netwatch set [find comment=\"Test3\"] disabled=no\r\
   \n/tool netwatch set [find comment=\"Test2\"] disabled=yes" host=209.191.93.52 interval=\
   30s timeout=2s up-script=":delay 10ms\r\
   \n:log warning \"Iniciado Test2\"\r\
   \n/tool netwatch set [find comment=\"Test1\"] disabled=no\r\
   \n/tool netwatch set [find comment=\"Test2\"] disabled=yes"
   add comment=Test3 disabled=yes down-script="/tool netwatch set [find comment=\"Test4\"] disab\
   led=no\r\
   \n/tool netwatch set [find comment=\"Test3\"] disabled=yes" host=64.233.169.104 \
   interval=30s timeout=2s up-script=""
   add comment=Test4 disabled=yes down-script="/ip route set [find comment=\"Fibertel\"] disable\
   d=yes\r\
   \n/ip route set [find comment=\"Telefonica\"] disabled=no\r\
   \n/tool e-mail send to=\"DIRECCIONDEMAIL\" body=\"Cayo Telefonica y despues Fi\
   bertel, Intentando Volver a Telefonica\" subject=\"Caida de Servicio tipo 2\"\r\
   \n/tool netwatch set [find comment=\"Test1\"] disabled=no\r\
   \n/tool netwatch set [find comment=\"Test4\"] disabled=yes" host=209.191.93.55 interval=\
   30s timeout=2s up-script=":delay 10ms\r\
   \n:log warning \"Iniciado Test4\"\r\
   \n/tool netwatch set [find comment=\"Test3\"] disabled=no\r\
   \n/tool netwatch set [find comment=\"Test4\"] disabled=yes"


Descripcion del funcionamiento:

La solucion esta armada con 4 test o 4 reglas en netwatch.

La primera chequea www.google.com, si por alguna razon esta direccion deja de responder a los ping entonces salta al test2 y se autodeshabilita. El test2 pinguea a www.yahoo.com, si el resultado es "UP" entonces habilita Test1 y se deshabilita test2 si el resultado es "Down", busca la direccion del gateway del ISP que nos da IP Dinamica, y la escribe como ruta estatica, luego deshabilita la ruta estatica que pertenece al ISP que nos da IP fija y habilita la anterior mensionada, envia un mail de alerta, habilita el test3 (correspondiente para la nueva ISP) y se autodeshabilita. El test3 y test4 cumplen la misma funcion que test1 y test2 respectivamente. Solo que en este caso, test4 daria de alta nuevamente a la ISP que nos IP fija.




Fabian Baffoni

See also