Como Implementar Mwan3 para Balanceamento Multilink no VyOS

9 min de leitura Redes e Infraestrutura
Como Implementar Mwan3 para Balanceamento Multilink no VyOS

O balanceamento de carga e o roteamento inteligente são pilares fundamentais para garantir a continuidade dos negócios em ambientes corporativos modernos. Quando falamos em alta disponibilidade, a redundância não se limita apenas à presença de múltiplos links físicos; ela exige uma lógica de distribuição de tráfego que maximize a largura de banda disponível e minimize o impacto de falhas individuais. Neste tutorial, exploraremos como implementar o Mwan3 (Multi-WAN) no VyOS, um sistema operacional de roteamento baseado em Linux, poderoso e flexível para gerenciar balanceamento multilink em infraestruturas de rede complexas.

O VyOS, derivado do antigo Vyatta, oferece uma interface de linha de comando (CLI) baseada em Junos, o que pode parecer intimidante inicialmente para administradores acostumados a interfaces gráficas. No entanto, essa abordagem garante precisão, versionamento e facilidade de automação. O Mwan3 é um pacote nativo no repositório do VyOS que permite agrupar múltiplas interfaces de saída (WANs) em "grupos" e definir políticas de roteamento dinâmicas baseadas em métricas, peso e monitoramento de conectividade.

Pré-requisitos e Visão Geral da Topologia

Antes de iniciarmos a configuração, é essencial ter clareza sobre a topologia de rede. Para este exemplo, assumiremos um cenário clássico de configuração de rede com dois provedores de internet distintos:

  • eth0: Interface conectada ao Provedor A (Link Principal - Alta Latência, Baixo Custo).
  • eth1: Interface conectada ao Provedor B (Link Secundário - Baixa Latência, Alto Custo ou Backup).
  • eth2: Interface LAN (Conexão com a rede interna e clientes).

O objetivo é distribuir o tráfego de saída (egress) entre eth0 e eth1 de forma proporcional, enquanto monitoramos a saúde desses links. Se o Provedor A cair, todo o tráfego deve migrar automaticamente para o Provedor B sem interrupção perceptível para os usuários finais.

Passo 1: Configuração Básica das Interfaces

O primeiro passo é garantir que as interfaces estejam operacionalmente ativas e com os endereços IP corretos. Vamos configurar as interfaces WAN como clientes DHCP (ou estáticas, conforme seu provedor) e definir a interface LAN.

Acesse o modo de configuração do VyOS:

configure

Defina os endereços IP e parâmetros básicos. Ajuste os valores abaixo de acordo com sua infraestrutura real:

set interfaces ethernet eth0 address 'dhcp'
set interfaces ethernet eth0 description 'WAN-Provider-A'
set interfaces ethernet eth1 address 'dhcp'
set interfaces ethernet eth1 description 'WAN-Provider-B'
set interfaces ethernet eth2 address '192.168.1.1/24'
set interfaces ethernet eth2 description 'LAN-Internal'

Aplique as configurações e saia do modo de configuração:

commit
save
exit

Passo 2: Configuração das Regras de Firewall

O VyOS utiliza um firewall stateful rigoroso. Para que o tráfego gerado pela LAN possa sair pela WAN e para que as respostas retornem, precisamos permitir o fluxo NAT (Network Address Translation) e o encaminhamento de pacotes.

Vamos criar uma regra de NAT para mascarar o tráfego da LAN através das interfaces WAN. Isso é crucial para a configuração de rede funcionar corretamente em ambientes domésticos ou empresariais sem IPs públicos fixos na LAN.

set nat source rule 10 description 'NAT for WAN-Provider-A'
set nat source rule 10 outbound interface name 'eth0'
set nat source rule 10 source address '192.168.1.0/24'
set nat source rule 10 translation masquerade

set nat source rule 20 description 'NAT for WAN-Provider-B'
set nat source rule 20 outbound interface name 'eth1'
set nat source rule 20 source address '192.168.1.0/24'
set nat source rule 20 translation masquerade

Além do NAT, precisamos garantir que o tráfego entre a LAN e a WAN seja permitido pelo firewall local. Verifique se as zonas de confiança (trust) estão configuradas para permitir o forwarding:

set firewall zone-local zone trust interfaces eth2
set firewall zone-local zone untrust interfaces eth0 eth1

Embora o VyOS tenha políticas padrão, em instalações limpas, você pode precisar definir explicitamente a política de saída para "accept" nas zonas relevantess ou ajustar as regras de entrada. Para fins deste tutorial, focaremos na lógica do Mwan3, assumindo que o tráfego básico é permitido.

Passo 3: Ativação e Configuração do Mwan3

Agora chegamos ao coração do tutorial: configurar o Mwan3. O processo envolve três etapas principais: definir os links individuais, criar o grupo de balanceamento e associar esse grupo às interfaces.

3.1 Definindo os Links Individuais

Cada interface WAN deve ser definida como um "link" dentro do Mwan3. É aqui que configuramos a métrica (prioridade) e o peso (quantidade de tráfego).

