Vous êtes sur la page 1sur 21

Balanceo de 3 wan con un RB 750G con PCC

Publicado: 6 mayo, 2018/Debajo: Manuales, Mikrotik, ryohnosuke/Por: JVProducciones

balanceomanualesMikrotik

Fuente: http://www.ryohnosuke.com/foros/index.php?threads/900/

Autor: Nukeko

Publicado: 19 Ago 2011

Saludos, después de buscar buscar… buscar hice un balanceo algo tosco pero funcional con 3 Wan
en mi caso 2 de una misma operadora y la tercera de otra operadora (2 de cantv y 1 de inter, en
venezuela) en fin el código es basado en el famoso balanceo en PCC

les iré indicando el código paso a paso…

primero deben tener ya la configuración básica de su mk, en mi caso el balanceo va con 3 WAN y 1
Local en Ip adress solo configuro la direccion de la local 192.168.2.0/24 las de las wan por ser
dinámicas las colocara automáticamente, cualquier duda solo pregunten, seguimos…
lo siguiente es configurar los mangle y el nat, primero el mangle

CODE, HTML o PHP Insertado:

/ip firewall mangle

add action=mark-connection chain=prerouting disabled=no dst-address-type=!local \

in-interface=local new-connection-mark=wan2_pcc_conn passthrough=yes \

per-connection-classifier=both-addresses:3/0

add action=mark-connection chain=prerouting disabled=no dst-address-type=!local \

in-interface=local new-connection-mark=wan1_pcc_conn passthrough=yes \

per-connection-classifier=both-addresses:3/1

add action=mark-connection chain=prerouting disabled=no dst-address-type=!local \

in-interface=local new-connection-mark=wan3_pcc_conn passthrough=yes \


per-connection-classifier=both-addresses:3/2

add action=mark-routing chain=prerouting connection-mark=wan1_pcc_conn \

disabled=no in-interface=local new-routing-mark=wan1 passthrough=yes

add action=mark-routing chain=prerouting connection-mark=wan2_pcc_conn \

disabled=no in-interface=local new-routing-mark=wan2 passthrough=yes

add action=mark-routing chain=prerouting connection-mark=wan3_pcc_conn \

disabled=no in-interface=local new-routing-mark=wan3 passthrough=yes

quedaria algo asi…

luego el NAT

CODE, HTML o PHP Insertado:

/ip firewall nat

add action=masquerade chain=srcnat disabled=no out-interface=wan1


add action=masquerade chain=srcnat disabled=no out-interface=wan2

add action=masquerade chain=srcnat disabled=no out-interface=wan3

que quedaria algo asi…

ahora, agrega los DHCP CLIENT de cada una de tus WAN


ok teniendo ya esto vamos a las ip Route, allí agregaras el siguiente código OJO debes cambiar las
direcciones que correspondan con cada una de tus WAN, allí debes colocar las gateway de cada
una no su IP

CODE, HTML o PHP Insertado:

/ip route

add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\

190.207.160.1 routing-mark=wan1 scope=30 target-scope=10

add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\

192.168.1.1 routing-mark=wan2 scope=30 target-scope=10

add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=200.8.25.1 \

routing-mark=wan3 scope=30 target-scope=10

add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=255.255.255.0 scope=30 \

target-scope=10
quedaria algo asi….

(nota adicional sobre la distancia de las routes:

Las distancias se los dejo a criterio yo las coloque en uno (1) todas ya queda a criterio personal
como las quieran colocar, aca les dejo la explicacion por Ryo sobre eso

Explicacion rapida por Ryo


Linea1: 512k -> distance: 1 -> 20% conexiones
Linea2: 1M -> distance: 2 -> 30% conexiones
Linea3: 2MB -> distance: 3 -> 50% conexiones

Imagina que se cae la linea2, entonces qué va a pasar? si tienes failover, pues toda la carga, que
sería el 30% de las conexiones, se irían a la ruta de menor distancia, en este caso sería a la Linea1.

Entonces, si acomodas las distancias de acuerdo a la relación «mayor velocidad – menor distancia»
estás asegurando cierta estabilidad en caso de falla.)

