Como fazer um balanceamento de carga de uma forma eficaz sem subutilizar um dos links ou dividir sua rede, usando “ECMP load balance” no mikrotik.
Cenário:
LAN: 192.168.0.1/24
WAN1: 172.16.10.10/32 – Link Embratel 2Mb
WAN2: 172.16.20.10/32 – Link OI 2Mb
ISP Mikrotik:
LAN: 192.168.0.1
WAN1:172.16.10.1
WAN2:172.16.20.1
ISP Routers:
WAN1: 172.16.10.10
WAN2:172.16.20.10
*** Regras:
/ip address
add address=192.168.0.1/24 broadcast=192.168.0.255 comment=”LAN” disabled=no \
interface=ether2 network=192.168.0.0
add address=172.16.10.1/24 broadcast=172.16.10.255 comment=”WAN1″ disabled=no \
interface=ether3 network=172.16.10.0
add address=172.16.20.1/24 broadcast=172.16.20.255 comment=”WAN2″ disabled=no \
interface=ether1 network=172.16.20.0
/ ip route
add dst-address=0.0.0.0/0 gateway=172.16.10.10,172.16.20.10 check-gateway=ping
/ ip firewall nat
add chain=srcnat out-interface=WAN1 action=masquerade
add chain=srcnat out-interface=WAN2 action=masquerade
/ ip firewall mangle
add chain=input in-interface=WAN1 action=mark-connection new-connection-mark=wan1_conn
add chain=input in-interface=WAN2 action=mark-connection new-connection-mark=wan2_conn
add chain=output connection-mark=wan1_conn action=mark-routing new-routing-mark=to_wan1
add chain=output connection-mark=wan2_conn action=mark-routing new-routing-mark=to_wan2
/ ip route
add dst-address=0.0.0.0/0 gateway=172,16.10.10 routing-mark=to_wan1
add dst-address=0.0.0.0/0 gateway=172.16.20.10 routing-mark=to_wan2
*** IP Address:
/ip address
add address=192.168.0.1/24 broadcast=192.168.0.255 comment=”LAN” disabled=no \
interface=ether2 network=192.168.0.0
add address=172.16.10.10/24 broadcast=172.16.10.255 comment=”WAN1″ disabled=no \
interface=ether3 network=172.16.10.0
add address=172.16.20.10/24 broadcast=172.16.20.255 comment=”WAN2″ disabled=no \
interface=ether1 network=172.16.20.0
Neste trecho definimos os ips da interface local LAN (192.168.0.1/24) e os ips das interfaces externas WAN(172.16.10.1/24 e 172.16.20.1/24), claro, ips inválidos, adeque a sua necessidade!
*** Routing:
/ ip route
add dst-address=0.0.0.0/0 gateway=172.16.10.10,172.16.20.10 check-gateway=ping
Aqui criamos uma rota tipica de ECMP (Equal Cost Multi-Path), com check-gateway. Por definição o ECMP é persistente por conexão, ou seja, se um cliente estabelece conexão pelo gateway 172.16.10.10, ele irá utilizar somente este gateway durante ESTA conexão. Assim que um dos links cair o check-gateway irá remove-lo da lista de gateway, com isso você terá um efeito failover de brinde .
você pode utilizar também links assimétricos, por exemplo, digamos que o link da OI seja de 4Mb e o da Embratel de 8Mb, sendo o da Embratel o dobro do link da OI, você pode fazer a rota da seguinte forma para não subutilizar um dos links:
/ ip route
add dst-address=0.0.0.0/0 gateway=172.16.20.10,172.16.10.10,172.16.10.10 check-gateway=ping
**** NAT:
/ ip firewall nat
add chain=srcnat out-interface=wan1 action=masquerade
add chain=srcnat out-interface=wan2 action=masquerade
Como as rotas já foram decididas, só precisamos das regras para corrigir o src-address para os pacotes de saída, Se o pacote sair pela WAN1 será “NATeado” para 172.16.10.10/24, caso contrário será para 172.16.20.10/24.
*** Conexões Entrantes:
/ ip firewall mangle
add chain=input in-interface=WAN1 action=mark-connection new-connection-mark=wan1_conn
add chain=input in-interface=wlan2 action=mark-connection new-connection-mark=wan2_conn
add chain=output connection-mark=wan1_conn action=mark-routing new-routing-mark=to_wan1
add chain=output connection-mark=wan1_conn action=mark-routing new-routing-mark=to_wan2
/ ip route
add dst-address=0.0.0.0/0 gateway=172.16.10.10 routing-mark=to_wan1
add dst-address=0.0.0.0/0 gateway=172.16.20.10 routing-mark=to_wan2
Imagine um pacote INPUT vindo pelo link da Oi e retornando pelo link da Embratel, com ip diferente não vai dar, para evitar isso, vamos avisar ao mikrotik que o pacote que for recebido pelo link1 deve ser retornado pelo mesmo link.
Conclusão:
O ECMP é uma boa forma de balancear múltiplos links no mikrotik, com a utilização dele não subutilizamos os links e conseguimos um failover caso um dos links caiam, ele bem configurado dificilmente dará problemas.
*** Liberando Memoria CPU
/ip firewall connection tracking set enabled=no
Amigo teria como você me ajudar seguir seu tutorial e não funcionou!
ResponderExcluiridalmo@gmail.com
ok.... vou te mandar um email para saber mais detalhes.
Excluirmanda para meu e-mail tambem leo.concas@live.nl
ResponderExcluirAmigo, também segui o que descreve e não obtive exito!
ResponderExcluirhá algum detalhe extra configuração?