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.