Você está na página 1de 34

TREINAMENTO MIKROTIK

ESSENTIAL
Balanceamento de Link
Conteúdo

• Introdução ao Balanceamento de Link


• Calculo do PCC
• Balanceamento de Link de Iguais tamanhos
• Balanceamento de Link de diferentes tamanhos
Balanceamento de Links

Em termos de balanceamento, este com certeza é o mais complexo.


São várias etapas para se conseguir balancear o link, que é feito
através do PCC (Per connection Classifier).
O PCC permite que você divida o tráfego em fluxos iguais com a
capacidade de manter pacotes com um conjunto específicos de
opções em um fluxo especifico.
Utilizado para 2 ou mais links, de forma que seus valores de
transferência serão somados e os pacotes enviados entre os links.
Cauculo do PCC

Antes de iniciar a configuração em si, como dito anteriormente, o PCC


divide em fluxos, e é isso que devemos aprender a calcular em um
primeiro momento. Iremos trabalhar de modo parecido a filas, ou
queus, onde cada fila terá um valor de taxa de transferência.
Vamos imaginar dois links, um de 5 Mbps e outro de 10 Mbps. Devemos
pegar o valor do menor link e dividir pela soma de ambos:

Quantidade de Filas = (Link1 +Link2 + Linkn)/Menor Link

Então em nosso exemplo tempos (5 + 10)/5 o que nos totaliza 3 Filas.


Para saber a velocidade é basta dividir a soma dos links pelas Filas.
Novamente em nosso caso 15/3 iguais a 5 Mbps. Ou seja, termos 3
filas com 5 Mbs cada.
Exemplo 2

Neste exemplo a conta não dá exata, aí devemos dimunir nossa unidade


de transferência para o menor número possível e não do menor link.
Vejamos: Temos um link de 2 Mbps, outro de 5 Mbps e outro de 10
Mbps, totalizando 17 Mbps.
Seguindo a fórmula, teríamos 17 Mbps para dividir por 2, o que daria algo
em torno de 8,5 o que não daria certo no final. Como criar 8 filas e
meia. Neste caso devemos abaixar mais ainda o valor, ao invez de
usarmos o valor de menor link, divimos pela menor unidade suportada,
ou menor divisor em comum (MDC, lembra da escola, no fundamental
na aula de matemática). Pois é isso mesmo, e lembrando disso, o valor
de 17 é um número primo, que só é divido por ele próprio e por 1. Com
isso termos então 17 Filas com 1 Mbps de velocidade.
Balanceamento de Link de iguais
tamanhos

Neste próximo exemplo, iremos utilizar dois links de igual velocidade, dessa
forma não há necessidade de cálculos, e nem é relevante de fato o
valor da velocidade.
Continuaremos usando nosso exemplo visto anteriormente, que é dois links
um com endereço IP 200.0.0.2 e IP 189.0.0.2, e IP de LAN 192.168.1.1.
Vamos iniciar como se fosse um firewall novo, onde será necessário
configurar interfaces, fazer NAT e etc. Obviamente não veremos passa
a passo, mas informarei os passos que deverão ser feitos enfatizando os
passos necessários para fazer o balanceamento.
Crianção dos NATs

Configurar a interface ether1, para WAN1 e IP Address 200.0.0.2/24.


Configurar a interface ether2, para LAN e IP Address 192.168.1.1/24 e
por fim configurar a interface ether3 para WAN2 e IP Address
189.0.0.2/24.
Devemos fazer o NAT, criando a configuração de Masquerade para cada
interface. Para isso devemos ir ao menu IP > Firewall > Nat. Em chain src-
nat deverá ser colocada, Out. Interface as interfaces WAN1 e WAN2,
uma em cada regra e Action Masquerade
Tabela Mangle - Loop

Com a política de roteamento é possível forçar todo tráfego para um


gateway especifico, mesmo se o tráfego for destinado para um host
(outro que o gateway) das redes conectadas. Com isso evitaremos
loop de roteamento que é gerado entre estes hosts. Para evitar essa
situação, precisamos permitir o uso da tabela de roteamento para o
tráfego em redes conectadas.
Para fazermos isso é necessário criar duas rotas, onde a origem pode ser
Src Address com endereço IP de nossa LAN, ou Src Internface a de
nossa LAN, com destino a cada rede conectada, inclusive a própria
rede LAN. Como temos 3 redes conectadas, devemos ter três regras na
tabela Mangle, com origem em nossa LAN e destino a LAN, WAN1 e
WAN2. A Action nesse caso será accept.
Tabela Mangle - Loop

