Failover con Netwatch III

From MikroTik Wiki
Revision as of 19:22, 30 August 2011 by Takv (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

El propósito de este script es dar una solución inmediata a cortes de servicios provistos por ISPs. Esta pensado para una topología en donde se tienen 2 conexiones con distintos ISP, uno de ellos nos provee de IP fija mientras que el otro de IP Dinámica. Es importante aclarar que no cualquier DNS puede ser utilizado para cualquier ISP. Cada ISP tiene su propio servicio DNS, es por eso que si se nos cae una conexión es probable que el ISP2 no sea reconocido por los DNS del ISP1 y no nos permita resolver peticiones DNS. La solución a esto sería utilizar servidores DNS públicos. OpenDNS

Bien, para aquellos amantes del Copy&Paste, les dejo el código a continuación; más 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"


Descripción del funcionamiento:

La solución está armada con 4 test o 4 reglas en netwatch.

El primer Test chequea www.google.com. Si por alguna razón ésta dirección deja de responder a los ping, entonces salta al Test2 y se autodeshabilita Test1.

El Test2 hace ping a www.yahoo.com, si el resultado es "UP" entonces habilita Test1 y se deshabilita. Si el resultado es "Down", entonces busca la dirección del gateway del ISP que nos da IP Dinámica, la escribe como ruta estática y luego deshabilita la ruta estática que pertenece al ISP que nos da IP fija y habilita la anterior mencionada; envia un mail de alerta, habilita el test3 (correspondiente para la nueva ISP) y se autodeshabilita.

El Test3 y Test4 cumplen la misma función que Test1 y Test2 respectivamente. Solo que en este caso, Test4 levantaría nuevamente a la ISP que nos otorga IP fija.




Fabian Baffoni

(Explicación corregida por Matias Badal)

See also