Difference between revisions of "Failover con Netwatch III"

From MikroTik Wiki
Jump to: navigation, search
m
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
El proposito de este script es dar una solucion inmediata a cortes de servicios proveidos por ISP.
+
El propósito de este script es dar una solución inmediata a cortes de servicios provistos por ISPs.
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.
+
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 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. [http://www.opendns.com OpenDNS]
+
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. [http://www.opendns.com OpenDNS]
  
Bien para aquellos amantes del Copy Paste, les dejo el codigo a continuacion, mas adelante sera explicado el funcionamiento.
+
Bien, para aquellos amantes del Copy&Paste, les dejo el código a continuación; más adelante sera explicado el funcionamiento.
  
 
/tool netwatch
 
/tool netwatch
Line 41: Line 41:
  
  
Descripcion del funcionamiento:
+
Descripción del funcionamiento:
  
La solucion esta armada con 4 test o 4 reglas en netwatch.
+
La solución está 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
+
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.  
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.
+
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.
  
  
Line 56: Line 58:
  
 
Fabian Baffoni
 
Fabian Baffoni
 +
 +
(Explicación corregida por Matias Badal)
  
 
=See also=
 
=See also=
  
* [[Failover_via_Netwatch_III_(English)]]
+
*[[Failover via Netwatch III (English)]]

Latest revision as of 19:22, 30 August 2011

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