LOAD BALANCE MIKROTIK Leandro Genari – Engenheiro da Computação
Roteiro(o a o) 1.
O que é “Load Balance” e em que situação utiliza-lo?
2. 3. 4. 5. 6. 7. 8. 9.
Cenário proposto para configuração.
Configurando as conexões dos links Criando regras de NAT para cada link Definindo regra para rede local Marcando conexão de cada link Encaminhando as conexões marcadas para rotas correspondentes Cálculo do balanceamento dos links Configurando PCC (Marcação de conexão) Encaminhando as conexões marcadas(PCC) para rotas correspondes
Criando Rotas Marcadas para cada link(Mark Routing)
10. Definindo 11. Conclusão
regras para exceções(se necessário)
O que é “Load Balance” e em que situação utiliza-lo?
“Load Balance” ou balanceamento de carga, é um termo que se refere a divisão de uso, no caso de redes de computadores, dos links disponíveis(WAN) para seu melhor aproveitamento em questões igualitárias para agregar banda de dados para usuários daquela rede local(LAN).
Esse método deve ser implementado em nossa rede quando possuímos mais de um link. Observando que nossa rede LAN trabalha através de um NAT, dessa forma, não possuímos algoritmos de roteamento de borda(BGP).
O que é “Load Balance” e em que situação utiliza-lo? Cenário proposto para configuração.
O cenário dessa aula está da seguinte forma:
Dois link de 8 megabits cada(2 WAN),ambos por PPPoE;
Uma interface “brigde” que agrega algumas portas do nosso roteador, para dar o de internet aos dispositivos da rede local (1 LAN).
Configurando as conexões dos links Interfaces
Podemos receber o link de internet de algumas formas: PPPoE, DH ou Ip estático.
Tanto por PPPoE como o DH, o Mikrotik define automaticamente uma rota, é importante desmarcar: “Add default route”.
Faça isso para cada link que você possuir.
Localizando a configuração correspondente para cada tipo conexão.
Configurando as conexões dos links
IP>Routes Nas configurações de rota, devemos criar uma rota para cada link, com distancia diferentes.
Essas são as rotas padrão do nosso roteador, quando estiverem ambas ativas, a de menor distancia assumi.
Configurando as conexões dos links
IP>Firewall>Nat Iremos definir uma regra de NAT(“srcnat: Action =masquerede”), para cada link. Dessa forma já temos internet funcionando em nosso roteador.
O que muda em cada regra é a interface de saída: “Out.Interface”.
Que devem ser as interfaces dos nossos links de internet.
Definindo regra para rede local
Nessa etapa da configuração, devemos pensar como está projetada nossa rede LAN, ou nossas redes. Qual faixa de ip(range) elas ocupam.
Pois precisamos indicar para roteador o que é rede local, e o que vai ser processado pela regras de balanceamento.
Tomaremos como exemplo as redes presente no roteador utilizado nessa aula.
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.50.0/24
192.168.51.0/24
192.168.87.0/24
192.168.89.0/24
10.2.0.0/16
10.5.5.0/24
10.17.0.0/24
10.17.19.0/24
100.100.0.0/24
172.16.1.0/24
Definindo regra para rede local IP>Firewall>Address Lists
Possuímos varias redes que devem ser tratadas como redes locais.
Isso não quer dizer que são redes que o meu roteador está fornecendo saída de internet, mas são redes que estão conectadas ao meu roteador através de VPN, redes de outros roteadores.
Sabendo quais redes não devem ar pelo classificador, criaremos regras com o mesmo nome, contendo as faixas de ip necessárias:
Definindo regra para rede local IP>Firewall>Mangle
Quando nossa lista de endereços estiver definida, criaremos uma regra no Mangle para colocar ela em prática
Na guia General apenas definiremos: “Chain: = prerouting”.
Na guia Advanced definiremos da seguinte forma:
Na guia Action, na opção Action, definiremos como “Accept”.
Dessa forma, essa sendo a primeira regra do Mangle, tudo que partir de um dispositivo da lista “LOCAL” com destino para lista “LOCAL”, receberá uma ação de aceito, e não ará pelas regras seguintes do roteador.
Marcando conexão de cada link IP>Firewall>Mangle
Iniciaremos a criação das regras de marcação de conexão, e marcação de roteamento para cada link de internet que está chegando até nosso roteador.
São duas regras para cada link:
“mark connection”;
“mark routing”;
O que se altera em cada regra, é a interface de entrada e o nome da marcação da nova conexão, que deve ser utilizado na regra de “mark routing”.
Marcando conexão de cada link IP>Firewall>Mangle (Mark Connection)
Marcando conexão de entrada para o link na interface “Speedy”
Tendo como condição, que nenhuma conexão antes tivesse sido marcada
Na guia Action: Ação, marcar conexão
New Connection Mark: defina um nome para marcação(“LinkSpeedy”).
Repita este procedimento para cada link de internet
In. Interface
Connection Mark
New Connection Mark
Encaminhando as conexões marcadas para rotas correspondentes IP>Firewall>Mangle (Mark Routing)
Criando regra “mark routing” para o link da interface “Speedy”
Chain definimos como saída(output)
As conexões marcadas como: “Link-Speedy”
Na guia Action, defina Action como “mark routing”
Defina um nome para, New Routing Mark(“SAIDA-Speedy”)
Repita este procedimento para cada link de internet
Connection Mark
New Routing Mark
Cálculo do balanceamento dos links
Mikrotik faz o “LOAD BALANCE”, utilizando de um classificador de conexões(PCC).
Esse classificador deve ser chamado em algumas regras para fazer a marcação de uma conexão, que deseja sair de dentro da nossa rede para internet.
PCC possui algumas forma de trabalho, para definir como o balenceamento vai se comportar, sendo elas:
Pelas combinações de endereços, internos e externos, ou apenas internos, ou apenas externos;
Pelas combinações de endereços e portas, internos e externos, ou apenas internos, ou apenas externos;
Pelas combinações de portas, internas e externas, ou apenas internas, ou apenas externas;
A forma mais usual a ser aplicada é “Combinação de endereços, internos e extenos”(Both addresses), mas dessa maneira não conseguimos agregar a velocidade dos links, em servidores de s que aceitem multiplicas conexões.
No exemplo da aula, utilizaremos a “Combinação de endereços e portas, internos e extenos”(Both addresses and ports), conseguindo assim somar a velocidade dos links em servidores que aceitem multiplicas conexões.
Utilizando “both addresses and ports” o roteador permite que um endereço de dentro da rede, utilize mais de uma porta(depende da quantidade de links), para alcançar o endereço de destino.
Isso gera um problema em sites que trabalham com segurança de o, como sites bancários(Internet Banking), para contornar esse problema, e aproveitar a agregação dos links, podemos criar regras de exceção.
Cálculo do balanceamento dos links
Conhecendo as formas de trabalho do “PCC”, e definindo qual a melhor que nos atende, precisamos calcular mediante a quantidade de link que temos e a suas respectivas largura de banda:
Quantas vão ser o total de regras para o PCC;
E quantas dessas regras vão ser destinadas a cada link;
Ressaltando que o Mikrotik calcula o balanceamento através da proporção de regras e forma de trabalho que deve ser iguais em todas.
Dessa forma evite adquirir links muito desproporcionais entre um e outro para fazer o balanceamento, isso encarece o processamento do roteador, devido há muitas regras que vão ser criadas.
Utilizando de uma planilha desenvolvida para aula iremos fazer alguns exemplos.
A seguir temos o cálculo da nossa situação exemplo.
Cálculo do balanceamento dos links
Obtivemos um total de duas regras, sendo uma regra para cada link:
Regra Link1: 2/0
Regra Link2: 2/1
Observando que quando possuímos links de largura de banda idênticas, sempre será uma regra para cada link.
Em questão de sintaxe a criação das regras, deve ter o total delas, só que sempre começar pelo número zero(0).
Exemplo: TOTAL_REGRAS/NUMERO_DA_REGRA
Configurando PCC (Marcação de conexão) IP>Firewall>Mangle (Mark Routing)
Depois de entender como funciona o “PCC” e calcular suas quantidades de regras, vamos iniciar as regras de marcação de conexão.
As marcações ocorrem de dentro da rede(LAN) para internet(WAN), e devem seguir o mesmo procedimento, apenas alterando o número da regra, e o nome da marcação quando se termina a quantidade de regra para aquele determinado link.
Toda regra, independentemente da quantidade de vezes que ela se repita, deve ser “Chain: = prerouting”.
“In.Interface”, precisa ser a interface a qual os dispositivos tem o o a internet, no exemplo, “LAN-LOCAL”, é uma “brigde” que agrega algumas portas do roteador, onde está rodando serviço DH.
Na guia Extra, o recurso “Dst. Address Type: local”, opção “Invert” marcada. Essa opção garante que as conexões que saiam do roteador, consigam se restabelecer novamente(sejam estáveis)
Configurando PCC (Marcação de conexão) IP>Firewall>Mangle (Mark Routing)
Dando continuidade a criação da regra, devemos definir as seguintes condições:
Na guia Advanced, escolhemos a forma de trabalho do “PCC”, e definimos o total de regra que ele pertence e qual regra ele faz parte.
Na guia Action, a ação de marcação de conexão(mark connection), podemos utilizar o nome dados as outras regras de marcação de conexão, que no caso, são apenas duas, uma para link.
Atenção, o nome dessa marcação que vai definir para qual link vai o resultado da classificação do “PCC”, posteriormente através da regra de “mark routing”.
Encaminhando as conexões marcadas(PCC) para rotas correspondes IP>Firewall>Mangle (Mark Routing)
Após todas a regras criadas, já possuímos a marcação de conexão gerada através do classificador, agora é hora de criar as marcações de rotas de saída.
Encaminhando as conexões marcadas(PCC) para rotas correspondes
Essa regra independe da quantidade de regras do “PCC” e sim da quantidade de links, se você possuir dois links, são duas regras; três links, são três regras e assim por diante.
Ela captura conexões marcadas pela interface da rede dos nossos dispositivos, com a marcação devida para cada link, e rotula uma marcação de rota para ser aplicada na nossa tabela de roteamento.
Encaminhando as conexões marcadas(PCC) para rotas correspondes Criando Rotas Marcadas para cada link(Mark Routing)
Utilizando os respectivos nomes das marcações das conexões, criamos as rotas de saída para cada um dos links.
Distancia delas é a mesma, pois o Mikrotik utilizara cada uma delas, através de suas marcações, fazendo dessa forma o “LOAD BALANCE”.
Definindo regras para exceções(se necessário)
As exceções que podem acontecer na configuração do “LOAD BALANCE” podem ser:
Alguns dos links fornecerem o externo algum dispositivo;
Utilizando a forma de trabalho do “load balance” em “Both Addresses and ports”, precisamos filtrar os serviços que não aceitam esse tipo de conexão.
Dessa forma alguma regras precisam devem ser adicionas no “Mangle” de forma adequada para contorna eventuais problemas.
Conclusão
Podemos concluir que o Mikrotik balanceia os links de forma estatística, através dos resultado obtidos pelas regras do PCC;
Dessa forma, a divisão das regras deve ser proporcional a largura de banda de cada link, e não devemos usar links com velocidades “ímpares e pares”, assim dizendo, se isso acontecer, aumente “1 mega”(no cálculo) em um ou em outro para deixar eles parecidos nesse aspecto(isso facilitará o cálculo e a criação da regras);
Mesmo utilizando o PCC, o Mikrotik não avalia se aquele link já está no seu limite e ainda continua marcando as conexões;
Nunca se esqueça de criar a regra para faixas de rede local;
As regras de exceções variam muito dos casos de uso dentro da sua rede.