Wireguard matriz filial redundante com BGP

Started by ludarkstar99, November 28, 2025, 09:21:06 PM

Previous topic - Next topic
November 28, 2025, 09:21:06 PM Last Edit: November 28, 2025, 09:31:27 PM by ludarkstar99
Wireguard matriz filial redundante com BGP


🔃 Roteamento Dinâmico
Status: Validado v25.7


Já vimos como configurar o roteamento estático adicionando rotas na tabela de roteamento do firewall e definindo o gateway responsável por transportar aquele tráfego. Agora vamos ver como fazer esse cenário mas usando o roteamento dinâmico, no qual a rota é negociada entre os firewalls, e geralmente é um cenário ideal para ser usado em túneis de VPN de forma redundante já que tanto o IPSec quanto o Wireguard não possuem nativamente a redundância de Túneis.

Cenário
Para exemplificar o roteamento dinâmico e demonstrar seu potencial, iremos estabelecer 2 túneis Wireguard entre 2 unidades remotas e iremos rotear o tráfego com alta disponibilidade, de forma que se cair um dos túneis, haverá uma convergência do tráfego para o segundo túnel disponível.

Premissas
1. Matriz possui 2 Links de internet com IPs públicos;
2. Matriz será o lado servidor da conexão, ou seja, apenas recebe conexões vindas da filial.
3. Filial pode possuir links dinâmicos ou estar atrás de CGNAT.
4. LAN da Matriz: 192.168.1.0/24.
5. LAN da Filial: 192.168.2.0/24.
6. Será usado iBGP, ou seja, apenas troca de rotas entre 2 peers diretamente conectados.
7. Serão negociadas apenas as redes LAN de cada peer/firewall.


Configurando os Túneis Wireguard

No Firewall Matriz

Acesse o menu VPN → Wireguard → Instances.
  Marque a caixa Enable Wireguard e clique em Apply.

  Clique em "+ Add" para adicionar uma nova instância.
  Marque a opção Advanced mode no topo da tela.
  Preencha o nome da instância com Tunel-Matriz-Filial-A
  Clique no ícone da engrenagem a frente de Public key para gerar o par de chaves pública/privada.
  Preencha Listen port com 51820.
  Preencha o Tunnel Address com 192.168.66.1/30
  Marque a opção Disable routes.
  Preencha o campo gateway com 192.168.66.2
  Clique em Save.

  Clique em "+ Add" para adicionar uma nova instância.
  Marque a opção Advanced mode no topo da tela.
  Preencha o nome da instância com Tunel-Matriz-Filial-B
  Clique no ícone da engrenagem a frente de Public key para gerar o par de chaves pública/privada.
  Preencha Listen port com 51821.
  Preencha o Tunnel Address com 192.168.67.1/30
  Marque a opção Disable routes.
  Preencha o campo gateway com 192.168.67.2
  Clique em Save.
  Clique em Apply.


No Firewall Filial

Acesse o menu VPN → Wireguard → Instances.
  Marque a caixa Enable Wireguard e clique em Apply.
 
  Clique em "+ Add" para adicionar uma nova instância.
  Marque a opção Advanced mode no topo da tela.
  Preencha o nome da instância com Tunel-Matriz-Filial-A
  Clique no ícone da engrenagem a frente de Public key para gerar o par de chaves pública/privada.
  Preencha Listen port com 51820.
  Preencha o Tunnel Address com 192.168.66.2/30
  Marque a opção Disable routes.
  Preencha o campo gateway com 192.168.66.1
  Clique em Save.

  Clique em "+ Add" para adicionar uma nova instância.
  Marque a opção Advanced mode no topo da tela.
  Preencha o nome da instância com Tunel-Matriz-Filial-B
  Clique no ícone da engrenagem a frente de Public key para gerar o par de chaves pública/privada.
  Preencha Listen port com 51821.
  Preencha o Tunnel Address com 192.168.67.2/30
  Marque a opção Disable routes.
  Preencha o campo gateway com 192.168.67.1
  Clique em Save.
  Clique em Apply.




Configurando os Peers Wireguard

No Firewall Matriz

