Um dia na vida da tabela BGP global
- Já foram feitas muitas análises sobre a tabela BGP, em geral com foco em tendências de longo prazo. No entanto, este texto busca observar um dia da tabela BGP sob uma perspectiva de curto prazo.
Começando o yak shaving
- Para coletar os dados, foi desenvolvida a ferramenta bgpsee, que usa um daemon BGP para gerar mensagens BGP em formato JSON.
- O conjunto de dados coletado entre 1º de junho e 1º de julho de 2024 é composto por 464.673 mensagens BGP UPDATE.
Transmissão inicial, contagem de rotas v4 e v6
- Ao iniciar um peering BGP, recebe-se uma grande quantidade de mensagens UPDATE como uma “primeira leva”.
- Nessa primeira leva, há um total de 949.483 rotas incluídas.
Mangueira de jardim ou mangueira de incêndio?
- As atualizações não são enviadas como um fluxo em tempo real, mas agrupadas e transmitidas em intervalos de 30 segundos.
- Em média, as rotas IPv4 têm cerca de 50 atualizações de rota a cada 30 segundos, enquanto o IPv6 tem cerca de 47.
- As atualizações de IPv4 mostram uma variabilidade periódica, com um ciclo observado de 40 minutos.
Loucura do prepending
- Administradores de rede podem ajustar o comprimento do caminho AS para controlar as rotas de tráfego.
- O comprimento máximo das rotas IPv4 é 105, e o das rotas IPv6 é 599, valores extremamente altos que podem ter sido causados por erro de administradores de rede.
Atributos de rota
- As atualizações BGP incluem atributos de rota e informações de alcançabilidade da camada de rede.
- Alguns AS estão anunciando rotas usando o atributo 255, reservado para desenvolvimento.
Rotas flapping: quem está tendo problemas?
- A rota com maior variação é 140.99.244.0/23, pertencente à empresa EpicUp.
- A variação das rotas pode ocorrer por diversos fatores, o que mostra a diversidade de peerings da rede global moderna e a resiliência do protocolo BGP.
Isso é só o começo
- A tabela BGP resume diversos elementos do mundo inteiro, incluindo instabilidade política, fenômenos naturais e erros de administradores de rede.
- Entender essa complexidade é algo fascinante e belo.
1 comentários
Comentários no Hacker News
Há 25 anos, trabalhei em um pequeno ISP e usei o tutorial do Avi Freedman para configurar multihoming. Graças a isso, consegui um /20 da ARIN e pude anunciar rotas para dois peers. Aprendi muito no processo e fiquei impressionado com a forma como isso funcionava
O flap do prefixo EpicUp 140.99.244.0/23 deveria ter sido alvo de route damping. Isso é um limite aplicado por ISPs a todos os peers para evitar que um único prefixo represente uma parte significativa da instabilidade global do BGP
Não tenho certeza sobre a correlação com os updates mencionada pelo autor. Em particular, basear anúncios na rota de prefixo de um sistema autônomo instável seria algo instável
Também tenho dúvidas sobre a periodicidade de 40 minutos. Quando eu estava profundamente envolvido com o mundo do BGP, há 8 anos, não havia esse tipo de periodicidade. Isso pode ser algo que apareceu por acaso no dataset ou pode ter a ver com a rede da qual o autor recebeu o feed de BGP
Ao cavar fundo nos dados e observar as mudanças em AS e prefixos, as alterações acontecem em vários lugares sem um padrão específico
Todos os dias há alguns ISPs barulhentos, por causa de circuitos ruins ou configurações incorretas. Às vezes, também acontece flap quando um novo prefixo entra online pela primeira vez
É ao mesmo tempo fascinante e um pouco assustador que um pequeno ISP do Kansas apareça em um roteador em Perth por causa do backbone de fibra. Ainda assim, a frequência de updates permanece globalmente abaixo de <10hz
Se você quiser aprender sobre BGP, a série de vídeos do Network Startup Resource Center da Universidade de Oregon é útil
O atributo BGP reservado 0xff provavelmente é uma peculiaridade da Huawei. Quase todos os 0xff vistos no bgp.tools seguem o mesmo formato, e algumas dessas redes usam equipamentos da Huawei
Escrevi um script em Python para extrair dados de rotas BGP de arquivos MRT, importar tudo para o Neo4j e explorar. Esses arquivos contêm cerca de 56 milhões de rotas muito redundantes, e o Neo4j é excelente para fazer o "merge" desse tipo de dado
Aprendi muitas coisas sobre BGP que eu não sabia com este artigo, e especialmente a bagunça dele foi o que achei mais interessante. Gostaria de ler mais detalhes em um artigo de acompanhamento
Tenho experiência projetando e configurando uma rede híbrida satélite-micro-ondas para um grande cliente americano com escritórios de campo na região de Bornéu. Lembro de fazer o handoff de linha dedicada em Jacarta. Li que seria necessário usar BGP para conectar uma rede OSPF/UBNT e uma WAN corporativa IGRP/Cisco
Seria ótimo se a iniciativa de Memory Safety também se aplicasse à implementação de servidores BGP por meio do trabalho de reimplementar a segurança e a confiabilidade da infraestrutura da internet em Rust
O as8772 NetAssist roteia tráfego ruim
Fico curioso sobre qual é a forma mais fácil para uma pessoa comum obter dados de BGP. Gostaria de tentar uma análise parecida se não for preciso ter um amigo em um ISP