una vez hecho esto usa un gestor de descargas puede ser el download accelerator y metele carga
para que veas como trabaja en el winbox, a mi me anda al pelo, si alguna de las wan no te esta
dando kb revisa que el gateway de esa wan sea igual al que colocaste en el Ip -> Route, cualquier
duda pregunten espero les sea de ayuda….

desde Venezuela
Configurar los PPPoE Client para balanceo de carga (mismos o
diferentes proveedores)
Publicado: 6 mayo, 2018/Debajo: Manuales, Mikrotik, ryohnosuke/Por: JVProducciones

Fuente: http://www.ryohnosuke.com/foros/index.php?threads/1678/

Autor: ryohnosuke

Publicado: 5 Ene 2012

Al momento de levantar el PPPoE cliente, usualmente dejamos marcado Add Default Route y Use
Peer DNS, tal como muestra la imagen que saqué del manual que cité antes.

Si leyeron el manual citado, sabrán que Add Default Route agrega una ruta automáticamente en IP
-> Routes, que en realidad es el gateway que nos está entregando nuestro ISP; y Use Peer DNS,
pues lo mismo, pero se trata de los DNS que entrega nuestro proveedor, que se configurará
automáticamente en IP -> DNS.

¿Entonces dónde está el problema?

Pues el problema empieza cuando tenemos 2 o más links (o líneas) de internet del mismo
proveedor, y este normalmente nos dará la misma puerta de enlace, que se agregarán
automáticamente en IP -> Routes, lo que podría ocasionar que MikroTik lo tome como si hubiera
un sólo link de internet, arruinando nuestro balanceo, claro.
En el caso que sean links de internet de distintos proveedores, muchas veces los DNS que nos dan
NO son compatibles con otros ISP, por lo que sentiríamos el internet con bastante lentitud debido
a que no tendríamos resolución de nombres.

Para solucionar estos detalles, entonces tenemos que fijar el gateway (puerta de enlace)
manualmente en IP -> Routes, y en el caso de los DNS, fijar uno manualmente en IP -> DNS -
> botón Settings, necesariamente deberemos utilizar DNS públicos, como OpenDNS o GoogleDNS.

Entonces, empieza la guía. : D

1. En realidad es bastante simple, en Interfaces, al momento de levantar los PPPoE cliente, se


tiene que desmarcar Add Default Route y Use Peer DNS, de esa manera MikroTik no agregará nada
automáticamente, sino seremos nosotros quienes agregaremos manualmente el gateway (por
interfaz) y los DNS.

2. Una vez que tengamos los PPPoE clientes en «Running» o funcionando, tenemos que agregar
manualmente el gateway en IP -> Routes, pero a diferencia de agregar un IP como en esta
guía http://www.ryohnosuke.com/foros/index.php?threads/137/ (paso 4) sólo agregaremos como
gateway cada interfaz pppoe-out1 y pppoe-out2 y todas las interfaces PPPoE cliente que
tengamos, obviamente una regla por cada PPPoE cliente.

Notarán que el segundo gateway que agreguemos -y los demás que agreguemos- serán de color
azul, esto no tiene nada de malo, es simplemente que NO son la «ruta activa» o gateway por
defecto; de la imágen, pppoe-out1 es el gateway por defecto, y esto tiene mucho que ver con
el Distance, la ruta de distancia más baja será el gateway por defecto. Si por ejemplo cambiamos
el Distance donde pppoe-out2 tiene distancia 1, y pppoe-out1 tiene distancia2, entonces pppoe-
out1 se pondrá de color azul, y pppoe-out2 pasará a ser el gateway predeterminado.

Es un hecho que del gateway por defecto será de donde se consuma el internet, debido a que aún
no contamos con la configuración del balanceo de carga.

3. Terminamos con los DNS, nada más fácil que ir a IP -> DNS -> botón Settings, y agregar
manualmente los DNS que vamos a utilizar. Si utilizamos un mismo proveedor, entonces no hay
problema utilizando los DNS del mismo proveedor, pero en el caso de utilizar proveedores
distintos, tocaría utilizar un DNS público como OpenDNS o GoogleDNS.

OpenDNS:

CODE, HTML o PHP Insertado:


208.67.222.222

208.67.220.220

GoogleDNS:

CODE, HTML o PHP Insertado:

