[Inclusão Digital] Desisto
Eder Zagui
ederzagui em ibl.com.br
Terça Agosto 17 18:02:37 BRT 2010
Já tentei de tudo quanto é jeito balancear dois links no mikrotik versão 4.10 e não consigo
NTH, ECMP, etc
O ultimo que fiz foi seguindo exatamente as dicas abaixo e nada. Quando boto para rodar não sai quase nada pelo link 2 e o link 1 sai menos do que 30% do que sai sem as regras.
Alguém tem alguma receita do bolo?
Abaixo as regras que usei (obviamente os exemplo é exatamente como encontrei na internet e adaptei para meus ips):
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
IPS Mikrotik:
LAN: 192.168.0.1
WAN1:172.16.10.1
WAN2:172.16.20.1
IPS Routers:
WAN1: 172.16.10.10
WAN2:172.16.20.10
Regras para os impacientes:
/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
Explicação:
-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.
Mais detalhes sobre a lista de discussão Inclusaodigital