mwan3 link add eth0
set mwan3 link eth0 metric 100
set mwan3 link eth0 weight 50
set mwan3 link eth0 timeout 10
set mwan3 link eth0 check_address '8.8.8.8'

mwan3 link add eth1
set mwan3 link eth1 metric 200
set mwan3 link eth1 weight 50
set mwan3 link eth1 timeout 10
set mwan3 link eth1 check_address '8.8.8.8'

Análise dos parâmetros:

  • metric: Define a prioridade. Quanto menor o número, maior a prioridade. O eth0 (100) é preferido sobre o eth1 (200).
  • weight: Define a proporção de tráfego em caso de balanceamento ativo. Se ambos estiverem ativos e com pesos iguais, o tráfego será dividido 50/50.
  • timeout: Tempo em segundos para considerar um link falho após falhas consecutivas no monitoramento.
  • check_address: O IP que será pingado para verificar a conectividade. Use IPs estáveis e de baixa latência, como 8.8.8.8 (Google) ou 1.1.1.1 (Cloudflare).

3.2 Criando o Grupo de Balanceamento

O grupo Mwan3 agrega os links definidos acima e determina como eles se comportam juntos. Existem três modos principais: updown, failover e loadbalance.

Para este cenário de alta disponibilidade com aproveitamento de banda, utilizaremos o modo loadbalance. Isso permite que ambos os links transmitam dados simultaneamente.

mwan3 group add main-group
set mwan3 group main-group members eth0 eth1
set mwan3 group main-group policy loadbalance

Ao definir o policy como loadbalance, o VyOS usará um algoritmo de hash (baseado em IP de origem/destino e porta) para distribuir as sessões entre os links. Isso evita problemas de dessincronização de pacotes que poderiam corromper conexões TCP sensíveis.

3.3 Associando o Grupo às Interfaces

Agora, dizemos ao VyOS para usar esse grupo de balanceamento nas interfaces WAN. Isso substitui a rota padrão simples por uma rota multipath gerenciada pelo Mwan3.

mwan3 interface add eth0 group main-group
mwan3 interface add eth1 group main-group

Com esta configuração, o VyOS sabe que o eth0 e o eth1 fazem parte do grupo main-group. O serviço Mwan3 iniciará automaticamente os scripts de monitoramento e atualizará as tabelas de roteamento do kernel Linux em tempo real.

Passo 4: Monitoramento e Troubleshooting

Uma configuração sem visibilidade é uma receita para desastres. O VyOS oferece ferramentas poderosas para verificar o status do Mwan3 diretamente no terminal.

Para ver o status atual dos links e se eles estão sendo considerados "up" ou "down", utilize:

mwan3 status

Você verá uma saída semelhante a esta:

Link eth0: up (metric 100, weight 50)
Link eth1: up (metric 200, weight 50)
Group main-group: active links: 2

Se o eth1 começar a falhar, você verá sua métrica mudando ou o link sendo marcado como down. O Mwan3 reavalia a topologia a cada ciclo de verificação (definido pelo timeout).

Para verificar as tabelas de roteamento reais geradas pelo sistema:

ip route show

Você notará que a rota padrão não aponta mais para uma única interface, mas sim para um grupo multipath, indicando ao kernel Linux como distribuir os pacotes.

Passo 5: Otimizações Avançadas e DNS

Embora o balanceamento de camada 3 (IP) funcione bem, aplicações que mantêm conexões persistentes longas podem não "sentir" o benefício do segundo link se a sessão inicial já estiver estabelecida no link principal. Para uma experiência mais fluida, considere ajustar as políticas de NAT e DNS.

Além disso, em cenários críticos, é recomendável usar servidores DNS redundantes. Configure o VyOS para usar dois provedores de DNS diferentes (ex: Google e Cloudflare) para evitar que a falha de um provedor de DNS derrube a resolução de nomes mesmo que a internet física esteja operante.

set system name-server 8.8.8.8
set system name-server 1.1.1.1

Outra consideração importante é o rendimento do TCP. Em links com latências muito diferentes (ex: uma fibra de 10ms e um satélite de 600ms), o balanceamento puro pode degradar a performance. Nesse caso, utilize o modo failover ou ajuste os pesos drasticamente para favorecer o link de baixa latência, usando o outro apenas como backup.

Conclusão e Boas Práticas

A implementação do Mwan3 no VyOS transforma uma simples conexão dual-WAN em uma infraestrutura robusta de roteamento inteligente. Ao combinar métricas adequadas, pesos equilibrados e monitoramento contínuo, você garante que sua rede utilize ao máximo a capacidade contratada dos seus provedores.

Lembre-se sempre:

  • Teste em ambiente homologado: Aplique mudanças de roteamento durante janelas de manutenção.
  • Monitore logs: Verifique /var/log/messages ou use o comando log read no VyOS para detectar falhas de ping ou timeouts.
  • Mantenha o sistema atualizado: O VyOS lança atualizações frequentes que corrigem bugs de estabilidade e melhoram a performance do Mwan3.

Com esta configuração, sua infraestrutura está preparada para lidar com quedas pontuais de provedores e maximizar a velocidade percebida pelos usuários finais, atendendo aos requisitos modernos de alta disponibilidade e eficiência operacional.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000