8.8.8.8

8.8.4.4

Nota: En realidad el paso 3 es opcional si utilizamos nuestro RB únicamente para hacer el balanceo
de carga, estos DNS deberían de ir más bien en el RB administrador, y la regla del DNS
transparente activada si es que nuestros clientes no tienen estos DNS configurados en su tarjeta
de red (si usamos IP’s fijas).

Pues eso es todo de momento, lo que sigue será la explicación de un Balanceo de carga de 2 lineas
a más.

Terminado manual para el balanceo de


carga http://www.ryohnosuke.com/foros/index.php?threads/1702/

Saludos.
Script para realizar failover en balanceadores con conexiones
dinámicas
Publicado: 9 abril, 2018/Debajo: Manuales, Mikrotik, ryohnosuke/Por: JVProducciones

balanceofailoverscript

Fuente: http://www.ryohnosuke.com/foros/index.php?threads/1648/

Autor: whernandez,

Publicado: 29 Dic 2011

Como dice el titulo les explicare un código desarrollado por mi para realizar el tan problemático
failover que muchos no pueden lograr debido a que no se puede hacer con solo presionar clips. Es
importante destacar que la idea no es solo copiar y pegar, sino leer para comprender lo que se
hace para que así ud pueda aportar nuevas ideas para mejorar este u otro código.

Manos a la obra:

Como he mencionado este código aplica para conexiones dinámicas lo cual cada interfaz debe
obtener su ip por el DHCP-CLIENT, recomiendo que solo una de las interfaces tenga add-default-
route=yes la cual seria la que use el router por defecto para su uso.

Supondremos que todas sus interfaces para internet tienen el nombre wan1, wan2, wan3, …,
wanX y sus new-routing-mark son to_wan1, to_wan2, to_wan3, …, to_wanX.

En routes las rutas deben estar definidas de la siguiente manera:

CODE, HTML o PHP Insertado:

/ip route

add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=wan1 routing-mark=to_wan1


scope=30 target-scope=10

add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=wan2 routing-mark=to_wan2


scope=30 target-scope=10

add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=wanX routing-mark=to_wanX


scope=30 target-scope=10

El valor de X sera el numero total de interfaces de salida que tiene su balanceador y el cual debe
ser sustituido por su valor en la siguiente linea de código.

CODE, HTML o PHP Insertado:

:global X (valor de X);


