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:

  • Definir roteamento BGP
  • Explorar a relação entre sistemas autônomos
  • Explicar como o BGP pode afetar a funcionalidade da internet

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

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.

Recurso
Recuperar o controle com a nuvem de conectividade

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.

Cadastre-se
Acelere seu tráfego globalmente com apenas um clique

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.

O que são atributos de BGP?

Em geral, o BGP tenta encontrar o caminho mais eficiente para o tráfego de rede. Mas, conforme observado acima, a contagem de saltos não é o único fator que os roteadores BGP usam para encontrar esses caminhos. O BGP atribui atributos a cada caminho, e esses atributos ajudam os roteadores a selecionar um caminho quando há várias opções. Muitos roteadores permitem que os administradores personalizem os atributos para obter um controle mais granular sobre como o tráfego flui em suas redes. Alguns exemplos de atributos de BGP são:

  • Weight: um atributo proprietário da Cisco, que informa ao roteador quais caminhos locais são preferidos.
  • Local preference: informa ao roteador qual caminho de saída deve ser selecionado.
  • Originate: diz a um roteador para escolher as rotas que adicionou ao próprio BGP.
  • AS path length: semelhante ao diagrama de exemplo acima, esse atributo diz a um roteador para preferir caminhos mais curtos.

Há também vários outros atributos de BGP. Todos esses atributos são ordenados por prioridade para os roteadores BGP, de modo que, por exemplo, um roteador BGP primeiro verifica qual rota tem o peso mais alto, depois verifica a preferência local, depois verifica se o roteador originou a rota e assim por diante. (Portanto, se todas as rotas recebidas tiverem o mesmo peso, o roteador selecionará um caminho com base na preferência local).

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.

Outro incidente nesse sentido ocorreu em junho de 2019, quando uma pequena empresa na Pensilvânia tornou-se o caminho preferencial para rotas através da rede da Verizon, fazendo com que grande parte da internet ficasse indisponível para os usuários 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 mil em criptomoeda ao redirecionar o tráfego para si próprios.

O sequestro de BGP pode ser usado para vários tipos de ataques:

  • Phishing e engenharia social por meio do redirecionamento de usuários para sites falsos
  • Negação de serviço (DoS) por meio de tráfego de blackholing ou redirecionamento
  • Ataques on-path para modificar dados trocados e subverter sistemas de filtragem baseados em reputação
  • Ataques de personificação para espionagem de comunicações

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.

Como proteger o BGP

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 grandes redes não seguirem as práticas de segurança de BGP recomendadas, elas podem espalhar ataques de sequestro em larga escala. Atualmente, mais de 50% dos principais provedores de internet oferecem suporte à RPKI até certo ponto, mas é necessário muitos mais 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 de BGP, alertando os clientes quando pessoas não autorizadas estiverem anunciando seus prefixos.