ULC Lab · implementação reproduzível
Laboratório: Roteamento BGP IPv4 com FRRouting entre dois ASNs simulados
Você vai implementar e validar uma sessão BGP IPv4 entre dois roteadores virtuais usando FRRouting, simulando dois provedores distintos. O laboratório leva cerca de 2 horas e cobre configuração, anúncio e filtragem de rotas.

- Duração estimada
- 120 min
- Passos
- 12
- Validações
- 5
- Versões da documentação consultada
- FRRouting 8.5 · Quagga (contexto) consulte a documentação
Este laboratório ensina a configurar FRRouting em dois roteadores Linux, estabelecer uma sessão BGP entre eles, anunciar prefixos, aplicar filtros e validar o roteamento. O foco é entender o fluxo de configuração, identificar pontos críticos e aplicar boas práticas de operação, como filtragem de prefixos e troubleshooting básico.
Topologia
Dois roteadores virtuais (R1 e R2), cada um em um AS distinto (65001 e 65002), conectados por uma interface ponto a ponto (rede 192.0.2.0/30). Cada roteador anuncia uma rede privada própria (R1: 10.10.10.0/24, R2: 10.20.20.0/24) via BGP. Não há roteamento dinâmico além do BGP. O laboratório pode ser feito em duas VMs Linux conectadas por uma rede virtual.
+-----------+ +-----------+
| R1 |-----------| R2 |
| ASN 65001 | | ASN 65002 |
|10.10.10.0/24 |10.20.20.0/24
|192.0.2.1 | 192.0.2.2| |
+-----------+ +-----------+
Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| VM Linux (R1) | 1 vCPU, 512MB RAM, 1 interface de rede, Debian 11 ou Ubuntu 22.04 |
| VM Linux (R2) | 1 vCPU, 512MB RAM, 1 interface de rede, Debian 11 ou Ubuntu 22.04 |
| FRRouting | GPLv2 · 8.5 |
| Quagga (contexto) | GPLv2 · consulte a documentação |
Roteiro
- Preparar as VMs e interfaces de rede
Crie duas VMs Linux e conecte-as à mesma rede virtual. Configure os endereços IP nas interfaces para garantir conectividade ponto a ponto.
No R1: ip addr add 192.0.2.1/30 dev eth0 No R2: ip addr add 192.0.2.2/30 dev eth0 ping 192.0.2.2 (a partir do R1)O que você deve ver: Resposta ao ping entre R1 e R2, sem perda.
- Instalar o FRRouting nas duas VMs
FRRouting é o roteador de código aberto usado neste laboratório. Instale via repositório oficial.
apt update && apt install frr frr-pythontools -yO que você deve ver: Pacotes FRRouting instalados sem erros.
- Habilitar e iniciar os serviços do FRRouting
O serviço frr precisa estar ativo para aceitar conexões e processar rotas.
systemctl enable frr && systemctl start frr systemctl status frrO que você deve ver: Status do serviço frr: active (running).
- Configurar o BGP no R1
No R1, defina o ASN, o router-id, a rede a ser anunciada e o vizinho BGP (R2).
vtysh configure terminal router bgp 65001 bgp router-id 1.1.1.1 neighbor 192.0.2.2 remote-as 65002 network 10.10.10.0/24 exit write memoryO que você deve ver: Configuração salva e sem mensagens de erro.
- Configurar o BGP no R2
No R2, defina o ASN, o router-id, a rede a ser anunciada e o vizinho BGP (R1).
vtysh configure terminal router bgp 65002 bgp router-id 2.2.2.2 neighbor 192.0.2.1 remote-as 65001 network 10.20.20.0/24 exit write memoryO que você deve ver: Configuração salva e sem mensagens de erro.
- Verificar o estabelecimento da sessão BGP
O BGP depende do TCP. Verifique se a sessão foi estabelecida entre os ASNs.
vtysh -c 'show ip bgp summary'O que você deve ver: Estado 'Established' na coluna State/PfxRcd para o vizinho.
- Validar o recebimento de rotas BGP
Cada roteador deve receber o prefixo anunciado pelo outro.
vtysh -c 'show ip bgp'O que você deve ver: No R1, prefixo 10.20.20.0/24; no R2, prefixo 10.10.10.0/24.
- Configurar filtro de entrada de prefixos no R1
Aplique um filtro para aceitar apenas o prefixo 10.20.20.0/24 vindo do vizinho.
vtysh configure terminal ip prefix-list FROM-R2 seq 5 permit 10.20.20.0/24 route-map ACCEPT-FROM-R2 permit 10 match ip address prefix-list FROM-R2 router bgp 65001 neighbor 192.0.2.2 route-map ACCEPT-FROM-R2 in exit write memoryO que você deve ver: Configuração salva; apenas 10.20.20.0/24 aceito de R2.
- Testar conectividade fim a fim
Teste se R1 consegue pingar o IP de R2 na rede 10.20.20.0/24 e vice-versa.
No R1: ping 10.20.20.1 No R2: ping 10.10.10.1O que você deve ver: Respostas ao ping, indicando roteamento funcional.
- Simular queda da sessão BGP
Derrube a interface de um dos roteadores e observe o efeito na sessão BGP.
No R2: ip link set eth0 down vtysh -c 'show ip bgp summary'O que você deve ver: Estado Idle ou Active para o vizinho, sem prefixos recebidos.
- Restaurar a sessão e validar reconvergência
Volte a interface e veja a sessão BGP restabelecendo.
No R2: ip link set eth0 up vtysh -c 'show ip bgp summary'O que você deve ver: Estado Established novamente após alguns segundos.
- Analisar logs do FRRouting
Verifique os logs para identificar eventos de estabelecimento e queda de sessão.
tail -n 20 /var/log/frr/bgpd.logO que você deve ver: Mensagens de Established e Idle para a sessão BGP.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Sessão BGP estabelecida | vtysh -c 'show ip bgp summary' | Coluna State/PfxRcd mostra Established e prefixos recebidos > 0 |
| Recebimento correto de prefixos | vtysh -c 'show ip bgp' | Prefixo do outro roteador aparece na tabela BGP |
| Filtro de prefixos funcionando | vtysh -c 'show ip bgp' | Apenas prefixos permitidos pelo filtro aparecem |
| Roteamento fim a fim | ping <IP da rede remota> | Respostas ao ping |
| Logs de eventos BGP | tail -n 20 /var/log/frr/bgpd.log | Mensagens de transição de estado da sessão |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Sessão BGP não sobe (Idle) | Problema de conectividade IP ou porta TCP 179 bloqueada | Verifique IP, firewall e conectividade entre as VMs |
| Prefixos não aparecem na tabela BGP | Configuração de 'network' ausente ou filtro bloqueando | Revise configuração de 'network' e filtros aplicados |
| Ping entre redes não responde | Rota ausente na tabela de roteamento ou filtro BGP excessivo | Verifique 'show ip route' e ajuste filtros |
| Sessão BGP cai frequentemente | Instabilidade de rede ou configuração de keepalive/holdtime inadequada | Consulte a documentação para ajustar timers |
| FRRouting não inicia | Erro de configuração ou conflito de portas | Revise arquivos em /etc/frr/ e logs em /var/log/frr/ |
Segurança e hardening
- Restrinja acesso SSH apenas às VMs necessárias
- Desabilite serviços não essenciais no Linux
- Aplique filtros BGP para evitar anúncio ou aceitação de prefixos indesejados
- Monitore logs do FRRouting para detectar tentativas de sessão não autorizadas
- Consulte a documentação do FRRouting para hardening adicional
Checklist final
Referências
- FRRouting User Guide · FRRouting Project (docs.frrouting.org)
- RFC 4271 - Border Gateway Protocol 4 (BGP-4) · IETF (datatracker.ietf.org)
- MANRS para Operadores de Rede · MANRS (Internet Society) (manrs.org)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 3 oficiais · 1 de normas ou órgãos
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