Acesse o menu VPN → Wireguard → Peers.
  Clique em "+ Add" para adicionar um novo Peer.
  Preencha o nome da instância com Tunel-Matriz-Filial-A
  Copie a chave Pública gerada na Instância "Tunel-Matriz-Filial-A" do *Firewall da Filial* e cole no campo Public Key.
  Preencha Allowed IPs com 0.0.0.0/0.
  Deixe os campos "Endpoint Address" e "Endpoint port" vazios.
  No campo Instances selecione a Instância Tunel-Matriz-Filial-A.
  Em Keepalive interval insira 10.
  Clique em Save.
 
  Clique em "+ Add" para adicionar um novo Peer.
  Preencha o nome da instância com Tunel-Matriz-Filial-B
  Copie a chave Pública gerada na Instância "Tunel-Matriz-Filial-B" do *Firewall da Filial* e cole no campo Public Key.
  Preencha Allowed IPs com 0.0.0.0/0.
  Deixe os campos "Endpoint Address" e "Endpoint port" vazios.
  No campo Instances selecione a Instância Tunel-Matriz-Filial-B.
  Em Keepalive interval insira 10.
  Clique em Save.
  Clique em Apply.


No Firewall da Filial

Acesse o menu VPN → Wireguard → Peers.
  Clique em "+ Add" para adicionar um novo Peer.
  Preencha o nome da instância com Tunel-Matriz-Filial-A
  Copie a chave Pública gerada na Instância "Tunel-Matriz-Filial-A" do *Firewall da Matriz* e cole no campo Public Key.
  Preencha Allowed IPs com 0.0.0.0/0.
  Em Endpoint Address preencha com o primeiro IP Público da Matriz.
  Preencha o Endpoint port com 51820.
  No campo Instances selecione a Instância Tunel-Matriz-Filial-A.
  Em Keepalive interval insira 10.
  Clique em Save.
 
  Clique em "+ Add" para adicionar um novo Peer.
  Preencha o nome da instância com Tunel-Matriz-Filial-B
  Copie a chave Pública gerada na Instância "Tunel-Matriz-Filial-B" do *Firewall da Matriz* e cole no campo Public Key.
  Preencha Allowed IPs com 0.0.0.0/0.
  Em Endpoint Address preencha com o segundo IP Público da Matriz.
  Preencha o Endpoint port com 51821.
  No campo Instances selecione a Instância Tunel-Matriz-Filial-B.
  Em Keepalive interval insira 10.
  Clique em Save.
  Clique em Apply.


Configurando as Regras de Firewall

No Firewall Matriz

Acesse o menu Firewall → Rules → WAN1.
  Clique em "+ Add" para adicionar uma nova Regra para liberar a conexão VPN.
  Em protocolo selecione UDP.
  Em Destination selecione This Firewall
  Em Destination Port Range selecione Other e preencha o campo From com 51820 e o campo To com 51820
  Marque a caixa Log.
  Insira a seguinte descrição: Libera VPN Wireguard
  Clique em Save
  Clique em Apply changes.

Acesse o menu Firewall → Rules → WAN2.
  Clique em "+ Add" para adicionar uma nova Regra para liberar a conexão VPN (no segundo link).
  Em protocolo selecione UDP.
  Em Destination selecione This Firewall
  Em Destination Port Range selecione Other e preencha o campo From com 51821 e o campo To com 51821
  Marque a caixa Log.
  Insira a seguinte descrição: Libera VPN Wireguard
  Clique em Save
  Clique em Apply changes.

Acesse o menu Firewall → Rules → Wireguard (Group).
  Clique em "+ Add" para adicionar uma nova Regra para liberar o tráfego dentro do túnel.
  Marque a caixa Log.
  Insira a seguinte descrição: Libera Trafego VPN Wireguard
  Clique em Save
  Clique em Apply changes.


No Firewall da Filial

Acesse o menu Firewall → Rules → Wireguard (Group).
  Clique em "+ Add" para adicionar uma nova Regra para liberar o tráfego dentro do túnel.
  Marque a caixa Log.
  Insira a seguinte descrição: Libera Trafego VPN Wireguard
  Clique em Save
  Clique em Apply changes.




Verificando os Túneis

No Firewall Matriz

Acesse o menu VPN→ Wireguard→ Status.
Verifique se todos os túneis foram conectados com sucesso como na imagem abaixo (coluna status verdinha).

