O que é BGP? | Entenda o roteamento BGP

O Border Gateway Protocol (BGP) é um protocolo de roteamento para a internet. Assim como o correio processa correspondências, o BGP escolhe as rotas mais eficientes para fornecer o tráfego da internet.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Define BGP routing
  • Explore the relationship between autonomous systems
  • Explain how BGP can impact the functionality of the Internet

Copiar o link do artigo

O que é BGP?

O BGP (Border Gateway Protocol) é o correio da internet. Quando alguém entrega uma carta no guichê, os Correios processam essa correspondência e escolhem uma rota rápida e eficiente para entregar a carta ao destinatário. Da mesma forma, quando alguém envia dados pela internet, o BGP é responsável por examinar todos os caminhos disponíveis que os dados poderiam percorrer e escolher a melhor rota, o que geralmente significa ficar saltando entre sistemas autônomos.

O BGP é o protocolo que faz a internet funcionar, permitindo o roteamento de dados. Quando um usuário em Singapura carrega um site com servidores de origem na Argentina, o BGP é o protocolo que permite que a comunicação ocorra de forma rápida e eficiente.

O que é um sistema autônomo?

A internet é uma rede de redes, dividida em centenas de milhares de redes menores conhecidas como sistemas autônomos (ASes). Cada uma dessas redes é essencialmente um grande conjunto de roteadores administrados por uma única organização.

Topografia da internet

Se continuarmos a pensar no BGP como os Correios da internet, os ASes são como agências centrais dos Correios. Uma cidade pode ter centenas de agências dos Correios, mas a correspondência precisa chegar a uma agência central que irá encaminhá-la para outro destino. Os roteadores internos dentro de um AS são como os guichês das agências que encaminham suas transmissões de saída para o AS propriamente dito, que então usa o roteamento BGP para levar essas transmissões até seus destinos.

O BGP simplificado

O diagrama acima ilustra uma versão simplificada do BGP. Nesta versão, há apenas seis ASes na internet. Se precisar encaminhar um pacote para o AS3, o AS1 tem duas opções diferentes:

Um salto para a AS2 e, depois, para a AS3:

AS2 → AS3

Ou um salto para a AS6 e, depois, para a AS5, a AS4 e, finalmente, para a AS3:

AS6 → AS5 → AS4 → AS3

Neste modelo simplificado, a decisão parece simples. A rota AS2 requer menos saltos que a rota AS6 e, portanto, é a rota mais rápida e eficiente. Agora imagine que existem centenas de milhares de ASes e que o número de saltos é apenas uma parte de um algoritmo complexo de seleção de rotas. Essa é a realidade do roteamento BGP na internet.

A estrutura da internet está em constante mudança, com novos sistemas surgindo e os sistemas existentes se tornando indisponíveis. Devido a isso, todo AS deve ser mantido atualizado com informações sobre novas rotas e também rotas obsoletas. Isto é feito através de sessões de peering, onde cada AS se conecta aos ASes vizinhos por meio de uma conexão TCP/IP com o propósito de compartilhar informações de roteamento. Usando essas informações, cada AS é equipado para rotear corretamente as transmissões de dados de saída vindas de dentro.

É aqui que uma parte da nossa analogia se desmorona. Ao contrário das agências dos correios, os sistemas autônomos não fazem parte da mesma organização. Na verdade, frequentemente pertencem a empresas concorrentes e, por esta razão, as rotas de BGP às vezes levam em conta fatores comerciais. Os ASes frequentemente cobram uns dos outros para transportar tráfego através de suas redes e o preço de acesso pode influenciar qual rota é selecionada no final.

Quem opera os sistemas autônomos do BGP?

Os ASes normalmente pertencem a provedores de serviços de internet (ISPs) ou outras grandes organizações, tais como empresas de tecnologia, universidades, agências governamentais e instituições científicas. Cada AS que deseje trocar informações sobre o roteamento deve ter um número de sistema autônomo registrado (ASN). A Autoridade para Atribuição de Números da Internet (IANA) atribui ASNs a Registros Regionais da Internet (RIRs) que, em seguida, os atribui a ISPs e redes. Os ASNs são números de 16 bits entre um e 65534 e 32 bits entre 131072 e 4294967294. Em 2018, existiam cerca de 64 mil ASNs sendo usados em todo o mundo. Estes ASNs são necessários somente para BGPs externos.