Bom irei abaixo mostrar a figura da nossa primeira regra para rede WAN1,
mas lembre-se que deverão ser criadas para as 3 redes, LAN, WAN1 e
WAN2.
Tabela Mangle - Loop
Tabela Mangle - Loop

Abaixo a imagem já com as três regras criadas. Note que ao invés de usar
Src. Address, poderíamos usar a In. Interface apontando para nossa
interface de rede da LAN.
Tabela Mangle - Retorno

Agora devemos garantir que as conexões iniciadas de fora, recebem as


respostas pela mesma interface (Estamos falando da WAN1 e WAN2),
para isso vamos marcar esses pacotes inicialmente.
Iremos criar duas regras na tabela Mangle, quando a In. Interface for a
WAN1 e WAN2, e não tenham marcações ainda (ou seja, primeira vez
que estão entrando, normalmente DNAT), tais conexões serão
marcadas. Em nosso caso usarei a marca de conexão WANx-con, onde
x é o da interface em questão.
.
Tabela Mangle - Retorno
Tabela Mangle - Retorno

podemos ver nas ultimas duas linhas as marcações como Wan1-con e


Wan2-com, para marcarem que estejam entrando pelas suas
respectivas Interfaces em In. Interface..
Criando as Filas
Então primeiro passo, criar uma nova regra mangle com chain prerouting,
em In. Interface, iremos selecionar nossa interface da LAN, que em
nosso exemplo chama-se LAN também, em Connection Mark
selecionamos no-mark. Agora iremos em um Guia diferente, onde
informaremos que o Destino de Endereço é do tipo não local, para isso
vamos na guia Extra, e seleciona Dst. Address Type, selecione o tipo
local, e marque a opção invert.
Vamos nesse momento criar os dois grupos de tráfegos e vincula-los ou
melhor marca-lo com nossas marcas de conexão para cada interface
WAN. O primeiro passo vamos em Advanced, em Per Connection
Classifier, selecione both-address, ou seja, irá filtrar tanto por origem
como por destino, em seguida informe que teremos duas filas através
do número 2 e essa é a primeira, através do número 0.
E para finalizar em action use a ação mark connection e New Connection
Mark usaremos as marcarão para nossas interfaces WAN, desta forma
precisamos de duas regras uma para WAN1-con e WAN2-com.
Criando as Filas
Então primeiro passo, criar uma nova regra mangle com chain prerouting,
em In. Interface, iremos selecionar nossa interface da LAN, que em
nosso exemplo chama-se LAN também, em Connection Mark
selecionamos no-mark. Agora iremos em um Guia diferente, onde
informaremos que o Destino de Endereço é do tipo não local, para isso
vamos na guia Extra, e seleciona Dst. Address Type, selecione o tipo
local, e marque a opção invert.
Vamos nesse momento criar os dois grupos de tráfegos e vincula-los ou
melhor marca-lo com nossas marcas de conexão para cada interface
WAN. O primeiro passo vamos em Advanced, em Per Connection
Classifier, selecione both-address, ou seja, irá filtrar tanto por origem
como por destino, em seguida informe que teremos duas filas através
do número 2 e essa é a primeira, através do número 0.
E para finalizar em action use a ação mark connection e New Connection
Mark usaremos as marcarão para nossas interfaces WAN, desta forma
precisamos de duas regras uma para WAN1-con e WAN2-com.
Criando as Filas
Criando as Filas
Criando as Filas
Tabela Mangle - Rotas

Agora iremos criar um mark routing para ser usadas em nossas regras de
roteamento. Devemos criar uma regra de nossa LAN para todas WANs e
também trafego do próprio firewall (output) para cada interface WAN.
No primeiro caso iremos criar uma nova regra de firewall mangle, com
prerouting, com In. Interface a LAN, e marca Wan1-con, nossa ação
será mark routing, onde neste exemplo chamei de WAN1-route.
O mesmo procedimento deverá ser feito para as conexões marcadas com
WAN2-com, onde também criaremos uma marca de roteamento que
neste exemplo chamei de WAN2-route.
Tabela Mangle - Rotas
Tabela Mangle - Rotas

A próxima e última regra, será para pacotes saindo do nosso próprio router,
via output, usando marcas de conexão WAN1 e WAN2, e marcarmos
com marcas de roteamento em WAN1-route e WAN2-route.
Imagem Final
Roteamento

Uma vez criadas todas as marcações os próximos passos é a criação das


