O que é BGP e OSPF: a diferença explicada para provedores
O que é BGP e OSPF: são os dois protocolos de roteamento que sustentam a rede de um provedor, cada um num lado da fronteira. O OSPF faz os roteadores da casa se enxergarem e acharem o caminho interno, e o BGP troca rotas com as redes de fora, como trânsitos, IX.br e caches.
Resumo
- [object Object]
- [object Object]
- Num provedor bem desenhado, os dois trabalham juntos e cada um carrega só o que é dele.
- O problema aparece quando um faz o papel do outro, como rotas de clientes no OSPF ou BGP redistribuído nele.
O que é BGP e OSPF, em uma frase cada
OSPF é o protocolo que os roteadores de uma mesma rede usam para montar um mapa comum e achar o caminho interno. BGP é o protocolo que redes de donos diferentes usam para dizer umas às outras quais endereços alcançam.
O OSPF, sigla de Open Shortest Path First, é do tipo estado de enlace. Cada roteador conta aos outros quais enlaces tem e quanto custa cada um, todos guardam o mesmo mapa e cada um calcula sozinho o caminho de menor custo até qualquer ponto da rede.
O BGP, sigla de Border Gateway Protocol, é do tipo vetor de caminho. Ele não sabe quantos enlaces existem até o destino; sabe só por quais redes o anúncio passou e aplica as regras que cada rede escreveu, que é o trabalho central dos serviços de BGP para provedores.
Para quem está começando, o guia sobre como funciona BGP detalha sessões, anúncios e AS_PATH. Aqui o foco é outro: o que separa os dois protocolos e por que um provedor precisa de ambos.
Protocolo interno e protocolo externo: a diferença de fundo
A diferença que importa não é técnica, é de confiança. O OSPF assume que todos os vizinhos são da mesma equipe; o BGP assume que cada vizinho é outra empresa, com interesses próprios.
Por isso o OSPF compartilha tudo e aceita tudo o que recebe dos vizinhos da área. O BGP compartilha o mínimo, filtra o que chega e deixa cada rede decidir o que aceitar e por onde mandar o tráfego.
BGP e OSPF lado a lado
A tabela compara os dois pelo que importa na operação de um provedor regional. Repare que eles quase nunca disputam o mesmo trabalho.
| Característica | OSPF | BGP |
|---|---|---|
| Tipo | Protocolo interno (IGP), de estado de enlace | Protocolo externo (EGP), de vetor de caminho |
| Com quem fala | Roteadores da própria rede, descobertos sozinhos | Vizinhos configurados um a um, de dentro ou de fora |
| O que conhece | Todos os enlaces e o custo de cada um | Prefixos e a lista de redes até cada um |
| Como decide | Menor custo somado até o destino | Política do dono da rede, depois atributos |
| Volume típico | Dezenas ou centenas de rotas internas | Até a tabela completa da internet |
| Reação a uma falha | Recalcula o mapa em segundos ou menos | Espera o vizinho retirar a rota ou a sessão cair |
| Onde fica no provedor | Núcleo, agregação e loopbacks | Borda, iBGP entre roteadores e caches |
A linha do volume explica boa parte dos problemas. O OSPF foi feito para um mapa pequeno e detalhado; o BGP, para uma lista enorme e resumida. Inverter os papéis faz um deles carregar o que não aguenta.
Por que o OSPF não serve para falar com a operadora?
Porque ligar OSPF com a operadora seria juntar as duas redes num mapa só. Cada mudança num enlace dela faria os seus roteadores recalcularem, e vice-versa, sem nenhum filtro entre as empresas.
Nenhuma operadora aceita isso, e nenhum provedor deveria querer. Entre redes diferentes, o BGP é a única opção usada na internet.
O que é BGP e OSPF na prática: onde cada um roda no provedor
Num provedor típico, o OSPF cobre o caminho entre os roteadores da casa e o BGP cobre a borda e a distribuição das rotas externas. O diagrama mostra o trajeto do tráfego de um assinante até a internet.
Acesso
OLT e concentrador
O assinante autentica no concentrador, que conhece o pool de endereços e anuncia esse pool por iBGP.
Agregação e núcleo
Roteadores internos
O OSPF liga os roteadores da casa e faz cada loopback ser alcançável pelos outros.
Borda
Roteador de borda
Sessões iBGP recebem os pools dos concentradores; sessões eBGP falam com as redes de fora.
Fora da rede
Trânsitos, IX.br e caches
Só o BGP passa daqui. A borda anuncia os blocos do provedor e recebe as rotas da internet.
O OSPF não sai da rede do provedor, e o BGP não precisa conhecer os enlaces internos. Um depende do outro apenas num ponto: o próximo salto das rotas BGP é alcançado pelo caminho que o OSPF calculou.
Esse ponto de contato é o que liga os dois mundos. Se o OSPF perde o caminho até o loopback de uma borda, as sessões iBGP com ela caem e as rotas externas somem do núcleo, mesmo com os links de trânsito funcionando.
Seu roteamento interno e a borda foram montados por pessoas diferentes?
Nos serviços de BGP, um Especialista revisa o OSPF, o iBGP e as sessões externas juntos e documenta o papel de cada protocolo na sua rede.
Exemplo: provedor com dois POPs e dois trânsitos
Um provedor tem um POP em cada cidade, cada um com um roteador de borda e um link de trânsito. Os dois POPs se ligam por fibra própria.
- OSPF: carrega os loopbacks das duas bordas, dos concentradores e o enlace entre os POPs.
- eBGP: cada borda tem sessão com o seu trânsito e anuncia os blocos do provedor.
- iBGP: as bordas e os concentradores trocam os pools de clientes e as rotas externas entre si.
- Falha: se o trânsito de um POP cai, o iBGP leva os assinantes dele para a saída do outro, pela fibra entre as cidades.
Sem iBGP, a troca dependeria de rota padrão e de ajustes manuais. Sem OSPF, as bordas não saberiam se alcançar, e o iBGP nem chegaria a subir.
Quando a mistura de BGP e OSPF vira problema?
Vira problema quando um protocolo passa a carregar o trabalho do outro, quase sempre por pressa durante o crescimento. A rede continua funcionando, mas fica lenta para se recuperar e frágil a qualquer erro.
Em muitos provedores, a primeira rede nasce com um roteador só e rotas estáticas. Com o segundo POP entra o OSPF; com o segundo link entra o BGP; e cada etapa é feita com o mínimo necessário para funcionar naquela noite.
Marque o que acontece hoje na sua rede
- Os pools de clientes e os blocos de CGNAT são anunciados dentro do OSPF.
- Alguém redistribuiu rotas do BGP no OSPF para resolver uma rota faltando.
- A queda de um enlace interno derruba sessões BGP que não deveriam depender dele.
- Há rotas estáticas espalhadas pelos roteadores que ninguém sabe se ainda são usadas.
- Só uma pessoa sabe explicar por que o tráfego sai por um link e não pelo outro.
Uma marca já indica um protocolo fora do lugar. Duas ou mais mostram que a rede cresceu sem desenho, e cada expansão nova vai aumentar o risco.
O risco de redistribuir o BGP dentro do OSPF
Redistribuir é copiar rotas de um protocolo para o outro. Do BGP para o OSPF, isso pode despejar a tabela inteira da internet num protocolo feito para algumas centenas de rotas.
O efeito vai de roteadores com memória cheia a um OSPF que não para de recalcular e derruba as próprias sessões iBGP que dependiam dele. O guia de configuração de OSPF mostra como deixar o protocolo interno só com o que é dele.
BGP, OSPF ou os dois: como escolher?
A escolha depende de quantos roteadores a rede tem e de quantas saídas para a internet existem. Para a maioria dos provedores com ASN próprio, a resposta é os dois, cada um no seu lugar.
| Situação da rede | Roteamento interno | Borda |
|---|---|---|
| Um roteador, um link, IP da operadora | Nenhum, só rotas diretas | Rota estática para a operadora |
| Um roteador, ASN e bloco próprios | Nenhum ou OSPF mínimo | eBGP com o trânsito |
| Vários roteadores, uma borda | OSPF ou IS-IS | eBGP na borda e iBGP para os concentradores |
| Vários POPs e duas ou mais bordas | OSPF ou IS-IS | eBGP em cada borda e iBGP entre todos, com refletor se crescer |
O IS-IS cumpre o mesmo papel do OSPF e é comum em redes maiores. O guia de configuração de IS-IS mostra quando ele faz mais sentido; para o BGP, tanto faz qual dos dois está por baixo.
Rede só com BGP, sem protocolo interno
Grandes data centers rodam eBGP em todos os roteadores e dispensam o protocolo interno, como descreve a RFC 7938. Em provedor regional esse desenho é raro, porque a topologia é irregular e a equipe costuma dominar OSPF.
O caminho contrário, rodar só OSPF e nenhum BGP, funciona enquanto o provedor depende de uma operadora só. No dia do segundo link, o BGP deixa de ser opcional.
Erros comuns ao combinar BGP e OSPF
Os erros mais caros são os que funcionam no começo e cobram a conta no crescimento. A lista abaixo reúne os que mais aparecem em revisões de redes de provedores.
Evite
- Colocar pools de clientes e blocos de CGNAT no OSPF.
- Redistribuir o BGP no OSPF, ou o OSPF no BGP sem filtro.
- Montar sessões iBGP entre endereços de enlace em vez de loopbacks.
- Deixar o OSPF ativo em portas voltadas para clientes ou operadoras.
- Resolver cada rota faltando com uma rota estática nova.
O quarto item é um risco de segurança, além de desenho. Uma porta de cliente com OSPF ativo permite que um equipamento qualquer entre no seu mapa interno e anuncie o que quiser.
A Táquion Tech revisa o roteamento interno e a borda BGP em conjunto e entrega um desenho que diz o que cada protocolo carrega. O guia de configuração de iBGP mostra a camada que liga os dois.
Perguntas frequentes
Qual a diferença entre BGP e OSPF?
O OSPF roda dentro de uma rede e calcula o caminho de menor custo entre os roteadores dela. O BGP roda entre redes diferentes e troca blocos de endereços segundo a política de cada uma.
O OSPF pode substituir o BGP no provedor?
Não. O OSPF não fala com outras redes de forma segura e não carrega a tabela da internet; ele só substitui o BGP dentro de casa, e mesmo assim apenas para as rotas da infraestrutura.
BGP é mais difícil de configurar que OSPF?
A sintaxe dos dois é parecida em tamanho, mas o BGP exige decisões de política que o OSPF não tem. Um erro no OSPF afeta a sua rede; um erro no BGP pode afetar outras redes da internet.
O que significa redistribuir rotas entre protocolos?
É copiar rotas aprendidas por um protocolo para dentro de outro. Entre BGP e OSPF, isso só deve ser feito com filtro estrito e motivo claro, porque costuma levar rotas demais para o lugar errado.
Preciso de OSPF se tenho só um roteador?
Não. Com um roteador só não há caminho interno a calcular, e o BGP na borda resolve a troca com a operadora. O OSPF entra quando o segundo roteador ou o segundo POP aparecem.
Fontes
- RFC 2328, OSPF Version 2: funcionamento do OSPF como protocolo de estado de enlace.
- RFC 4271, A Border Gateway Protocol 4 (BGP-4): funcionamento do BGP como protocolo de vetor de caminho entre sistemas autônomos.
- RFC 7938, Use of BGP for Routing in Large-Scale Data Centers: desenho com BGP em todos os roteadores, sem protocolo interno.