Looking Glass

Servidor Looking Glass (frequentemente abreviado como Looking Glass ou LG) é um serviço computacional acessível publicamente via interface web que permite a engenheiros de rede, operadores de telecomunicações e pesquisadores inspecionar o estado de roteamento e conectividade da Internet a partir da perspectiva (viewpoint) remota de roteadores pertencentes a um determinado Sistema Autônomo (AS).

O termo é uma alusão direta à obra clássica Alice no País do Espelho (Through the Looking-Glass), de Lewis Carroll: ao acessar um Looking Glass, o administrador de rede "atravessa o espelho" para enxergar como a sua própria rede, seus prefixos IP e o caminho de retorno do tráfego são vistos a partir do ponto de vista do operador remoto externo.

A padronização internacional do vocabulário de consultas e das respostas estruturadas para esses servidores é definida pelo IETF por meio da RFC 8522 (Looking Glass Command Set), permitindo tanto a consulta interativa por usuários humanos quanto a integração automatizada via interfaces de programação (API) baseadas em REST e JSON.

Funcionalidades e comandos fundamentais

Tradicionalmente, os servidores Looking Glass disponibilizam duas categorias principais de operações: comandos de diagnóstico ativo de conectividade e comandos de inspeção passiva da tabela de roteamento.

Comandos de diagnóstico ativo

  • Ping: Dispara pacotes ICMP (Echo Request) a partir do roteador do Looking Glass em direção a um endereço IPv4 ou IPv6 de destino, medindo o tempo de ida e volta (round-trip time - RTT) e a eventual perda de pacotes (packet loss).
  • Traceroute: Identifica a sequência salto a salto (hop-by-hop) de roteadores intermediários atravessados pelos pacotes entre o Looking Glass e o destino, valendo-se da expiração sequencial do campo TTL (Time to Live) do cabeçalho IP. Em análises operacionais, engenheiros consideram que eventuais saltos com asteriscos de tempo esgotado frequentemente decorrem da limitação de taxa de geração de mensagens ICMP Time Exceeded pela CPU do plano de controle dos roteadores intermediários (ICMP rate-limiting), e não necessariamente de perda real de pacotes no plano de dados.

Comandos de inspeção BGP (passivo)

  • Consulta de prefixo (show ip bgp <prefixo>): Apresenta todas as rotas conhecidas pelo roteador para um determinado bloco de endereçamento IP. O comando expõe os atributos do protocolo Border Gateway Protocol (BGP-4), tais como a sequência de sistemas autônomos atravessada (AS_PATH), o endereço do próximo salto (NEXT_HOP), preferência local (LOCAL_PREF), discriminador de saída múltipla (MED) e comunidades BGP associadas.
  • Resumo de sessões BGP (show ip bgp summary): Exibe a lista de pares BGP conectados ao roteador, o tempo de atividade (uptime) das sessões e o número de prefixos aceitos ou descartados por filtros de política.
  • Expressões regulares e comunidades: Permite filtrar anúncios baseando-se em números de AS específicos na cadeia (show ip bgp regexp) ou em tags de sinalização operacional (show ip bgp community).

A norma RFC 8522

Antes da publicação da RFC 8522, a maioria dos Looking Glasses operava por meio da captura e renderização de saídas de texto não estruturado da linha de comando (CLI) dos equipamentos (screen-scraping). A RFC 8522 organizou formalmente as instruções em quatro grupos estruturados:

  1. Comandos de Diagnóstico: Métodos para execução padronizada de testes de alcance e rastreamento de saltos (ping e traceroute);
  2. Comandos Informativos: Consultas de estado da tabela de encaminhamento (FIB) e da tabela de rotas BGP (RIB);
  3. Comandos Organizacionais: Consulta de metadados do próprio servidor Looking Glass, como lista de roteadores disponíveis, versões de protocolo suportadas e restrições de uso;
  4. Comandos Extensíveis: Mecanismo de flexibilidade para inclusão de consultas proprietárias sem quebrar a interoperabilidade do cliente de API.

Importância operacional e casos de uso

O Looking Glass é uma ferramenta essencial de infraestrutura e engenharia de tráfego interdominial na Internet, sendo indispensável para as seguintes finalidades operacionais:

Resolução de assimetrias de tráfego

Na arquitetura descentralizada da Internet, o roteamento é intrinsicamente assimétrico: o caminho percorrido pelos pacotes que vão de uma rede A para uma rede B raramente é idêntico ao caminho de retorno de B para A, devido às decisões locais independentes de política de BGP e à prática de hot-potato routing (despejar o pacote no ponto de troca mais próximo). Quando um engenheiro na rede A percebe lentidão ou perda de pacotes, as ferramentas executadas em sua própria rede mostram apenas a viagem de ida; o acesso ao Looking Glass da rede B permite executar um `traceroute` no sentido inverso, identificando com precisão em qual operadora transitiva intermediária ocorre a degradação.