Caso alguma das conexões não tenha sido estabelecida (ícone vermelho), reveja as etapas acima novamente. Verifique se ambos os firewalls consegue se comunicar por ambos os links de internet.



Instalando Plugin OS-FRR para Roteamento Dinâmico

Em ambos os Firewalls

  Navegue até System → Firmware → Plugins.
  Localize e instale o plugin os-frr
  Atualize a página para aparecer o menu "Routing"


Habilitando o Roteamento Dinâmico

Em ambos os Firewalls

  Navegue até Routing → General.
  Marque a opção Enable para habilitar o roteamento dinâmico.
  Clique em Apply.


Configurando o Roteamento Dinâmico

No Firewall Matriz

Habilite o BGP
  Acesse o menu Routing → BGP.
  Marque a opção Enable.
  Preencha o campo Network com a rede LAN da matriz, no formato CIDR. Exemplo: 192.168.1.0/24.
  Clique em Apply.

Cadastre os Vizinhos BGP
  Acesse a guia Neighbors
  Clique em "+ Add" para adicionar um novo vizinho BGP.
  Preencha o campo description com: Tunel-Matriz-Filial-A
  Em Peer-IP preencha o endereço 192.168.66.2
  Em Remote AS preencha 65551
  Marque a opção BFD.
  Marque a opção Advanced mode no canto superior esquerdo do formulário.
  Preencha o campo Weight (peso desta rota) com 500.
  Clique em Save.

  Clique em "+ Add" para adicionar um novo vizinho BGP.
  Preencha o campo description com: Tunel-Matriz-Filial-B
  Em Peer-IP preencha o endereço 192.168.67.2
  Em Remote AS preencha 65551
  Marque a opção BFD.
  Clique em Save.
  Clique em Apply.

Habilite o BFD
  Acesse o menu Routing → BFD.
  Marque a opção Enable.
  Clique em Apply.


No Firewall da Filial

Habilite o BGP
  Acesse o menu Routing → BGP.
  Marque a opção Enable.
  Preencha o campo Network com a rede LAN da filial, no formato CIDR. Exemplo: 192.168.2.0/24.
  Clique em Apply.

Cadastre os Vizinhos BGP
  Acesse a guia Neighbors
  Clique em "+ Add" para adicionar um novo vizinho BGP.
  Preencha o campo description com: Tunel-Matriz-Filial-A
  Em Peer-IP preencha o endereço 192.168.66.1
  Em Remote AS preencha 65551
  Marque a opção BFD.
  Marque a opção Advanced mode no canto superior esquerdo do formulário.
  Preencha o campo Weight (peso desta rota) com 500.
  Clique em Save.

Clique em "+ Add" para adicionar um novo vizinho BGP.
  Preencha o campo description com: Tunel-Matriz-Filial-B
  Em Peer-IP preencha o endereço 192.168.67.1
  Em Remote AS preencha 65551
  Marque a opção BFD.
  Clique em Save.
  Clique em Apply.

Habilite o BFD
  Acesse o menu Routing → BFD.
  Marque a opção Enable.
  Clique em Apply.


Verificando a Configuração

Em Ambos os Firewalls

Acesse o menu Routing → Diagnostics → General.
Acesse a guia Running Configuration.
Verifique se há configuração correspondente (seções router-bgp e address-family).
Caso não tenha carregado a configuração, tente rever todo o processo para garantir que não deixou nenhuma etapa de fora da configuração.



Validando a Comunicação

Para validar a comunicação de rede entre as unidades, use um computador de cada unidade e dispare um PING entre eles.
Não se esqueça que deverá haver regras na interface LAN de cada firewall, permitindo a rede LAN local comunicar com a rede LAN remota.
Use o `tracert` para garantir que a rota está saindo pelo túnel VPN ao invés de um link de internet específico definido através de Policy Routing (gateway explícito em regras da LAN).



Qual Túnel Está sendo Usado Preferencialmente?

No firewall da Matriz

Acesse o menu Routing → Diagnostics → BGP
Podemos ver que a melhor rota para a rede da Filial é o túnel que definimos um peso (Weight) de 500. Portante este é o túnel sendo utilizado.


- nothing broken, nothing missing;