27 pontos por GN⁺ 2025-11-09 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Uma página interativa que visualiza em tempo real o caminho que os pacotes do usuário percorrem pela internet até chegar ao servidor de um site
  • O programa de traceroute próprio ktr usa o valor TTL de pacotes ICMP para coletar informações de cada salto de rede
  • O site funciona mesmo sem JavaScript, e o servidor reflete os resultados do traceroute no HTML em formato de streaming
  • Para analisar a rota, ele usa dados de WHOIS e PeeringDB para mostrar o sistema autônomo (AS) e informações da empresa à qual cada IP pertence
  • Ao combinar traceroute com a estrutura da internet baseada em BGP, ele mostra que a internet é um conjunto de redes formado por relações de peering entre empresas

A jornada percorrida pelo seu pacote

  • O traceroute no topo da página mostra o caminho do pacote do computador do usuário até o servidor
    • Ele passa em sequência por redes como roteadores, ISP, Amazon, NTT Global IP Network e Hetzner
    • Alguns trechos aparecem como “(no response)”, o que ocorre por causa de servidores que não respondem
  • Dentro da rede da Hetzner, ele passa por vários roteadores até chegar ao servidor final
  • O endereço IP 213.239.252.10 aparece como core0.fra.hetzner.com por meio de uma consulta reversa de DNS

Behind the Scenes

  • Quando o site recebe a solicitação do usuário, ele executa um traceroute no servidor e envia o resultado em tempo real
  • O traceroute usa o protocolo ICMP e coleta as respostas de cada salto aumentando o valor de TTL (Time To Live) em 1 a cada tentativa
  • Quando o TTL chega a 0, o roteador correspondente retorna uma mensagem de erro, permitindo rastrear o caminho percorrido pelo pacote
  • O ktr transmite o resultado do traceroute em streaming enquanto consulta ao mesmo tempo as informações de IP, ASN e rede proprietária de cada salto

Frontend Fun

  • Funciona mesmo sem JavaScript, e o navegador apenas o percebe como uma página carregando lentamente
  • O servidor mantém a conexão HTTP aberta e insere os resultados do traceroute no HTML de forma sequencial
  • A cada atualização, ele implementa o efeito de atualização em tempo real inserindo blocos de CSS para esconder os resultados anteriores

Front to Back, Back to Front

  • Na prática, o site executa um traceroute do servidor até o IP do usuário e exibe o resultado em ordem inversa
  • Isso é um “reverse traceroute”: embora os caminhos de ida e volta não sejam totalmente idênticos, ele mostra uma rota geralmente parecida

Redes e sistemas autônomos (AS)

  • A internet é uma rede de redes empresariais chamada sistemas autônomos (Autonomous System, AS)
  • Cada AS tem um ASN (Autonomous System Number) exclusivo e troca tráfego com outros por meio de peering
  • A internet é um conjunto de redes pertencentes a empresas, não a indivíduos, e as conexões são determinadas por contratos financeiros e procedimentos administrativos
  • É possível solicitar um ASN por meio de um dos 5 Registros Regionais da Internet (RIRs)

WHOIS e PeeringDB

  • Para encontrar o AS ao qual cada IP do traceroute pertence, ele usa o protocolo WHOIS e o banco de dados PeeringDB
  • O WHOIS tem uma estrutura simples: após abrir uma conexão TCP e enviar uma consulta, o servidor retorna as informações
  • Como cada servidor usa nomes de campos e formatos diferentes, o parser foi implementado como um simulador simples, mais próximo da forma como uma pessoa lê
  • O PeeringDB fornece informações empresariais sobre cerca de um terço de todos os AS

BGP (Border Gateway Protocol)

  • O BGP é o protocolo central que define a forma da internet, trocando informações de rotas entre AS
  • Os border routers mantêm uma tabela de roteamento BGP, armazenando a lista de ASNs de cada rota
  • Quando dois AS estabelecem peering, seus roteadores criam uma sessão BGP e trocam anúncios de rota (route advertisements)
  • Entre várias rotas possíveis, os roteadores escolhem a mais curta ou a de maior preferência para encaminhar os pacotes

A história do BGP

  • Os experimentos de rede iniciados na ARPANET em 1969 levaram, em 1989, ao RFC 1105 da Cisco e da IBM, marcando o surgimento do BGP v1
  • Depois vieram o BGP v2 (1990) e o v4 (1994), sendo o v4 usado até hoje
  • O BGP se consolidou como o protocolo padrão que determina os caminhos de interconexão entre todas as redes da internet

A relação entre traceroute e BGP

  • Exemplo de rota: AS16509 → AS2914 → AS24940
    • Amazon (AS16509) → NTT Global IP Network (AS2914) → Hetzner (AS24940)
  • Mesmo dentro do mesmo ASN, pode haver vários saltos, tratados por protocolos de roteamento internos ou rotas fixas
  • As relações de peering entre AS determinam a alcançabilidade real na internet

Recap

  • O site executa um traceroute até o IP do usuário e transmite o resultado por stream HTTP
  • O traceroute usa o TTL de pacotes ICMP para visualizar a rota entre roteadores
  • Cada roteador pertence a um sistema autônomo (AS) e se conecta aos demais por meio do BGP
  • As relações de peering determinam a alcançabilidade e a estrutura da internet

Epílogo

  • O autor sentiu que faltava compreensão sobre a estrutura da internet e criou um texto interativo educacional centrado em protocolos
  • Em vez de esperar por um grande projeto perfeitamente acabado, escolheu publicar algo menor, mas pronto
  • O trabalho foi concluído com o incentivo da comunidade Hack Club e aproveita um programa de traceroute open source
  • Com a mensagem de que “mesmo algo pequeno, se estiver concluído, é melhor”, ele espera que isso permaneça como um conteúdo web sustentável

Ainda não há comentários.

Ainda não há comentários.