rotas. Como visto anteriormente, devemos criar duas rotas padrões com
métricas diferentes, e mais duas rotas usadas com a marcação de rotas
criadas em nossas regras de firewall.
Como já foi visto, usarei a configuração em linha de comando.
Lembrando novamente que na WAN1 temos o gateway 200.0.0.1 e
WAN2 temos o gateway 189.0.0.1, nas marcações temos WAN1-route e
WAN2-route.
.
Roteamento

ip route add dst-address=0.0.0.0/24 gateway 200.0.0.1 distance=1


ip route add dst-address=0.0.0.0/24 gateway 189.0.0.1 distance=2
ip route add dst-address=0.0.0.0/24 gateway 200.0.0.1 distance=1 routing-
mark=WAN1-route
ip route add dst-address=0.0.0.0/24 gateway 189.0.0.1 distance=1 routing-
mark=WAN2-route

.
.
Balanceamento com Links de
Diferentes tamanhos
Para fazermos o balanceamento de links de tamanhos diferentes, vamos
precisar da nossa fórmula vista antes que é Soma dos links dividido pelo
link de menor tamanho. Então vamos imaginar que na WAN1 temos um
link de 10 Mbps e na WAN2 temos um link de 5 Mbps, dessa forma temos
um total de 15Mbps dividido por 5 Mbps que é o tamanho do menor
link. Desta forma vamos ter 3 grupos ou filas com valor de 5 Mbps cada
um.
O procedimento basicamente é o mesmo visto antes, só que agora ao
invés de termos 2 filas, teremos 3 filas.
Vimos como fazer tudo isso via winbox. Veremos agora o mesmo
procedimento com a diferença das filas, mas via linha de comando
Configurando Interfaces

ip address add address=192.168.1.1/24 interface=LAN


ip address add address=200.0.0.1/24 interface=WAN1
ip address add address=189.0.0.1/24 interface=WAN2
.
Configurando NAT

ip firewall nat chain=srcnat action=masquerade out-interface=WAN1


ip firewall nat chain=srcnat action=masquerade out-interface=WAN2
Regras de Loop – Tabela Mangle

ip firewall mangle chain=prerouting action=accept src-address=192.168.1.0/24


dst-address=192.168.1.0/24

ip firewall mangle chain=prerouting action=accept src-


address=192.168.1.0/24 dst-address=189.0.0.0/24

ip firewall mangle chain=prerouting action=accept src-address=192.168.1.0/24


dst-address=200.0.0.0/24
Marcar conexões entrantes da Internet

ip firewall nat chain=prerouting in-interface=WAN1 connection-mark=no-


mark action=mark-connection new-connection-mark=WAN1-com

ip firewall nat chain=prerouting in-interface=WAN2 connection-mark=no-


mark action=mark-connection new-connection-mark=WAN2-com
.
Criar Filas

ip firewall mangle chain=prerouting dst-address-type=!local in-interface=LAN


connection-mark=no-mark per-connection-classifier=both-addresses:3/0
action=mark-connection new-connection-mark=WAN1-con

ip firewall mangle chain=prerouting dst-address-type=!local in-interface=LAN


connection-mark=no-mark per-connection-classifier=both-addresses:3/1
action=mark-connection new-connection-mark=WAN1-com

ip firewall mangle chain=prerouting dst-address-type=!local in-interface=LAN


connection-mark=no-mark per-connection-classifier=both-addresses:3/2
action=mark-connection new-connection-mark=WAN2-com
Marcar conexões

ip firewall mangle chain=prerouting in-interface=LAN connection-mark=WAN1-com


action=mark-routing new-routing-mark=WAN1-route

ip firewall mangle chain=prerouting in-interface=LAN connection-mark=WAN2-com


action=mark-routing new-routing-mark=WAN2-route

ip firewall mangle chain=output connection-mark=WAN1-com action=mark-routing


new-routing-mark=WAN1-route

ip firewall mangle chain=output connection-mark=WAN2-com action=mark-routing


new-routing-mark=WAN2-route
Criar Rotas

ip route add dst-address=0.0.0.0/24 gateway 200.0.0.1 distance=1


ip route add dst-address=0.0.0.0/24 gateway 189.0.0.1 distance=2
ip route add dst-address=0.0.0.0/24 gateway 200.0.0.1 distance=1 routing-
mark=WAN1-route
ip route add dst-address=0.0.0.0/24 gateway 189.0.0.1 distance=1 routing-
mark=WAN2-route
.

Você também pode gostar