Validação de engenharia de tráfego e políticas comerciais

Quando um Sistema Autônomo altera suas políticas de BGP — por exemplo, aplicando AS-Path Prepending para desestimular a entrada de tráfego por uma operadora secundária ou inserindo tags de comunidades BGP para solicitar descarte via Blackhole contra ataques DDoS —, o Looking Glass da operadora contratada permite checar instantaneamente se as regras foram interpretadas corretamente e se a preferência de rota propagada na tabela global corresponde ao planejado.

Depuração de sequestro de BGP e vazamento de rotas

Em incidentes de segurança de roteamento, como vazamentos de rotas (route leaks, classificados formalmente na RFC 7908 e mitigados via BGP Roles na RFC 9234) e Sequestro de BGP (BGP hijacking), invasores ou operadoras mal configuradas anunciam prefixos pertencentes a terceiros. O uso de Looking Glasses distribuídos globalmente permite que os operadores afetados verifiquem em quais regiões geográficas o anúncio malicioso foi aceito como melhor caminho (Best Path), auxiliando na aplicação tempestiva de filtros de mitigação.

Auditoria de RPKI e descarte de inválidos

Com a adoção massiva da infraestrutura de chaves públicas Resource Public Key Infrastructure (RPKI), os Looking Glasses modernos exibem o estado de validação de origem de rota (ROV, conforme a RFC 6811 e RFC 7115): se um prefixo é classificado como Valid (Válido), Invalid (Inválido) ou NotFound (Não Encontrado). Isso viabiliza a auditoria externa para confirmar se provedores de trânsito e pontos de troca de tráfego estão efetivamente cumprindo a política de descarte mandatória (Drop Invalid).

Operação em Pontos de Troca de Tráfego (IXPs)

Nos Pontos de Troca de Tráfego modernos, a maior parte dos participantes conecta-se a Servidores de Rotas (Route Servers, conforme a RFC 7947) para realizar Acordos de Troca de Tráfego Multilaterais (ATM). O Looking Glass do IXP desempenha um papel central ao permitir que qualquer participante inspecione quais rotas estão sendo filtradas por regras de conformidade de registro de roteamento (IRR) ou RPKI, diagnosticando rapidamente por que determinados prefixos não estão sendo exportados aos demais pares.

Arquitetura e implementações de software

Historicamente, os primeiros Looking Glasses desenvolvidos na década de 1990 utilizavam scripts em Perl, PHP ou CGI que estabeleciam conexões diretas via Telnet ou SSH com a interface de linha de comando dos roteadores, extraíam a resposta em texto puro e a exibiam em uma página HTML.

Com a evolução das redes e o aumento do tráfego, esse modelo arcaico deu lugar a arquiteturas desacopladas e seguras baseadas em microsserviços:

Looking Glasses operam em roteadores de borda e servidores de rotas de Sistemas Autônomos, viabilizando a visibilidade externa da topologia inter-redes.

Alice-LG

O Alice-LG (frequentemente denominado apenas Alice) é uma das plataformas modernas de Looking Glass em código aberto mais utilizadas por Pontos de Troca de Tráfego e grandes operadoras no mundo. Criado durante o RIPE IXP Tools Hackathon que antecedeu o evento RIPE 73 em Madri (2016), o projeto foi desenvolvido especificamente para se integrar a servidores de rotas que executam o daemon de roteamento BIRD.

