IMPORTANTE *************
Antes de tudo, atualize sua RB para versão 6 ou superior.
Verifique se o firmware dela está atualizado também...
Código :/system routerboard print /system routerboard upgrade
ps: nessas regras, eu estou supondo que os IPs dos seus clientes chegam até a RB Balance
Caso você tenha outra RB que faça a autenticação dos clientes, nesse caso, é preciso criar uma rota entre a RB Balance e a RB de autenticação.
********************************
Agora vamos definir alguns pontos do script (altere conforme sua rede)
Código :IP InterfaceLINK1 = 192.168.2.2/24 - Ether1 LINK2 = 192.168.3.2/24 - Ether2 Clientes = 10.0.0.1/16 - Ether3 Gateway Verdadeiro LINK1 = 192.168.2.1 LINK2 = 192.168.3.1 Gateway Falso (é usado na configuração do failover automatico) LINK1 = 192.168.30.1 LINK2 = 192.168.31.1 Sites que iremos testar: LINK1 = 208.67.222.220 (opendns) LINK1 = 200.160.2.3 (registro.br) LINK2 = 208.67.220.222 (opendns) LINK2 = 200.160.2.4 (registro.br)
Agora vamos começar a criar nosso Balance.
#########################
1 - Verifique se o nome das Interfaces está conforme descrito acima, caso contrario, altere o nome no script.
Para verificar, vá em /ip interfaces
#########################
2 - Adicione os IPs nas suas respectivas interfaces
Código :/ip address ip address add address=192.168.2.2/24 interface=Ether1 ip address add address=192.168.3.2/24 interface=Ether2 ip address add address=10.0.0.1/8 interface=Ether3
#########################
3 - Configure o DNS
Vá em /ip dns
em "Servers" coloque os DNS do Google e do OpenDNS
8.8.8.8
208.67.222.222
8.8.4.4
208.67.220.220
#########################
4 - Ative o NAT Geral
Código :/ip firewall nat add action=masquerade chain=srcnat comment="### MASQUERADE ###"
#########################
5 - Site fora do Balance
Alguns criam regras para tirar determinado site das regras do Balance, fazendo-o passar pelo link default, sobrecarregando apenas um link.
Eu faço diferente, eu jogo eles em uma Regra de balance personalizada, com o per-connection-classifier=src-address
Dessa forma, termos uma divisão melhor do link.
Enquanto Cliente A acessa o UOL pelo Link 1
o Cliente B tem chance de acessar o UOL pelo Link 2
Código :/ip firewall mangle add action=jump chain=prerouting dst-port=443 in-interface=Ether3 jump-target=POLITICA_SrcAddress protocol=tcp add action=jump chain=prerouting dst-address-list=loopback dst-address-type=!local in-interface=Ether3 jump-target=POLITICA_SrcAddress add action=mark-routing chain=POLITICA_SrcAddress comment="POLITICA BALANCE - Fora Balance" dst-address-type=!local new-routing-mark=LINK1 passthrough=no per-connection-classifier=src-address:2/0 add action=mark-routing chain=POLITICA_SrcAddress dst-address-type=!local new-routing-mark=LINK2 passthrough=no per-connection-classifier=src-address:2/1 /ip firewall address-list add address=200.155.80.0-200.155.255.255 comment=BRADESCO disabled=no list=loopback add address=200.220.186.0/24 comment=BRADESCO disabled=no list=loopback add address=200.220.178.0/24 comment=BRADESCO disabled=no list=loopback add address=200.155.86.0/24 comment="BRADESCO PJ" disabled=no list=loopback add address=200.155.82.0/23 comment="BRADESCO PJ" disabled=no list=loopback add address=187.6.86.0/24 comment="ISSNET ONLINE" list=loopback add address=189.86.4.0/24 comment="ISSNET ONLINE" list=loopback add address=161.148.231.0/24 comment="RECEITA FEDERAL" list=loopback add address=72.46.128.0/19 comment="FILMES - VIDIG.BIZ" list=loopback add address=77.247.176.0/21 comment="Vidig Videos" list=loopback add address=200.201.166.0/24 comment="CONECTIVIDADE SOCIAL" list=loopback add address=200.201.173.0/24 comment="CONECTIVIDADE SOCIAL" list=loopback add address=200.201.174.0/24 comment="CONECTIVIDADE SOCIAL" list=loopback add address=85.159.232.0/21 comment="Vidig Videos" list=loopback add address=200.175.132.200/29 comment="ISSNET ONLINE" list=loopback add address=187.45.224.0/19 comment="ISSNET ONLINE" list=loopback add address=189.86.4.48/28 comment="NOTA CONTROL" list=loopback add address=78.140.0.0/16 comment=VIDIG list=loopback add address=94.75.192.0/18 comment=VIDIG list=loopback add address=72.21.80.0/20 comment=VIDIG list=loopback add address=93.174.88.0/21 comment=VIDIG list=loopback add address=108.166.56.0/22 comment=VIDIG list=loopback add address=201.73.169.55 list=loopback add address=85.159.237.0/24 comment=CloudZilla list=loopback add address=37.59.0.0/18 comment=CloudZilla list=loopback add address=46.166.184.0/21 comment=CloudZilla list=loopback
#########################
6- Regras de Balance Geral
Código :/ip firewall mangle add action=mark-routing chain=prerouting comment="POLITICA BALANCE" dst-address-type=!local in-interface=Ether3 new-routing-mark=LINK1 passthrough=no per-connection-classifier=both-addresses:2/0 add action=mark-routing chain=prerouting dst-address-type=!local in-interface=Ether3 new-routing-mark=LINK2 passthrough=no per-connection-classifier=both-addresses:2/1
#########################
7- Regras de IP Route e Failover
Código :/ip route add distance=1 dst-address=0.0.0.0/0 gateway=192.168.30.1 add distance=2 dst-address=0.0.0.0/0 gateway=192.168.31.1 add comment="TESTE 1 LINK1" distance=1 dst-address=208.67.222.220/32 gateway=192.168.2.1 scope=10 add comment="TESTE 2 LINK1" distance=1 dst-address=200.160.2.3/32 gateway=192.168.2.1 scope=10 add comment="TESTE 1 LINK2" distance=1 dst-address=208.67.220.222/32 gateway=192.168.3.1 scope=10 add comment="TESTE 2 LINK2" distance=1 dst-address=200.160.2.4/32 gateway=192.168.3.1 scope=10 add check-gateway=ping disabled=no distance=1 dst-address=192.168.30.1/32 gateway=208.67.222.220 scope=10 target-scope=10 add check-gateway=ping disabled=no distance=2 dst-address=192.168.30.1/32 gateway=200.160.2.3 scope=10 target-scope=10 add check-gateway=ping disabled=no distance=1 dst-address=192.168.31.1/32 gateway=208.67.220.222 scope=10 target-scope=10 add check-gateway=ping disabled=no distance=2 dst-address=192.168.31.1/32 gateway=200.160.2.4 scope=10 target-scope=10 add distance=3 gateway=192.168.30.1 routing-mark=LINK1 add distance=4 gateway=192.168.31.1 routing-mark=LINK1 add distance=3 gateway=192.168.31.1 routing-mark=LINK2 add distance=4 gateway=192.168.30.1 routing-mark=LINK2
#########################
8- (OPCIONAL) Caso queira poder acessar os modens que estão a frente do Balance (OPCIONAL)
Essas regras devem ficar acima das regras de balance (regras descritas nos itens 5 e 6)
Código :/ip firewall mangle add chain=prerouting comment="ACEITA REDE - PARA ACESSO AOS MODENS" disabled=yes dst-address=192.168.2.1/24 src-address=10.0.0.0/16 add chain=prerouting disabled=yes dst-address=192.168.3.1/24 src-address=10.0.0.0/16
#########################
8- (OPCIONAL) Caso queira ter o controle de direcionar um outro cliente/site para sair por determinado link (OPCIONAL)
Esas regras devem ficar acima das regras de balance (regras descritas nos itens 5, 6 e 8)
Para sair pelo LINK1
vá em /ip firewall address-list
e adicione o IP do cliente em uma lista com o nome CLIENTE1
ou adicione o IP do site em uma lista com nome SITE1
Regra para sair pelo Link1 (adicione-a acima de todas as outras):
Código :/ip firewa mangle add action=mark-routing chain=prerouting comment="REGRA 0 (Cliente) REGRA 1 (Site) POR LINK 1" in-interface=Ether3 new-routing-mark=LINK1 passthrough=no src-address=CLIENTE1 add action=mark-routing chain=prerouting dst-address-list=SITE1 in-interface=Ether3 new-routing-mark=LINK1 passthrough=no
Para sair pelo LINK2
vá em /ip firewall address-list
e adicione o IP do cliente em uma lista com o nome CLIENTE2
ou adicione o IP do site em uma lista com nome SITE2
Regra para sair pelo Link2 (adicione-a acima de todas as outras):
Código :/ip firewa mangle add action=mark-routing chain=prerouting comment="REGRA 2 (Cliente) REGRA 3 (Site) POR LINK 1" in-interface=Ether3 new-routing-mark=LINK2 passthrough=no src-address=CLIENTE2 add action=mark-routing chain=prerouting dst-address-list=SITE2 in-interface=Ether3 new-routing-mark=LINK2 passthrough=no