Qual é a diferença entre um BGP externo e um BGP interno?

As rotas são trocadas e o tráfego é transmitido pela internet utilizando o BGP externo (eBGP). Os sistemas autônomos também podem usar uma versão interna do BGP para rotear através de suas redes internas, o que é conhecido como BGP interno (iBGP). Vale observar que o uso do BGP interno NÃO é um requisito para o uso do BGP externo. Os sistemas autônomos podem optar entre vários protocolos internos para conectar os roteadores em sua rede interna.

O BGP externo é como um envio internacional. Há certos padrões e diretrizes que precisam ser seguidos quando se envia uma correspondência para outro país. Assim que chega ao seu país de destino, essa correspondência precisa passar pelo serviço de correios local para chegar ao seu destino final. Cada país tem seu próprio serviço de correios interno que não necessariamente segue as mesmas diretrizes de outros países. Da mesma forma, cada sistema autônomo pode ter seu próprio protocolo interno de roteamento de dados dentro de sua própria rede.

Falhas do BGP e como solucioná-las

Em 2004, um provedor turco chamado TTNet anunciou acidentalmente rotas de BGP incorretas para seus vizinhos. Essas rotas alegavam que a própria TTNet era o melhor destino para todo o tráfego na internet, e como as rotas se espalhavam cada vez mais para sistemas mais autônomos, ocorreu uma enorme ruptura, gerando uma crise com duração de um dia durante a qual muitas pessoas em todo o mundo não conseguiram acessar a internet, no todo ou em parte.

Em um evento semelhante em 2008 um provedor paquistanês tentou usar uma rota de BGP para impedir que usuários paquistaneses acessassem o YouTube. O provedor então anunciou a rota acidentalmente para os ASes nas redondezas e ela rapidamente se espalhou pela rede BGP da internet. Essa rota enviou os usuários que tentavam acessar o YouTube para um beco sem saída e, como resultado, o YouTube ficou inacessível por várias horas.

Esses são alguns exemplos de uma prática chamada sequestro de BGP, que nem sempre acontece acidentalmente. Em abril de 2018, invasores criaram rotas de BGP deliberadamente ruins para redirecionar o tráfego que era destinado ao serviço de DNS da Amazon. Os invasores conseguiram roubar o equivalente a mais de US$ 100.000 em criptomoeda ao redirecionar o tráfego para si próprios.

Incidentes como esses podem acontecer porque a função de compartilhamento de rotas de BGP depende da confiança e os sistemas autônomos confiam implicitamente nas rotas que são compartilhadas com eles. Quando os pares anunciam informações incorretas de rotas (intencionalmente ou não), o tráfego vai para onde não deve ir, possivelmente com resultados maliciosos.

Felizmente, foram feitos alguns progressos para garantir a segurança do BGP, com destaque para uma estrutura de segurança de roteamento chamada Infraestrutura de Chave Pública de Recursos (RPKI) introduzida em 2008. A RPKI usa registros assinados criptograficamente, conhecidos como Autorização de Origem de Rota (ROAs), para validar qual operador de rede está autorizado a anunciar os endereços IP de uma organização usando o BGP. Isto assegura que somente pessoas autorizadas estejam anunciando os prefixos de uma organização.

Mas a existência da RPKI por si só não é suficiente. Se não tiverem implantado a RPKI, grandes redes podem espalhar ataques de sequestro em larga escala. Atualmente, mais de 50% dos principais provedores de internet oferecem suporte à RPKI até certo ponto, mas uma maioria mais ampla é necessária para tornar o BGP totalmente seguro. Os operadores de rede podem proteger suas redes implementando a RPKI e utilizando tecnologias de alerta de rede como a Detecção de Vazamento de Rota da Cloudflare. Este recurso ajuda a evitar ataques de sequestro do BGP, alertando os clientes quando pessoas não autorizadas estiverem anunciando seus prefixos.