Sua arquitetura divide-se em duas camadas:

  1. API Birdwatcher: Um serviço leve instalado localmente junto ao daemon BIRD que consulta a tabela de rotas e exporta os dados estruturados via interface REST;
  2. Frontend Alice-LG: Uma aplicação web desenvolvida em linguagem Go e React que consome a API Birdwatcher e oferece uma interface responsiva, permitindo buscas instantâneas por endereço IP, nome de participante, número de ASN (ex: AS12345) ou comunidades BGP (ex: #comunidade).

O Alice-LG é a tecnologia padrão adotada por gigantes mundiais de interconexão como o DE-CIX e pelo ecossistema nacional brasileiro do IX.br. A API Birdwatcher oferece suporte tanto a instâncias tradicionais com separação de processos (BIRD 1.6.x para IPv4 e IPv6) quanto à arquitetura unificada multi-tabela nativa do BIRD 2.x e 3.x.

Outras implementações de destaque

  • Bird-LG: Implementação focada na integração com o BIRD, amplamente utilizada por pequenos e médios provedores de serviços de Internet (ISPs).
  • MRLG (Multi-Router Looking Glass): Software clássico desenvolvido para consulta simultânea a múltiplos roteadores de fabricantes corporativos (Cisco, Juniper Networks, Extreme Networks).
  • Projetos de Coletores Globais: Redes acadêmicas de pesquisa como o projeto Route Views da Universidade do Oregon (criado em 1995 por David Meyer) e o RIPE RIS (Routing Information Service) do RIPE NCC, que utilizam coletores de rotas dedicados conectados a centenas de sistemas autônomos simultaneamente para fornecer radiografias em tempo real do roteamento planetário.

Segurança e proteção operacional

A exposição pública de um serviço que se conecta diretamente a roteadores centrais de telecomunicações envolve riscos críticos de segurança e estabilidade de infraestrutura:

Proteção do plano de controle (Control Plane Protection)

O processador principal de um roteador de borda ou de trânsito é responsável por manter sessões BGP com dezenas de operadoras e recalcular rotas dinamicamente. Consultas pesadas à tabela de roteamento — em especial o processamento de expressões regulares complexas na cadeia AS_PATH ou o despejo integral de centenas de milhares de rotas — podem causar picos severos de uso de CPU (CPU spike). Caso a CPU atinja 100%, os temporizadores de manutenção de sessão BGP (Keepalive) podem expirar, resultando na queda (flapping) de conexões BGP de trânsito com outras operadoras e interrupção do tráfego real de dados de clientes.

Por essa razão, Looking Glasses de padrão corporativo implementam:

  • Limitação de taxa (Rate Limiting): Restrição do número máximo de consultas simultâneas por endereço IP de origem;
  • Uso de Coletores de Rotas dedicados: Em vez de consultar roteadores que comutam tráfego em produção, o Looking Glass conecta-se a servidores secundários (Route Collectors ou instâncias passivas) que apenas recebem anúncios BGP, blindando a rede produtiva;
  • Mecanismo de Cache: Armazenamento temporário de respostas idênticas em memória por intervalos de 30 a 60 segundos.

Prevenção contra injeção de comandos (Command Injection)

Como o Looking Glass recebe parâmetros fornecidos por usuários em formulários web, sistemas mal projetados foram historicamente alvo de ataques de injeção de comandos, nos quais invasores inseriam metacaracteres de terminal (como ;, | ou &&) para executar instruções não autorizadas no sistema operacional hospedeiro. Implementações modernas exigem sanitização estrita via expressões regulares que aceitam única e exclusivamente endereços IP válidos (notação CIDR) ou números inteiros de ASN.

Perfis de acesso restrito (AAA)

Em implementações que dialogam via SSH/Telnet com roteadores, o Looking Glass utiliza credenciais exclusivas autenticadas por RADIUS ou TACACS+ configuradas com perfil estrito de somente-leitura (read-only), desprovidas de permissões para ingressar no modo de configuração privilegiada ou acessar arquivos de senhas e chaves criptográficas.

Plataformas notórias

Diversas entidades de governança e operadoras mantêm serviços públicos de Looking Glass de relevância global:

Ver também

Referências

  1. 1 2 3 4 5 6 7 8 9 10 11 M. Stubbig (fevereiro de 2019). «RFC 8522: Looking Glass Command Set». IETF. Consultado em 30 de outubro de 2026
  2. 1 2 3 4 5 James F. Kurose; Keith W. Ross (2021). Redes de Computadores e a Internet: Uma Abordagem Top-Down 8ª ed. [S.l.]: Pearson. pp. 345–350. ISBN 978-6550110055
  3. 1 2 3 4 Andrew S. Tanenbaum; David J. Wetherall (2011). Redes de Computadores 5ª ed. [S.l.]: Pearson. pp. 320–325. ISBN 978-8576059240
  4. ↑ K. Sriram; D. Montgomery; D. McPherson; E. Osterweil; B. Dickson (junho de 2016). «RFC 7908: Problem Definition and Classification of BGP Route Leaks». IETF. Consultado em 30 de outubro de 2026
  5. ↑ P. Mohapatra; J. Scudder; D. Ward; R. Bush; R. Austein (janeiro de 2013). «RFC 6811: BGP Prefix Origin Validation». IETF. Consultado em 30 de outubro de 2026
  6. ↑ E. Jasinska; N. Hilliard; R. Raszuk; N. Bakker (setembro de 2016). «RFC 7947: Internet Exchange BGP Route Server». IETF. Consultado em 30 de outubro de 2026
  7. 1 2 3 4 «Alice-LG: BGP Looking Glass for Route Servers». Alice-LG Project. Consultado em 30 de outubro de 2026
  8. 1 2 «Looking Glass Oficial do IX.br». NIC.br / CGI.br. Consultado em 30 de outubro de 2026
  9. ↑ «University of Oregon Route Views Project». Route Views. Consultado em 30 de outubro de 2026
  10. ↑ «RIPEstat: Routing Information Service and Data API». RIPE NCC. Consultado em 30 de outubro de 2026
  11. ↑ «Hurricane Electric Looking Glass». Hurricane Electric. Consultado em 30 de outubro de 2026

Ligações externas