:for i from=1 to=$X do={

El script se ejecutara tanta interfaces ud halla definido a X.

CODE, HTML o PHP Insertado:

:local pingresultado [/ping 208.67.222.222 interface="wan$i" count=10];

La dirección para el ping puede ser de su elección.

CODE, HTML o PHP Insertado:

:if ($pingresultado>0) do={

:local gatewayactivo [/ip route get [find routing-mark="to_wan$i"] gateway ];

:if ($gatewayactivo != "to_wan$i") do={

:log error "¡WAN$i Arriba!";

/ip route set [find routing-mark="to_wan$i"] gateway="wan$i";

:log info "WAN$i esta activo y se actualizo el Gateway" ;

En esta parte del código si la interfaz funciona se verificara si el gateway que tiene asignada una
ruoting-mark es la que le corresponde

CODE, HTML o PHP Insertado:

:if ($pingresultado=0) do={

:log error "¡WAN$i Caido!";

:local status [/ip dhcp-client get [/ip dhcp-client find interface="wan$i"] status ];

:if ($status="bound") do={

/ip dhcp-client release [find interface="wan$i"];

En el caso que la interfaz este caída y el status del dhcp este en bound haremos que esa interfaz
tenga un release con el fin de renovar su conexión.

CODE, HTML o PHP Insertado:

:global gatewayactivo;

:global j ($i);

:do {

:set j ($j+1);
if ($j=$X+1) do={

:set j 1;

:local pingresultado [/ping 208.67.222.222 interface="wan$j" count=3];

:if ($pingresultado>0) do={

/ip route set [find routing-mark="to_wan$i"] gateway="wan$j";

:log info "WAN$i esta inactivo se le asigno el Gateway del WAN$j" ;

:set gatewayactivo [/ip route get [find routing-mark="wan$i"] gateway ];

} while=($gatewayactivo != "wan$j");

Luego por ultimo se buscara el gateway siguiente y que este activo para asignarle a esa routing-
mark el cual su interfaz se cayo.

Como podrán ver el código puede ser usado para una cantidad infinita de interfaces donde
verificara su estado y cambiara el gateway de la routing-mark al cual se halla caído.

El código completo:

CODE, HTML o PHP Insertado:

:global X (valor de X);

:for i from=1 to=$X do={

:local pingresultado [/ping 208.67.222.222 interface="wan$i" count=10];

:if ($pingresultado>0) do={

:local gatewayactivo [/ip route get [find routing-mark="to_wan$i"] gateway ];

:if ($gatewayactivo != "to_wan$i") do={

:log error "¡WAN$i Arriba!";

/ip route set [find routing-mark="to_wan$i"] gateway="wan$i";

:log info "WAN$i esta activo y se actualizo el Gateway" ;

:if ($pingresultado=0) do={


:log error "¡WAN$i Caido!";

:local status [/ip dhcp-client get [/ip dhcp-client find interface="wan$i"] status ];

:if ($status="bound") do={

/ip dhcp-client release [find interface="wan$i"];

:global gatewayactivo;

:global j ($i);

:do {

:set j ($j+1);

if ($j=$X+1) do={

:set j 1;

:local pingresultado [/ping 208.67.222.222 interface="wan$j" count=3];

:if ($pingresultado>0) do={

/ip route set [find routing-mark="to_wan$i"] gateway="wan$j";

:log info "WAN$i esta inactivo se le asigno el Gateway del WAN$j" ;

:set gatewayactivo [/ip route get [find routing-mark="wan$i"] gateway ];

} while=($gatewayactivo != "wan$j");

2 respuestas a “Script para realizar failover en balanceadores con conexiones dinámicas”

1. GEXEL EVORA

3 enero, 2019 a las 8:06 pm

Te tengo una mejor… en el DHCP-Client Lease Script colocar esto


{
# Script realizado por Gexel M. Evora (no elimines los creditos, eso me motiva a seguir escribiendo)
:local count [/ip route print count-only where comment=$interface];
:if ($bound=1) do={
:local gwaddress ($”gateway-address” . “%$interface”) ;
:if ($count = 0) do={
/ip route add gateway=$gwaddress comment=$interface routing-mark=$interface
} else={
:if ($count = 1) do={
:local test [/ip route find where comment=$interface]
:if ([/ip route get $test gateway] != $gwaddress) do={
/ip route set $test gateway=$gwaddress
}
} else={
:error “Multiples rutas encontradas”
}
}
} else={
/ip route remove [find comment=$interface]
}
}
ENRUTAR IP’S ATRAVES DE UNA WAN ESPECIFICA (AVOID LOAD
BALANCE)
Publicado: 9 abril, 2018/Debajo: Manuales, Mikrotik, ryohnosuke/Por: JVProducciones

balancebalanceoenrutarmanualesMikrotik

Fuente: http://www.ryohnosuke.com/foros/index.php?threads/15558/

Autor: ALEJANDROGORDON

Publicado: 8 Ago 2014

Comúnmente al momento de tener varios proveedores de Internet se realiza un balanceo de carga


para poder realizar un consumo eficiente del ancho de banda disponible en cada proveedor, sin
embargo muchas páginas en ocasiones no permiten que una misma conexión se realice a través de
diferentes direcciones IP, causando que algunos clientes no puedan entrar a sistemas propios o
páginas de gobierno, etc. o simplemente quieren que algunos clientes privilegiados salgan
directamente por la WAN más estable.

Pongamos una topología general:


Esta estructura es la que generalmente se maneja, aunque muchas veces existe un segundo
Mikrotik para la administración.

Podemos observar que existen 5 proveedores de servicio, con los cuales se realiza balanceo de
carga.

Considerando que necesitamos sacar a un cliente, estableceremos el siguiente código:

CODE, HTML o PHP Insertado:

/ ip route

add dst-address=0.0.0.0/0 gateway=y.y.y.y scope=255 target-scope=10 routing-mark="clients


privilegiados" comment="clients privilegiados" disabled=no

/ ip firewall mangle

add chain=prerouting action=mark-routing new-routing-mark="clients privilegiados" src-


address=x.x.x.x passthrough=no comment="" disabled=no
En la primera parte se crea una ruta donde y.y.y.y será el Gateway por defecto de la wan que
necesitamos enviar el tráfico del cliente, además usaremos la opción routing mark la cual será
necesaria para poder especificar en mangle a donde enviaremos el tráfico antes de ser enrutado.

En la segunda parte forzamos a que todos los paquetes sean enviados por la ruta que se prefiere,
x.x.x.x será la ip que necesitamos que salga por la wan necesaria.

Aclaro que se puede usar listas de ip’s, rangos de direcciones ip’s.

También es bueno aclarar que muchas veces las rutas ya se encuentran creadas para el uso en el
balanceo, y es posible reutilizar las mismas rutas para evitar crear más rutas innecesarias.

Nota: la regla creada en el mangle debe ser puesta antes de las reglas del balanceador. Tengan
presente que en esta guía, se la realiza considerando que ya existe un balanceo de carga, y que no
existe un segundo mikrotik.

Bueno tenemos el siguiente escenario y podemos apreciar que ahora tenemos un segundo equipo
para administración el cual se encuentra realizando labores de control de velocidad, qos, firewall,
accesos, etc.

Generalmente se crea un Nat (network address translation), para permitir la navegación de los
clientes sin mayores cambios y sin necesitar tener conocimiento en ruteo. Sin embargo tener una
red con varios Nat, no solo causa mayor retardo por procesamiento, también causa que muchas
aplicaciones no trabajen de forma adecuada.

Ahora podemos apreciar que existe, clientes que necesitas salir por una wan determinada y al
existir varios nat, la tarea se complica, entonces debemos encontrar una solución que nos permita
ver el tráfico de forma transparente para poder manipularlo sin mayores complicaciones.

Consideramos una estructura como la siguiente:

Esta topología es muy común sin embargo es la más ineficiente, por los temas que ya explique
anteriormente. La solución más óptima será eliminar el segundo nat en el Mikrotik Administrador,
de tal forma que se agiliten los procesos.

Bueno pero algunos en este punto se deben preguntar ¿si elimino el nat no habrá internet?, la
respuesta es no habrá internet, los clientes no navegaran pues no existe ninguna forma de llegar a
los clientes de manera directa, para solucionar ese inconveniente vamos a usar rutas estáticas que
nos permitan encaminar el tráfico del R1-LB al R2-ADMIN de la siguiente manera:

CODE, HTML o PHP Insertado:

ip route add dst-address=192.168.4.0/24 gateway=192.168.1.2

Con esa pequeña regla de ruteo logramos encaminar el tráfico sin problemas.

Y a continuación nos queda realizar lo siguiente:

CODE, HTML o PHP Insertado:

/ ip route

add dst-address=0.0.0.0/0 gateway=y.y.y.y scope=255 target-scope=10 routing-mark="clients


privilegiados" comment="clients privilegiados" disabled=no
/ ip firewall mangle

add chain=prerouting action=mark-routing new-routing-mark="clients privilegiados" src-


address=x.x.x.x passthrough=no comment="" disabled=no

En la primera parte se crea una ruta donde y.y.y.y será el Gateway por defecto de la wan que
necesitamos enviar el tráfico del cliente, además usaremos la opción routing mark la cual será
necesaria para poder especificar en mangle a donde enviaremos el tráfico que antes de ser
enrutado.

En la segunda parte forzamos a que todos los paquetes sean enviados por la ruta que se prefiere,
x.x.x.x será la ip que necesitamos que salga por la wan necesaria.

Aclaro que se puede usar listas de ip’s, rangos de direcciones ip’s.

También es bueno aclarar que muchas veces las rutas ya se encuentran creadas para el uso en el
balanceo, y es posible reutilizar las mismas rutas para evitar crear más rutas innecesarias.

Nota: la regla creada en el mangle debe ser puesta antes de las reglas del balanceador. Tengan
presente que en esta guía, se la realiza considerando que ya existe un balanceo creado y que el
segundo mikrotik se encuentra correctamente funcionando.

ALEJANDROGORDON, 8 Ago 2014

Vous aimerez peut-être aussi