BGP
O que é BGP?
BGP significa Border Gateway Protocol.
Ele é um protocolo de roteamento usado para trocar informações de rotas entre diferentes redes independentes, chamadas de sistemas autônomos ou AS.
O BGP é considerado um dos protocolos mais importantes da internet, porque permite que redes de provedores, empresas, datacenters e grandes organizações saibam por onde enviar o tráfego até outros destinos.
De forma simples, o BGP ajuda a internet a decidir por quais redes os dados devem passar até chegar ao destino. A RFC 4271 define o BGP-4 como um protocolo de roteamento inter-AS, ou seja, usado entre sistemas autônomos.
Para que o BGP é usado?
O BGP é usado para roteamento entre redes diferentes.
Exemplos comuns:
Conectar provedores de internet.
Interligar grandes empresas à internet.
Anunciar blocos de IP públicos.
Controlar por qual operadora o tráfego deve sair.
Criar redundância entre links de internet.
Fazer roteamento entre sistemas autônomos.
Aplicar políticas de roteamento.
Escolher caminhos com base em regras administrativas.
Como o BGP funciona?
O BGP funciona por meio de sessões entre roteadores chamados de peers ou vizinhos BGP.
Esses roteadores trocam informações sobre redes alcançáveis e caminhos até essas redes.
Fluxo básico:
Dois roteadores BGP formam uma sessão TCP.
Eles trocam informações de rotas.
Cada rota pode conter atributos, como AS-PATH, NEXT-HOP e LOCAL_PREF.
O roteador analisa os atributos.
A melhor rota é escolhida conforme regras e políticas configuradas.
A rota é instalada na tabela de roteamento.
Exemplo:
AS 65001 → BGP → AS 65002 → BGP → AS 65003Características principais do BGP
O BGP possui algumas características importantes:
É usado entre sistemas autônomos.
É o principal protocolo de roteamento entre redes da internet.
É classificado como protocolo path-vector.
Usa TCP.
Usa a porta 179/TCP.
Trabalha com políticas de roteamento.
Permite controle detalhado de entrada e saída de tráfego.
É usado por ISPs, operadoras, datacenters e grandes empresas.
Pode ser usado como eBGP ou iBGP.
É flexível, mas complexo.
Pode sofrer problemas como route leaks e BGP hijacking.
BGP é a mesma coisa que OSPF?
Não.
BGP e OSPF são protocolos de roteamento, mas usados em contextos diferentes.
O OSPF é usado principalmente dentro de uma rede ou organização.
O BGP é usado principalmente entre redes diferentes, como provedores e sistemas autônomos.
Resumo:
| Protocolo | Tipo | Uso principal |
|---|---|---|
| OSPF | IGP | Roteamento interno |
| BGP | EGP | Roteamento entre sistemas autônomos |
BGP é a mesma coisa que RIP?
Não.
O RIP é simples e usado em redes pequenas.
O BGP é muito mais complexo e usado em redes grandes, principalmente na internet.
Resumo:
| Protocolo | Tipo | Métrica principal | Uso |
|---|---|---|---|
| RIP | Distance-vector | Saltos | Redes pequenas |
| OSPF | Link-state | Custo | Redes internas médias/grandes |
| BGP | Path-vector | Políticas e atributos | Internet e grandes redes |
BGP usa TCP ou UDP?
O BGP usa TCP.
A porta padrão é:
179/TCPO BGP forma uma sessão TCP entre os vizinhos antes de trocar rotas. A documentação técnica do BGP também descreve o protocolo como path-vector e executado sobre TCP na porta 179.
Qual porta o BGP usa?
O BGP usa a porta:
179/TCPNormalmente, essa porta precisa estar liberada entre os roteadores que formarão vizinhança BGP.
Exemplo de teste:
nc -vz ip_do_vizinho 179O que é sistema autônomo no BGP?
Sistema autônomo, ou AS, é uma rede ou conjunto de redes administrado por uma mesma entidade.
Exemplos:
Um provedor de internet.
Uma grande empresa.
Um datacenter.
Uma operadora.
Uma universidade com rede própria.
Cada sistema autônomo pode ter um número chamado ASN.
Exemplo:
AS 65001ASes anunciam políticas de roteamento para outros ASes usando BGP, permitindo o roteamento de pacotes entre redes em grande escala.
O que é ASN?
ASN significa Autonomous System Number.
Ele identifica um sistema autônomo na internet ou em uma rede privada.
Exemplo:
AS 64512Existem ASNs públicos e privados.
ASNs privados são usados em laboratórios, redes internas ou cenários específicos.
Faixa comum de ASNs privados de 16 bits:
64512 a 65534O que é eBGP?
eBGP significa External BGP.
Ele é usado quando o BGP roda entre roteadores de sistemas autônomos diferentes.
Exemplo:
AS 65001 → eBGP → AS 65002É o tipo de BGP mais associado à internet.
O que é iBGP?
iBGP significa Internal BGP.
Ele é usado quando o BGP roda entre roteadores dentro do mesmo sistema autônomo.
Exemplo:
AS 65001 → iBGP → AS 65001O iBGP é comum dentro de provedores, grandes empresas e redes com múltiplos roteadores BGP.
Diferença entre eBGP e iBGP
| Tipo | Onde funciona | Exemplo |
|---|---|---|
| eBGP | Entre AS diferentes | Provedor A com Provedor B |
| iBGP | Dentro do mesmo AS | Roteadores internos de um provedor |
O eBGP troca rotas entre redes diferentes.
O iBGP distribui rotas BGP dentro do mesmo sistema autônomo.
O que é peer BGP?
Peer BGP é um roteador vizinho com o qual outro roteador forma uma sessão BGP.
Também pode ser chamado de:
Vizinho BGP.
Neighbor BGP.
Roteador par.
Exemplo:
R1 ← sessão BGP → R2Para formar a sessão, os roteadores precisam ter configuração compatível e conectividade TCP na porta 179.
O que é AS-PATH no BGP?
AS-PATH é um atributo BGP que mostra por quais sistemas autônomos uma rota passou.
Exemplo:
AS-PATH: 65001 65002 65003Ele também ajuda a evitar loops.
Em geral, caminhos com AS-PATH menor podem ser preferidos, dependendo das outras políticas e atributos configurados.
O que é NEXT-HOP no BGP?
NEXT-HOP é o próximo endereço para onde o tráfego deve ser enviado para alcançar uma rota.
Exemplo:
NEXT-HOP: 192.0.2.1Se o roteador não souber alcançar o NEXT-HOP, a rota BGP pode não ser instalada na tabela de roteamento.
O que é LOCAL_PREF no BGP?
LOCAL_PREF significa Local Preference.
Ele é usado dentro de um AS para escolher a melhor saída para o tráfego.
Quanto maior o LOCAL_PREF, maior a preferência.
Exemplo:
LOCAL_PREF 200Uma rota com LOCAL_PREF 200 costuma ser preferida em relação a uma rota com LOCAL_PREF 100, se as demais condições permitirem.
O que é MED no BGP?
MED significa Multi-Exit Discriminator.
Ele é usado para sugerir a outro AS qual caminho deve ser preferido para entrar na sua rede.
Em geral, menor MED é preferido.
Exemplo:
MED 50Mas o comportamento pode depender da política do roteador e do provedor.
O que é prefixo no BGP?
Prefixo é uma rede anunciada via BGP.
Exemplo IPv4:
203.0.113.0/24Exemplo IPv6:
2001:db8::/32Quando uma rede anuncia um prefixo via BGP, está dizendo aos outros roteadores que sabe alcançar aquela rede.
O que é anúncio BGP?
Anúncio BGP é quando um roteador informa a outro que consegue alcançar determinado prefixo.
Exemplo:
AS 65001 anuncia 203.0.113.0/24O vizinho pode aceitar, rejeitar ou modificar esse anúncio com base em políticas.
O que é política de roteamento no BGP?
Política de roteamento é o conjunto de regras que controla quais rotas serão aceitas, anunciadas ou preferidas.
Exemplos:
Aceitar apenas prefixos autorizados.
Bloquear rotas inválidas.
Preferir um link de internet.
Usar outro link como backup.
Alterar LOCAL_PREF.
Filtrar prefixos pequenos demais.
Controlar anúncios para provedores diferentes.
O BGP é muito poderoso porque permite tomar decisões de roteamento com base em política, não apenas em caminho mais curto.
Como o BGP escolhe a melhor rota?
O BGP usa vários critérios para escolher a melhor rota.
A ordem exata pode variar conforme o fabricante, mas critérios comuns incluem:
Maior LOCAL_PREF.
Menor AS-PATH.
Menor origem, dependendo do tipo.
Menor MED.
Preferência por eBGP sobre iBGP.
Menor custo até o NEXT-HOP.
Menor Router ID, em alguns casos.
Importante: BGP não escolhe necessariamente o caminho mais rápido. Ele escolhe a melhor rota conforme atributos e políticas.
BGP escolhe sempre o caminho mais curto?
Não.
O BGP não funciona como “menor distância física” ou “menor latência”.
Ele escolhe rotas com base em atributos, políticas e caminhos entre ASes.
Por isso, às vezes um caminho BGP pode parecer mais longo, mas foi escolhido por política de operadora, custo comercial, preferência de link ou controle administrativo.
O que é BGP hijacking?
BGP hijacking é quando uma rede anuncia indevidamente prefixos que não pertencem a ela.
Isso pode fazer o tráfego ser desviado para o lugar errado.
Pode acontecer por erro de configuração ou por ataque malicioso.
Exemplo:
AS errado anuncia prefixo de outra empresaConsequências possíveis:
Indisponibilidade.
Desvio de tráfego.
Intercepção de dados.
Perda de conectividade.
Problemas de reputação.
A MANRS descreve route hijacking como quando um atacante ou operador anuncia prefixos de outra rede como se fossem seus, podendo distorcer o “mapa” da internet e redirecionar tráfego.
O que é route leak no BGP?
Route leak ocorre quando uma rede anuncia rotas que não deveria anunciar.
Exemplo:
Um cliente recebe rotas de um provedor e acidentalmente anuncia essas rotas para outro provedor.
Isso pode causar:
Rotas incorretas.
Aumento de latência.
Perda de pacotes.
Indisponibilidade.
Desvio de tráfego.
O que é RPKI no BGP?
RPKI significa Resource Public Key Infrastructure.
Ele é usado para ajudar a validar se um AS está autorizado a anunciar determinado prefixo.
Com RPKI, é possível criar registros chamados ROAs, que indicam qual AS pode anunciar determinado bloco IP.
Resumo:
Prefixo X pode ser anunciado pelo AS YO RPKI ajuda a reduzir riscos de anúncios incorretos, route leaks e hijacking. Iniciativas como MANRS promovem práticas como RPKI e validação de origem para melhorar a segurança do roteamento global.
O que é ROA?
ROA significa Route Origin Authorization.
É um registro usado no RPKI para informar qual AS está autorizado a originar um prefixo.
Exemplo:
203.0.113.0/24 autorizado para AS65001Se outro AS tentar anunciar esse prefixo, a rota pode ser considerada inválida por redes que fazem validação RPKI.
BGP é seguro?
O BGP original foi criado com base em confiança entre redes.
Por isso, ele não valida sozinho se todos os anúncios são legítimos.
Sem filtros e validações, podem ocorrer problemas como:
BGP hijacking.
Route leaks.
Anúncios incorretos.
Desvio de tráfego.
Instabilidade de rotas.
Por isso, redes profissionais usam filtros, RPKI, monitoramento e boas práticas de roteamento.
BGP usa TLS ou SSL?
Não.
O BGP tradicional não usa TLS ou SSL.
Ele usa TCP na porta 179.
A segurança normalmente é feita com outras medidas, como:
Filtros de prefixo.
Autenticação TCP MD5 ou TCP-AO, quando disponível.
TTL security.
RPKI.
ACLs.
Sessões protegidas.
Monitoramento de rotas.
Como configurar BGP em roteador Cisco?
Exemplo simples com ASN privado:
conf t
router bgp 65001
neighbor 192.0.2.2 remote-as 65002
network 203.0.113.0 mask 255.255.255.0
endExplicação:
router bgp 65001 ativa o BGP no AS 65001.neighbor 192.0.2.2 remote-as 65002 configura o vizinho BGP.network anuncia o prefixo, se ele existir na tabela de roteamento.
Como verificar vizinhos BGP em Cisco?
Verificar resumo:
show ip bgp summaryVer rotas BGP:
show ip bgpVer detalhes de um vizinho:
show ip bgp neighborsVer tabela de roteamento BGP:
show ip route bgpComo configurar BGP no Linux com FRRouting?
Instalar FRRouting:
sudo apt update
sudo apt install frrHabilitar BGP:
sudo nano /etc/frr/daemonsAjustar:
bgpd=yesReiniciar FRR:
sudo systemctl restart frrEntrar no terminal:
sudo vtyshConfigurar BGP:
configure terminal
router bgp 65001
neighbor 192.0.2.2 remote-as 65002
network 203.0.113.0/24
end
write memoryComo testar se o BGP está funcionando?
Testar porta TCP 179:
nc -vz ip_do_vizinho 179Verificar vizinhança em Cisco:
show ip bgp summaryVerificar rotas:
show ip bgpVerificar tabela de roteamento:
show ip route bgpNo FRRouting:
sudo vtyshDepois:
show bgp summary
show bgp ipv4 unicast
show ip route bgpErros comuns no BGP
Vizinhança BGP não sobe
Erro comum:
show ip bgp summarymostra o vizinho em estado Idle ou Active.
Possíveis causas:
IP do vizinho incorreto.remote-as errado.
Porta 179 bloqueada.
Sem rota até o vizinho.
Firewall bloqueando TCP 179.
Configuração de update-source ausente.
TTL insuficiente em eBGP multihop.
Verificações:
ping ip_do_vizinho
nc -vz ip_do_vizinho 179
show ip bgp summary
show running-config | section bgpEstado Idle
Possíveis causas:
BGP não conseguiu iniciar sessão.
Vizinho inacessível.
Configuração incorreta.
Interface down.
Rota até o vizinho inexistente.
Verificar:
show ip bgp summary
show ip route ip_do_vizinho
ping ip_do_vizinhoEstado Active
No BGP, “Active” não significa necessariamente funcionando.
Geralmente significa que o roteador está tentando formar sessão, mas ainda não conseguiu.
Possíveis causas:
Porta TCP 179 bloqueada.
Vizinho não configurado do outro lado.
ASN remoto incorreto.
IP de origem incorreto.
Firewall ou ACL bloqueando.
Testar porta:
nc -vz ip_do_vizinho 179Bad peer AS
Erro relacionado a AS incorreto.
Possíveis causas:
O ASN configurado em remote-as está errado.
O vizinho está usando outro ASN.
Configuração de eBGP/iBGP incorreta.
Exemplo de correção:
conf t
router bgp 65001
no neighbor 192.0.2.2 remote-as 65003
neighbor 192.0.2.2 remote-as 65002
endRotas BGP aparecem, mas não entram na tabela de roteamento
Possíveis causas:
NEXT-HOP inacessível.
Rota com preferência menor que outra rota.
Política bloqueando instalação.
Prefixo não válido.
Rota não é a melhor BGP.
Verificar:
show ip bgp
show ip route
show ip route ip_do_next_hopPrefixo não é anunciado
Possíveis causas:
O prefixo não existe na tabela de roteamento.
Comando network incorreto.
Máscara diferente.
Filtro de saída bloqueando.
Route-map impedindo anúncio.
Verificar:
show ip route
show ip bgp
show running-config | section bgpRoute leak
Possíveis causas:
Filtros de saída ausentes.
Cliente anunciando rotas de provedor para outro provedor.
Redistribuição incorreta.
Política BGP mal configurada.
Soluções:
Aplicar filtros de prefixo.
Usar prefix-lists.
Usar route-maps.
Validar anúncios esperados.
Monitorar rotas anunciadas.
BGP hijacking
Possíveis causas:
Anúncio malicioso de prefixos.
Erro de configuração.
Falta de validação RPKI.
Filtros fracos entre peers.
Soluções:
Usar RPKI/ROA.
Aplicar filtros de prefixo.
Monitorar anúncios globais.
Validar origem das rotas.
Participar de boas práticas como MANRS.
Como testar se o BGP está funcionando?
Verificar sessão:
show ip bgp summaryVerificar rotas BGP:
show ip bgpVerificar rotas instaladas:
show ip route bgpTestar porta TCP:
nc -vz ip_do_vizinho 179Testar conectividade com o destino:
ping ip_de_destinoVerificar caminho:
traceroute ip_de_destinoComandos principais relacionados ao BGP
| Comando | Função |
|---|---|
router bgp ASN | Ativa o processo BGP |
neighbor IP remote-as ASN | Configura vizinho BGP |
network prefixo mask mascara | Anuncia rede no BGP em Cisco |
show ip bgp summary | Mostra resumo dos vizinhos BGP |
show ip bgp | Mostra tabela BGP |
show ip bgp neighbors | Mostra detalhes dos vizinhos |
show ip route bgp | Mostra rotas BGP instaladas |
clear ip bgp * | Reinicia sessões BGP |
show bgp summary | Mostra resumo no FRRouting |
nc -vz IP 179 | Testa porta BGP TCP |
Exemplo completo de uso
Cenário:
R1 no AS 65001
R2 no AS 65002
Link entre eles: 192.0.2.0/30
R1: 192.0.2.1
R2: 192.0.2.2
Rede anunciada pelo R1: 203.0.113.0/24
Rede anunciada pelo R2: 198.51.100.0/24Configuração no R1:
conf t
router bgp 65001
neighbor 192.0.2.2 remote-as 65002
network 203.0.113.0 mask 255.255.255.0
endConfiguração no R2:
conf t
router bgp 65002
neighbor 192.0.2.1 remote-as 65001
network 198.51.100.0 mask 255.255.255.0
endVerificar vizinhança:
show ip bgp summaryVerificar rotas:
show ip bgpVerificar rotas instaladas:
show ip route bgpEsse exemplo cria uma sessão eBGP simples entre dois sistemas autônomos e permite a troca de prefixos entre eles.
Boas práticas de segurança
Filtrar prefixos recebidos e anunciados.
Usar prefix-lists e route-maps.
Criar ROAs no RPKI para seus blocos IP.
Validar rotas com RPKI quando possível.
Evitar aceitar qualquer rota sem filtro.
Usar autenticação de sessão quando disponível.
Proteger a porta 179/TCP com ACLs.
Monitorar anúncios BGP públicos.
Evitar route leaks com políticas claras.
Documentar peers, ASNs e prefixos.
Não anunciar prefixos que não pertencem à rede.
Usar limites de prefixos por peer.
Controlar redistribuição de rotas.
Manter roteadores atualizados.