Mini Balance PCC com Failover automático
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
2 Anexo(s)
Re: Mini Balance PCC com Failover automático
Veja um print do trafego...:
Anexo 56836
Anexo 56837
Citação:
Postado originalmente por
Arthur Bernardes
Parabéns Andrio, faço de uma forma um pouco diferente mas está no mesmo raciocínio. Perfeito, abraço.
Me responda uma coisa, porque criar dois "jump"? Isso não seria satisfeito?
Vendo que tudo sai num mesmo "jump", você até poderia adicionar o "dst-port 443" na mesma regra, aqui funciona sem nenhum problema.
Eu crio dois jump, um para os Sites (conectividade social, alguns sites de filmes online) que irão sair por apenas um link (address-list loopback) e outro para os sites HTTPs (é raro os sites que dão problemas, mas para facilitar, resolvi deixar uma regra global, assim não preciso ficar me preocupando em saber qual site HTTPs não suporta balance)
Re: Mini Balance PCC com Failover automático
@AndrioPJ, parabens pela iniciativa!! Belo post!
Re: Mini Balance PCC com Failover automático
Citação:
Postado originalmente por
Arthur Bernardes
Mas saem tudo num mesmo "jump", isso não bagunça?
não uehsuehsuhes
ambos tem a regra do per-connection como src-address
dessa forma, enquanto o clienteA ao acessar o site do Bradesco, saiu pelo Link1 (por exemplo)
o clienteB tem chance de ao acessar o site do Bradesco, sair pelo Link2
Veja que eu coloquei alguns Sites de Filmes problemáticos, que de vez em quando tem problema com o balance.
Dessa forma resolvemos o problema....
Re: Mini Balance PCC com Failover automático
Parabém a parte boa acredito q seja o failover, poucos sabem desta forma algus usa o mangle para definir rota fixa a um site assim checando o site e desativando a interface não muito eficiente, @AndrioPJvi falar q na versão 6.24 utilizando pcc em modo router não se faz necessário essa manobra do checagem de ip pelo link me falarão q o pcc agora sabe indentificar o q vc acha?