Resumo

  • O registro de motivo da interrupção divulgado pela CenturyLink afirma que a operadora identificou um incidente em vários mercados às 10:04 UTC em 30 de agosto de 2020. Atribuiu a interrupção a um anúncio problemático do FlowSpec que impediu o BGP de ser estabelecido corretamente em vários elementos de rede. Uma mudança de configuração global por volta das 14:14 bloqueou o anúncio, e a operadora relatou serviço estável e alarmes limpos às 15:10. [1][3][6][8]
  • O relato detalhado da operadora diz que a operação inicial tinha como objetivo bloquear um endereço IP para um cliente. Uma falha entre a interface do usuário e o equipamento de rede fez com que curingas fossem recebidos em vez do endereço específico pretendido, e um filtro secundário não conseguiu rejeitar a regra ampla resultante. Esses detalhes vêm de uma reprodução hospedada por um cliente das notas da interrupção da CenturyLink e devem permanecer atribuídos, em vez de apresentados como um registro de configuração inspecionado de forma independente. [1][3]
  • A Cloudflare observou erros de acessibilidade de origem a partir das 10:03 UTC, desativou a CenturyLink em 48 cidades conectadas e desviou o tráfego para outros provedores. Também mediu um aumento acentuado no volume de atualizações BGP e propôs um loop plausível no qual os roteadores estabeleciam sessões repetidamente, recebiam a regra problemática e perdiam o BGP novamente. As medições são diretas; o loop é uma hipótese técnica porque os logs privados do roteador da operadora não são públicos. [2][11]
  • A ThousandEyes observou perda extensa de pacotes e comportamento de rota consistente com um plano de controle prejudicado. Seus exemplos mostraram que a conectividade de backup não era suficiente por si só: anúncios obsoletos, preferência de caminho, densidade de peering e capacidade alternativa afetaram se o tráfego realmente escapava do trânsito com falha. [3][4][5]
  • O FlowSpec não é meramente uma interface de firewall. Ele distribui regras e ações de correspondência de tráfego através do BGP. Isso torna a validação, autorização, escopo de distribuição, teste canário, reversão, proteção do plano de controle e recuperação fora de banda proporcionais ao alcance da rede que aceita a política. [13][14][15][16][17]
  • A responsabilidade é distribuída, mas não vaga. A CenturyLink controlava a plataforma de políticas, interface, validação secundária, distribuição de rede, proteções de controle de rota, reversão e evidências do incidente. Clientes e peers controlavam partes de seu próprio multihoming, política de caminho, retirada e capacidade alternativa, mas não podiam reparar a falha interna da operadora.
  • O teste de reparo durável é baseado em evidências. Desabilitar a plataforma e modificar um filtro foram ações corretivas anunciadas. Uma garantia forte mostraria adicionalmente a falha exata reproduzida em laboratório, controles independentes a rejeitando, implantação limitada, acesso de gerenciamento protegido, recuperação sob comprometimento do plano de controle e testes posteriores contra a mesma classe de falha. [1][13][17][20]

Um bloqueio de cliente tornou-se um problema de controle em todo o backbone

A maneira mais útil de entender o incidente é começar pela diferença entre o escopo pretendido e a autoridade efetiva.

De acordo com o registro de motivo da interrupção divulgado pela CenturyLink, uma equipe de operações estava usando o FlowSpec como parte de um serviço normal para bloquear o tráfego de um endereço IP em nome de um cliente. Essa é uma tarefa familiar de mitigação de DDoS. O objeto pretendido era estreito: uma fonte, uma necessidade do cliente e uma ação de tráfego limitada. O objeto efetivo era muito maior. O anúncio resultante se propagou por muitos dispositivos de borda e interferiu nas sessões BGP das quais a rede dependia. [1]

Essa incompatibilidade é o núcleo da responsabilidade. Uma interface de usuário pode exibir um único endereço enquanto o compilador de políticas ou o roteador downstream recebe um curinga. Um filtro secundário pode parecer independente enquanto interpreta o objeto malformado através da mesma suposição falha. Um sistema de distribuição pode tratar a regra resultante como comum porque cada componente vê sintaxe válida, mesmo que o significado combinado seja catastrófico. A questão pública não é simplesmente quem digitou o quê.

É como um sistema com alcance global representou, validou e restringiu a autoridade por trás de uma solicitação aparentemente local.

O FlowSpec levanta essa questão de forma aguda porque une a política de tráfego ao plano de controle de roteamento. Uma lista de acesso tradicional está frequentemente associada a um dispositivo ou interface. O FlowSpec pode transportar componentes de correspondência e ações através do BGP, para que uma rede possa aplicar mitigação rapidamente em muitos roteadores. Essa velocidade é útil durante um ataque volumétrico. Também torna o erro semântico um problema de distribuição. O mesmo mecanismo que reduz o tempo de resposta pode reduzir o tempo disponível para detectar uma regra insegura antes que ela atinja uma grande parte da rede.

[13][14][15]

O protocolo não deve ser tratado como o culpado. A RFC 5575 definiu o mecanismo da época do incidente, e a RFC 8955 posteriormente a substituiu para IPv4, enquanto a RFC 8956 cobre IPv6. Esses documentos descrevem codificação, ordenação, validação e ações de tráfego. Eles não revelam o caminho privado do software da CenturyLink nem provam que toda implementação se comporta da mesma forma. Um artigo sólido deve distinguir a capacidade do protocolo da governança do operador.

O incidente dizia respeito a como uma operadora implementou e operou um caminho de política de alta autoridade, não a uma constatação de que toda implantação do FlowSpec é insegura. [13][14][15]

A mesma distinção impede uma manchete fácil, mas fraca: "um erro de digitação derrubou a Internet." O registro público não divulga os bytes exatos do comando, e o relato detalhado da operadora descreve uma falha entre a interface e o equipamento de rede, em vez de um curinga visível simples digitado por uma pessoa nomeada. O incidente não tornou todas as redes inalcançáveis. Diferentes observadores mediram diferentes efeitos, e algumas redes contornaram o problema.

A conclusão defensável é mais restrita e mais importante: uma solicitação de mitigação com escopo de cliente adquiriu autoridade suficiente para prejudicar o estabelecimento de BGP em um backbone global altamente conectado.

Isso é uma falha de governança expressa através da infraestrutura de rede. Os controles relevantes incluem validação de esquema, autorização, exibição de escopo, compilação de políticas, verificações secundárias, limites de distribuição, proteção de route-reflector, isenções do plano de controle, canários, reversão e acesso fora de banda. Nenhum pode ser avaliado apenas contando roteadores ou afirmando que a redundância existia.

A cronologia separa detecção, diagnóstico e restauração

A cronologia da operadora coloca a identificação do incidente às 10:04 UTC. O monitoramento da Cloudflare começou a registrar erros elevados de acessibilidade de origem às 10:03. A diferença de um minuto não é um conflito; um timestamp é um gatilho de medição externo e o outro é o registro do incidente da operadora. Ambos colocam o início dentro da mesma janela estreita. [1][2]

A Cloudflare viu o tráfego através da CenturyLink cair drasticamente. Seus sistemas automatizados começaram a mover o tráfego para outros provedores, incluindo Cogent, NTT, GTT, Telia e Tata. Entre 10:03 e 10:11 UTC, ela desativou a CenturyLink em 48 cidades onde as redes estavam conectadas. A mudança não foi instantânea em todos os lugares porque a capacidade alternativa teve que ser considerada. Mover muito tráfego muito rapidamente pode sobrecarregar um provedor de backup e transformar a falha de uma operadora em um problema em cascata. [2]

O RFO divulgado diz que o centro de operações de rede IP da CenturyLink mobilizou recursos técnicos e de garantia de serviço adicionais enquanto os alarmes se acumulavam. As ações iniciais não isolaram a causa. Por volta das 14:00 UTC, a engenharia de operações identificou um anúncio FlowSpec que se tornou problemático e estava impedindo o BGP de se estabelecer corretamente. Às 14:14, o NOC implantou uma mudança de configuração global para bloquear o anúncio. À medida que essa mudança se propagava, as sessões BGP se recuperaram e os alarmes foram limpos. A operadora relatou estabilidade às 15:10. [1]

O SANS Internet Storm Center capturou a linguagem contemporânea da CenturyLink dizendo que um problema de roteamento impediu o estabelecimento de sessões BGP e que um ajuste de configuração de alto nível permitiu que as sessões se recuperassem. Também alertou que alguns clientes podem precisar redefinir equipamentos locais ou sessões BGP após o reparo do lado da operadora. O arquivo da lista de discussão Outages preserva relatos de operadores que podiam ver a adjacência BGP ou anúncios de rota enquanto o tráfego utilizável permanecia prejudicado.

Essas observações são importantes porque o status do plano de controle pode parecer parcialmente vivo enquanto a acessibilidade de ponta a ponta não está. [6][8]

A ThousandEyes descreveu o incidente como tendo durado cerca de cinco horas. Pesquisas posteriores usando análise de topologia e serviço colocam o evento por volta das 10:04 às 15:30 UTC, dependendo da medição e do limite de recuperação. A abordagem correta não é forçar cada fonte a uma duração exata. Usuários externos, peers, coletores do plano de controle e os próprios alarmes da operadora mediram diferentes camadas. Uma rede pode estar estável internamente antes que cada caminho do cliente reconvirja, e alguns endpoints podem se recuperar antes que a operadora declare o incidente encerrado. [3][9][10]

Essa cronologia expõe três lacunas de garantia.

A primeira é o tempo de detecção ao diagnóstico. A rede gerou alarmes suficientes para exigir recursos adicionais, mas a causa não foi identificada até cerca de quatro horas após os primeiros erros externos. A questão relevante é se os operadores tinham uma representação segura e pesquisável de todas as regras FlowSpec ativas, sua origem, correspondência efetiva, escopo de distribuição e tráfego de controle dependente.

A segunda é o diagnóstico sob comprometimento do plano de controle. Se a regra interrompeu as sessões BGP ou a acessibilidade do gerenciamento, as ferramentas normais podem ter se tornado não confiáveis exatamente quando os respondedores precisavam delas. Uma arquitetura que pode distribuir uma política globalmente precisa de um caminho de remoção que não depende do caminho comprometido.

A terceira é a evidência de restauração. Bloquear o anúncio problemático permitiu que o BGP se estabelecesse, mas a recuperação do serviço também dependia da reconvergência de rotas, do comportamento dos peers e do equipamento do cliente. Uma operadora deve distinguir "a regra ruim está bloqueada", "as sessões BGP estão estáveis", "as rotas convergiram", "o tráfego está fluindo" e "os serviços do cliente estão normais." Cada estado requer uma medição diferente.

O que o FlowSpec mudou sobre o raio de alcance

O BGP é o protocolo que os sistemas autônomos usam para trocar informações de acessibilidade. Um speaker BGP aprende rotas, aplica políticas e anuncia caminhos selecionados aos peers. O FlowSpec estende esse modelo de distribuição para filtros de tráfego. Uma rota FlowSpec pode descrever o tráfego usando campos como prefixo de origem ou destino, protocolo, portas, comprimento do pacote ou flags TCP, e pode associar ações como descartar ou limitar a taxa de pacotes correspondentes. [13][14][15][16]

A vantagem operacional é óbvia. Durante um evento de DDoS, um provedor pode distribuir uma mitigação rapidamente sem editar um filtro convencional em cada roteador de borda. O risco operacional é igualmente estrutural. Uma regra muito ampla pode ser aplicada por muitos dispositivos antes que uma pessoa possa fazer login em cada um. Se ela corresponder ao tráfego necessário para o BGP ou gerenciamento de rede, a política pode danificar os meios pelos quais foi distribuída ou removida.

A análise pública da Cloudflare ofereceu uma explicação plausível para o volume sustentado de atualizações BGP. Um roteador poderia estabelecer BGP, receber uma lista de políticas, chegar à regra FlowSpec problemática e então perder a conectividade BGP. Uma vez que a sessão desaparecia, a regra dinâmica poderia não persistir; o roteador poderia reconectar e repetir o ciclo. Cada ciclo poderia gerar mais anúncios e aumentar a carga. A Cloudflare explicitamente enquadrou isso como um cenário possível enquanto aguardava evidências mais completas da CenturyLink. Deve permanecer uma hipótese, não um trace de pacotes confirmado pela operadora. [2]

A ThousandEyes descreveu uma condição de loop semelhante em sua análise após receber informações expandidas da operadora. Ela relatou perda total de pacotes na infraestrutura da CenturyLink geograficamente distribuída e um aumento nos anúncios consistente com interrupção repetida do BGP. Como a ThousandEyes combinou medição direta com material e interpretação da operadora, o artigo deve manter as camadas de evidência visíveis: perda de pacotes e comportamento de rota foram observados; a sequência interna exata depende de registros que a CenturyLink não publicou na íntegra. [3]

A RFC 4271 explica por que a estabilidade da sessão é importante. O BGP depende de relacionamentos persistentes entre peers e do processamento de UPDATE para manter o estado de roteamento. A RFC 7606 melhorou posteriormente o tratamento de erros para mensagens UPDATE malformadas, e a RFC 4724 define mecanismos de graceful-restart destinados a preservar o encaminhamento durante algumas reinicializações do plano de controle. Esses documentos fornecem contexto útil, mas nenhum é um escudo genérico contra uma política de tráfego que bloqueia a própria sessão.

Uma rede deve decidir qual tráfego está isento, quais políticas podem alcançar a infraestrutura de controle e como uma regra com falha é removida. [16][18][19]

O incidente, portanto, transforma "raio de alcance" de metáfora em propriedade de engenharia. O raio de alcance de uma política é o conjunto de dispositivos, classes de tráfego, peers e caminhos de gerenciamento que ela pode afetar antes da detecção e reversão. Os operadores podem reduzir esse raio por meio de grupos de dispositivos, autorização de prefixo, exclusões de protocolo, limites específicos do cliente, implantação em etapas, limites de tempo e controles de taxa. Eles também podem preservar um plano de gerenciamento independente que não pode ser filtrado pela mesma política do cliente.

Um backbone global deve tornar essa propriedade explícita. Uma solicitação de mudança deve mostrar não apenas o endereço pretendido, mas a correspondência normalizada após a compilação, o número e a classe de dispositivos que a aceitarão, os protocolos que ela pode tocar, os clientes e peers no escopo, o vencimento automático e a rota de reversão. Quanto maior o escopo efetivo, mais fortes devem ser a aprovação e a evidência de teste exigidas.

Duas verificações com falha ainda podem ser uma suposição com falha

O RFO divulgado diz que a interface do usuário foi projetada para rejeitar entradas curinga, entradas em branco e entrada não endereço. Também diz que um filtro secundário foi projetado para impedir que vários endereços fossem bloqueados dessa forma. No entanto, o comando curinga passou por ambos. O filtro secundário procurava prefixos de destino, e a representação curinga fez com que ele interpretasse o comando como um único endereço em vez de muitos. [1]

Este é um exemplo de independência nominal sem independência semântica. Dois controles podem ser implementados em componentes diferentes e ainda depender da mesma suposição sobre como um objeto é representado. A primeira verificação pode validar a entrada do usuário antes da tradução. A segunda pode validar a forma traduzida, mas usar um analisador que compartilha o mesmo ponto cego. Se ambos tratarem um curinga como um único objeto válido, contar duas verificações superestima a proteção.

Um design mais forte compararia representações independentes.

Um controle poderia validar o endereço bruto solicitado em relação aos prefixos autorizados do cliente. Outro poderia compilar a regra e calcular o conjunto de pacotes que ela corresponde. Um terceiro poderia rejeitar qualquer resultado que inclua a porta TCP BGP 179, endereços de route-reflector, prefixos de gerenciamento ou infraestrutura fora da alocação do cliente. Um quarto poderia comparar a correspondência efetiva com a solicitação legível original e exigir aprovação se o escopo se expandir. Um quinto poderia instalar a regra em um dispositivo canário e observar a saúde do plano de controle antes da distribuição mais ampla.

O termo "filtro secundário" deve, portanto, convidar a uma pergunta: secundário na localização, ou independente na lógica? Uma defesa eficaz não é meramente outra declaração condicional. Ela deve falhar de forma diferente, usar uma fonte de verdade diferente ou validar uma propriedade diferente. Autorização de prefixo, cardinalidade do conjunto, exclusão de protocolo e escopo efetivo simulado são propriedades separadas. Combiná-las torna menos provável que um erro de analisador compartilhado derrote todas as salvaguardas.

O comportamento fail-closed também é importante. Se uma regra não pode ser normalizada de forma inequívoca, a resposta segura é a rejeição, não a interpretação ampla. Se o escopo pretendido e o escopo efetivo diferirem, a distribuição deve parar. Se a política for tocar no tráfego do plano de controle, um processo de exceção de alta autoridade deve ser exigido. Se o serviço de validação estiver indisponível, o sistema não deve assumir que a urgência permite a bypass.

A urgência é uma condição previsível na mitigação de DDoS. Isso a torna parte do design, não uma razão para suspender o design. Os operadores precisam de um caminho que seja rápido porque é pré-validado e limitado, não rápido porque ignora a revisão independente. As solicitações dos clientes podem ser mapeadas para prefixos pré-autorizados e modelos de ação. As regras podem expirar automaticamente. As substituições de emergência podem ser registradas e limitadas a um pequeno conjunto canário antes do lançamento mais amplo.

O registro público diz que a CenturyLink desabilitou toda a plataforma FlowSpec enquanto testava e modificou o filtro para proibir curingas. Essas ações abordam o gatilho relatado. Elas não mostram por si mesmas se os dois controles se tornaram semanticamente independentes, se o escopo é calculado após a compilação ou se o tráfego do plano de controle está protegido. Essas são as questões de evidência que distinguem uma ação corretiva da não recorrência demonstrada. [1][20]

Uma operadora altamente conectada cria dependência sistêmica

A CenturyLink havia adquirido a Level 3, e a AS3356 permaneceu como uma das redes de trânsito mais conectadas no sistema de roteamento da Internet. As relações comerciais e técnicas exatas variavam, mas o resultado prático era que muitas redes alcançavam destinos através de caminhos que continham AS3356, mesmo quando nenhum endpoint se considerava um cliente de varejo da CenturyLink. RIPEstat e arquivos públicos de roteamento fornecem contexto para esse papel de rede. [11][12]

Isso é importante porque a responsabilidade por um backbone não é limitada por faturas diretas. Um cliente de outro provedor ainda pode depender de uma relação de trânsito a vários saltos de distância. Um serviço em nuvem pode mudar seu próprio caminho de saída, mas permanecer incapaz de alcançar uma origem que está mono-homed atrás da operadora com falha. Um peer pode despreferenciar a CenturyLink enquanto redes remotas continuam a selecionar caminhos obsoletos ou mais atrativos através dela. O dever efetivo da operadora segue as dependências que sua rede cria, não apenas o conjunto de usuários que podem abrir um ticket de suporte.

A mitigação da Cloudflare ilustra tanto o poder quanto os limites da diversidade. Ela tinha conexões com várias redes grandes e conseguiu desativar a CenturyLink rapidamente em 48 cidades. Essa ação reduziu substancialmente o pico de erros. No entanto, alguns clientes da Cloudflare permaneceram inalcançáveis porque seus servidores de origem não tinham um caminho utilizável que evitasse a CenturyLink ou porque a operadora continuava a anunciar rotas que atraíam tráfego para um caminho quebrado. [2]

A ThousandEyes comparou clientes cujos resultados diferiram. O OpenTable sofreu alta perda de pacotes durante grande parte do incidente. O GoToMeeting ativou a GTT como provedor de backup e melhorou a acessibilidade, mesmo enquanto a Level 3 continuava a anunciar seus prefixos. As rotas não eram necessariamente mais específicas; a preferência dependia da visão das redes remotas e da densidade de peering alternativa. O exemplo não é uma regra universal de que dois provedores garantem continuidade. Ele mostra que links físicos, política BGP, estado de anúncio e capacidade devem estar todos alinhados. [3]

A frase "multihomed" pode, portanto, ocultar vários modos comuns.

Dois circuitos podem entrar no mesmo prédio pelo mesmo conduíte. Dois provedores podem comprar trânsito upstream do mesmo backbone. Dois caminhos anunciados podem ser visíveis enquanto um caminho obsoleto permanece preferido. Um provedor de backup pode não ter capacidade para uma mudança global repentina. Ambos os links podem depender do mesmo DNS, servidor de rotas, portal de gerenciamento ou roteador de borda do cliente. A organização também pode não ter uma pessoa autorizada capaz de mudar a política durante um incidente.

A evidência de garantia certa é de ponta a ponta. Um cliente deve conhecer o caminho do sistema autônomo em condições normais e de falha, a rota física quando relevante, o comportamento de local-preference e MED, os prefixos que cada provedor anuncia, os controles de retirada ou comunidade disponíveis, a capacidade testada e o gatilho para failover. O monitoramento deve vir de fora de ambos os provedores para que possa detectar uma rota que está visível mas não carrega pacotes.

Clientes e peers têm responsabilidade por esses controles, mas sua responsabilidade não apaga a da operadora. Um cliente pode projetar melhor diversidade; não pode impedir que a plataforma FlowSpec interna da CenturyLink prejudique o BGP em muitos elementos. A dependência compartilhada cria responsabilidade em camadas, não responsabilidade igual.

A proteção do plano de controle deve sobreviver à política que distribui

Qualquer sistema de automação em toda a rede precisa de um caminho protegido para observação e reversão. Neste incidente, o mecanismo de distribuição de políticas e o comportamento da sessão BGP se entrelaçaram. Isso deve levar os operadores a perguntar se a rede pode permanecer governável quando uma política está errada.

A primeira proteção é o escopo. As regras FlowSpec acionadas pelo cliente devem ser autorizadas apenas para os prefixos do cliente, classes de tráfego esperadas e ações aprovadas. Elas não devem corresponder a endereços de infraestrutura ou protocolos de controle, a menos que um fluxo de trabalho separado e explícito o permita. A validação deve usar a regra compilada, não apenas a entrada solicitada.

A segunda proteção é o teste em etapas. Uma regra pode ser enviada primeiro para uma representação de laboratório, depois para um canário de borda, depois para uma região limitada, depois para um grupo de dispositivos mais amplo. O sistema deve monitorar a contagem de sessões BGP, a carga do route-reflector, a acessibilidade do gerenciamento, a perda de pacotes e os resultados do cliente em cada etapa. Uma mitigação projetada para segundos não pode esperar horas em cada estágio, mas pode usar limites automatizados e reversão imediata.

A terceira proteção é um caminho de controle fora de banda. Os operadores precisam de acesso de gerenciamento que não dependa do mesmo trânsito, sessões de roteamento ou domínio de filtragem que o tráfego comum do cliente. Os arquivos de configuração e as ferramentas de reversão devem permanecer acessíveis. Um bloqueio global de emergência deve ser possível através de um canal cujos próprios pacotes não podem ser capturados pela regra insegura.

A quarta proteção é a vida útil limitada. Uma mitigação pode expirar a menos que seja renovada após revisão de evidências. O vencimento automático limita a persistência de regras abandonadas ou mal compreendidas. Não substitui a reversão, porque uma regra catastrófica de cinco minutos ainda é inaceitável, mas reduz a exposição de longo prazo e força a propriedade a permanecer explícita.

A quinta proteção é a visibilidade do estado. Os respondedores devem ser capazes de listar todas as regras FlowSpec ativas, sua origem, solicitante, autorização, correspondência normalizada, ação, conjunto de distribuição, estado de instalação, idade e status de reversão. Eles também devem ver quais dispositivos a rejeitaram e por quê. Sem esse inventário, o diagnóstico se torna uma busca em uma rede que já está produzindo um número extraordinário de alarmes e atualizações.

A sexta proteção é a política de infraestrutura protegida. Os route-reflectors, speakers BGP, DNS, sincronização de tempo, autenticação, registros e sistemas de gerenciamento não são destinos comuns do cliente. A rede deve definir se uma regra do cliente pode jamais afetá-los e, em caso afirmativo, por meio de quais controles excepcionais. A proteção deve cobrir tanto o encaminhamento de pacotes quanto os sistemas usados para computar e distribuir políticas.

A RFC 7454 fornece orientação de segurança operacional para BGP, enquanto as RFCs 7606 e 4724 abordam aspectos de tratamento de erros e reinicialização. A apresentação do operador NANOG no conjunto de fontes discute modos de falha do FlowSpec e lições de implementação. Essas fontes ajudam a definir questões e controles. Elas não podem certificar a arquitetura atual da CenturyLink. A certificação exigiria evidências atuais e específicas do operador. [17][18][19][20]

O controle de mudanças deve medir a autoridade efetiva da rede

Os formulários tradicionais de mudança frequentemente classificam o trabalho por contagem de dispositivos, janela de manutenção ou proprietário do serviço. O FlowSpec sugere outra dimensão: a autoridade efetiva. Uma solicitação que pode corresponder a qualquer pacote em centenas de roteadores de borda tem mais autoridade do que uma alteração textual maior confinada a um sistema de teste.

Um registro de mudança baseado em autoridade conteria pelo menos cinco visões.

Avisão de intençãodeclara a solicitação do cliente e o propósito de negócios em linguagem comum. Neste caso, a intenção declarada era bloquear o tráfego de um endereço para um cliente. [1]

Avisão compiladamostra os componentes e ações exatos do FlowSpec normalizados que os dispositivos receberão. É aqui que a expansão de curingas, campos ausentes e diferenças de analisador se tornam visíveis.

Avisão de alcanceidentifica os dispositivos, regiões, peers, prefixos e classes de tráfego que podem ser afetados. Deve calcular o pior cenário de escopo em vez de assumir que a regra funciona como pretendido.

Avisão de segurançalista o tráfego de controle protegido, limites de autorização, etapas canárias, condições de reversão, vencimento e validadores independentes.

Avisão de evidênciaregistra quem aprovou o escopo efetivo, quais testes foram executados, qual dispositivo primeiro aceitou a política, qual telemetria mudou e quando a regra foi removida.

Essa abordagem muda a revisão de "A sintaxe é válida?" para "Que autoridade a rede exercerá se cada componente se comportar exatamente como codificado?" Também torna a automação auditável. Uma máquina pode aprovar uma regra de rotina se o escopo efetivo permanecer dentro de um envelope pré-autorizado. Um humano pode ser exigido quando o escopo compilado o excede. Nenhum caminho deve aceitar ambiguidade.

A revisão por pares deve focar na diferença. Um revisor precisa ver como a regra efetiva proposta difere de um modelo conhecido como seguro, não analisar uma configuração inteira sob pressão de tempo. O sistema pode destacar conjuntos de prefixos expandidos, protocolos adicionados, grupos de distribuição mais amplos e vencimento ausente. O revisor deve ter autoridade de parada que não seja enfraquecida pela urgência de um incidente ou pela importância de um cliente.

A reversão deve ser testada contra a perda do plano de controle comum. Não basta armazenar a regra anterior se a rede não puder receber o comando de remoção. Um design seguro pode pré-posicionar um interruptor de desligamento, manter um canal de gerenciamento separado ou limitar a regra inicial a um domínio que os respondedores possam isolar física ou logicamente.

O incidente também mostra por que as janelas de manutenção são uma proteção incompleta. A interrupção começou em uma manhã de domingo na América do Norte, um período que poderia parecer de menor risco. Um backbone Tier 1 tem clientes em todos os fusos horários e carrega serviços que não têm uma hora tranquila. Mais importante, uma falha no plano de controle pode prejudicar as próprias equipes e portais necessários para a resposta. O raio de alcance e a reversibilidade importam mais do que o relógio.

A observabilidade deve unir o estado BGP à acessibilidade do serviço

Durante um incidente de roteamento, os operadores podem se afogar em sinais tecnicamente precisos, mas operacionalmente incompletos. Uma sessão BGP pode ser estabelecida enquanto os pacotes são descartados. Um prefixo pode permanecer anunciado enquanto o caminho é inutilizável. Um roteador pode ser acessível através do gerenciamento enquanto o tráfego do cliente falha. Um coletor global de rotas pode mostrar atualizações sem revelar todos os resultados de encaminhamento.

A Cloudflare combinou erros de origem, tráfego por provedor e dados de atualização BGP. A ThousandEyes combinou visualização de caminho, perda de pacotes e comportamento de anúncio. A NetForecast usou uma rede de referência para medir a experiência do usuário. A lista Outages adicionou relatos de operadores que viam sintomas em suas próprias bordas. Cada fonte observou um plano diferente. Juntas, elas produzem uma imagem de incidente mais forte do que qualquer painel individual. [2][3][7][8][11]

Um operador de backbone deve integrar pelo menos quatro camadas de evidência.

Acamada de configuraçãoregistra a política pretendida e efetiva, estado de distribuição e aceitação do dispositivo.

Acamada do plano de controleregistra sessões BGP, saúde do route-reflector, volume de UPDATE, churn de rotas e convergência.

Acamada de encaminhamentoregistra perda de pacotes, latência, próximos saltos e se o tráfego atinge o peer ou borda do cliente pretendido.

Acamada de serviçoregistra se os clientes podem concluir transações reais, acessar o suporte e usar aplicativos críticos.

A correlação de alarmes deve conectar essas camadas por tempo e dependência. Se uma nova política FlowSpec for seguida por perda de sessão BGP e picos de perda de pacotes no mesmo conjunto de dispositivos, o sistema deve apresentar esse candidato causal imediatamente. Se o portal do cliente se tornar inacessível através do mesmo backbone, o comando do incidente deve mudar para um canal de suporte independente em vez de esperar pelas ferramentas comuns.

A medição externa é especialmente importante para uma rede que pode continuar anunciando caminhos obsoletos ou inutilizáveis. A telemetria interna pode dizer que um circuito está ativo ou que uma rota está presente. As sondas externas revelam se as redes remotas selecionam o caminho e se os pacotes retornam. Uma operadora pode operar seus próprios pontos de observação externos e também preservar evidências de terceiros.

O objetivo não é coletar todas as métricas possíveis. É responder a perguntas limitadas rapidamente: O que mudou? Quais dispositivos a receberam? Quais sessões falharam? Quais prefixos permaneceram anunciados? Onde os pacotes estão sendo descartados? Quais caminhos alternativos têm capacidade? Os respondedores ainda podem alcançar a superfície de controle? Que evidências mostram que a correção alcançou todos os domínios afetados?

Suporte e comunicação fazem parte da capacidade de recuperação

O RFO divulgado diz que muitos clientes afetados não conseguiram abrir tickets de suporte porque o volume de chamadas era extremo e o portal do cliente da CenturyLink também foi afetado. Esse detalhe é operacionalmente significativo. Um provedor pode ter engenheiros reparando o núcleo enquanto os clientes não têm um caminho utilizável para relatar sintomas, receber instruções ou distinguir uma falha da operadora de sua própria falha local. [1]

Portanto, a capacidade de suporte é um controle de resiliência de rede. O portal não deve compartilhar todas as mesmas dependências de roteamento que o serviço que suporta. As páginas de status e os canais de notificação devem ser acessíveis através de infraestrutura independente. Grandes clientes e peers precisam de contatos pré-estabelecidos e atualizações legíveis por máquina que não dependam de uma fila geral sobrecarregada.

A comunicação também molda a recuperação técnica. Um cliente pode precisar redefinir uma sessão BGP, retirar uma rota, alterar a preferência local ou ativar capacidade alternativa. Essas ações trazem riscos. Os conselhos devem identificar quem deve agir, qual evidência deve desencadear a ação, quais efeitos colaterais são esperados e como revertê-la. Instruções amplas como "reiniciar equipamento" podem destruir estado útil ou criar mais churn se emitidas sem escopo.

As declarações públicas da CenturyLink durante o evento identificaram uma interrupção de IP e, posteriormente, um problema de roteamento. Analistas externos forneceram mais detalhes à medida que as medições se acumulavam. O registro pós-incidente forneceu uma causa mais profunda e ações corretivas. Essa progressão é normal, mas cada atualização deve rotular confiança e fonte. A comunicação do incidente pode dizer que um anúncio FlowSpec é a principal causa sem afirmar que toda a cadeia de falhas é conhecida.

Os clientes também precisam de uma declaração de encerramento que separe a estabilidade da operadora da normalização completa do caminho. A operadora pode relatar quando a regra ruim foi bloqueada e as sessões estão estáveis. Também deve relatar se a reconvergência de rotas continua, se alguns peers precisam de ação local, se o portal foi restaurado e quando a análise formal do motivo da interrupção estará disponível.

A alegação de reparo precisa de um teste reproduzível

O RFO divulgado diz que a CenturyLink desabilitou toda a plataforma FlowSpec enquanto realizava testes extensivos e usaria outras ferramentas de mitigação nesse meio tempo. Diz que o filtro secundário estava sendo alterado para proibir entradas curinga e que a plataforma modificada retornaria durante manutenção programada que não afetasse o serviço, após os testes. [1]

Essas etapas são racionais. Desabilitar o caminho remove a exposição imediata. Reproduzir o problema em laboratório estabelece que a equipe pode desencadear e observar a falha. Modificar o filtro aborda a bypass relatada. A questão restante de responsabilidade é se o sistema reparado foi testado como um controle integrado, não apenas se um analisador rejeitou um curinga.

Um cenário de verificação robusto começaria com uma solicitação com escopo de cliente e deliberadamente exercitaria múltiplas representações malformadas: curingas explícitos, campos em branco, prefixos amplos, codificações alternativas, valores de limite do analisador e regras que correspondem ao tráfego de controle. A interface deve rejeitar entrada insegura. O validador de política compilada deve calcular independentemente o escopo efetivo. A autorização de prefixo deve rejeitar recursos fora da alocação do cliente. As verificações de protocolo protegido devem bloquear correspondências de BGP e gerenciamento.

Um canário deve receber apenas uma regra que passou por todos os portões.

O teste deve então introduzir falhas. Um validador deve ficar indisponível. Um canário deve perder uma sessão BGP. Um route-reflector deve mostrar churn incomum. O caminho de gerenciamento usado para reversão deve permanecer acessível. A automação deve interromper a propagação e remover a regra sem depender do plano de cliente comprometido. Os operadores devem ser capazes de identificar a solicitação, o objeto compilado, os dispositivos instalados e o estado de reversão a partir de um único registro de evidência.

O estágio final deve testar a escala. Uma regra deve ser distribuída para um conjunto controlado, mas representativo, de dispositivos, enquanto sondas independentes monitoram os resultados do plano de controle e encaminhamento. A equipe deve provar que a reversão atinge todos os dispositivos e que a política obsoleta não pode permanecer oculta. O teste deve registrar tempo, limites, falhas e resultados de novo teste.

A verificação independente não exige a publicação de configuração explorável. Um avaliador pode confirmar que o teste cobriu o caminho curinga relatado, cálculo de escopo independente, tráfego protegido, canário, reversão sob BGP comprometido e acesso fora de banda. A declaração pública pode divulgar os cenários, critérios de aprovação, data e risco residual, mantendo endereços e topologia confidenciais.

A distinção entre conclusão e eficácia é essencial. "Filtro modificado" é uma declaração de conclusão. "Os controles modificados rejeitaram cada representação da falha e limitaram o raio de alcance sob testes testemunhados" é uma afirmação de eficácia. A responsabilidade exige a última antes que uma plataforma de alta autoridade retorne ao uso rotineiro.

Matriz de responsabilidade

EstágioProprietário do controle principalControle necessárioEvidência que deve existirLimite público
Solicitação do clienteOperações de produto da CenturyLinkVincular mitigação a recursos autorizados do cliente e tráfego pretendidoRegistro de solicitação, autorização de prefixo, intenção normalizadaO cliente específico e o endereço solicitado não são públicos
EntradaProprietários de ferramentas da CenturyLinkRejeitar valores curinga, em branco, ambíguos e fora do escopoTestes de esquema, casos negativos, registro de versão do analisadorA interface exata e o analisador não são públicos
CompilaçãoPlataforma de políticas da CenturyLinkCalcular a correspondência efetiva de pacotes e compará-la com a intençãoRegra compilada, diferença semântica, cardinalidade e verificações de protocoloO comando malformado exato não é público
Validação independenteArquitetura/segurança da CenturyLinkDetectar escopo amplo através de um caminho lógico independenteDesign do validador separado, resultados de injeção de falhasA evidência pública não prova independência semântica
AutorizaçãoProprietário de mudança da CenturyLinkEscalar regras de alta autoridade ou que afetam o plano de controleRegistro de aprovação, exibição de escopo, autoridade de paradaA propriedade da decisão individual não é pública
Teste em etapasOperações de rede da CenturyLinkCanário e distribuição limitada antes da implantação globalPlano de grupo de dispositivos, limites de saúde, parada automáticaA topologia de distribuição de 2020 não é pública
Proteção do plano de controleArquitetura de roteamento da CenturyLinkIsentar ou governar separadamente BGP, route-reflectors e gerenciamentoPolítica de prefixo/protocolo protegido, teste de isolamentoEndereçamento privado e topologia devem permanecer confidenciais
DetecçãoNOC da CenturyLinkCorrelacionar implantação de políticas, churn BGP, perda de pacotes e impacto no serviçoCronologia, inventário de regras ativas, correlação de alarmesO fluxo completo de alarmes não é público
ReversãoNOC e engenharia da CenturyLinkRemover política insegura através de um caminho independenteInterruptor de desligamento, teste de acesso fora de banda, confirmação do dispositivoO acesso detalhado à recuperação é sensível à segurança
PeeringCenturyLink e peersCoordenar de-peering, retiradas e evidência de convergênciaCronologia de peers, estado de rota, restauração de tráfegoRegistros bilaterais completos são privados
Continuidade do clienteClientes e provedores gerenciadosManter caminhos alternativos independentes de política e capacidadeTestes de AS-path, diversidade física, exercícios de failoverOs designs e perdas dos clientes variam
ComunicaçãoGarantia de serviço da CenturyLinkManter status, tickets e contatos críticos acessíveisCaminho de status independente, registro de atualizações, testes de contatoO pacote público tem apenas evidência parcial de suporte
VerificaçãoCenturyLink e avaliador independenteReproduzir a falha e provar não recorrência limitadaPlano de teste, resultado testemunhado, declaração de risco residualEvidência de teste independente de longo prazo não é pública aqui

A matriz impede que a responsabilidade se reduza à frase "interrupção da Internet." A CenturyLink controlava o sistema de políticas e o backbone interno. Os peers controlavam suas interconexões. Os clientes controlavam sua própria política de borda e diversidade. As organizações de medição controlavam a coleta de evidências. Essas responsabilidades interagiram, mas apenas a operadora poderia redesenhar o caminho interno que transformou uma solicitação estreita em uma falha generalizada.

Também impede um erro diferente: assumir que um grande provedor é responsável por todas as consequências para o cliente. Um cliente mono-homed aceita uma postura de continuidade diferente de um cliente com multihoming testado. Um peer que mantém preferência obsoleta pode prolongar um caminho. Um serviço em nuvem que não tem conectividade de origem alternativa pode permanecer inatingível depois que outros caminhos se recuperam. A responsabilidade deve seguir o controle prático sobre cada camada, não se expandir sem limite.

O que o registro público não pode provar

O conjunto de fontes é forte o suficiente para estabelecer o incidente, seu mecanismo de rede em alto nível, o amplo impacto e as principais questões de controle. Não é um registro forense completo.

O RFO original da CenturyLink está presente aqui como uma reprodução hospedada por um cliente das notas do fornecedor, em vez de uma publicação estável da operadora. Múltiplas fontes contemporâneas e posteriores repetem suas principais conclusões, o que aumenta a confiança, mas a atribuição permanece necessária. Um registro futuro hospedado pela operadora ou arquivado por um regulador pode substituir o texto deste pacote.

A explicação do loop BGP da Cloudflare é tecnicamente plausível e consistente com as atualizações observadas, mas não é uma captura de pacotes divulgada pela CenturyLink. O artigo não deve afirmar que cada roteador repetiu exatamente esse loop. A ThousandEyes fornece observação e interpretação adicionais, mas também não possui a telemetria privada completa da operadora.

RouteViews registra atualizações visíveis para os coletores, não todos os estados internos dos route-reflectors ou decisões de encaminhamento. RIPEstat fornece contexto de AS e roteamento, não um veredito de causa raiz. As pesquisas da APNIC e CNSM aplicam métodos de medição após o incidente; elas não atribuem a propriedade da decisão privada. As RFCs definem o comportamento do protocolo e boas práticas; elas não certificam a conformidade de uma operadora nomeada.

Nenhuma fonte neste pacote prova negligência, intenção ou resultado disciplinar de um indivíduo. Nenhuma fonte prova a perda financeira exata para cada cliente. Nenhuma fonte estabelece que um ator hostil comprometeu a CenturyLink. Nenhuma fonte verifica independentemente todas as correções ao longo dos anos seguintes.

Essas lacunas devem permanecer visíveis porque identificam quem detém a evidência ausente. A CenturyLink pode fornecer linhagem de configuração, design de validação, reprodução em laboratório, política de implantação e resultados de teste. Os peers podem fornecer rotas bilaterais e registros de de-peering. Os clientes podem fornecer evidências de interrupção e failover. Avaliadores independentes podem verificar a correção sem divulgar topologia sensível.

Um teste reutilizável de responsabilidade de política de backbone

O incidente da CenturyLink fornece um teste prático para qualquer operador que possa distribuir políticas de tráfego em escala.

Intenção:A solicitação humana é limitada a um recurso autorizado e expressa de forma inequívoca?

Compilação:O sistema pode mostrar a correspondência efetiva exata após cada analisador, curinga e padrão?

Autoridade:A aprovação aumenta com o número de dispositivos, classes de tráfego e sistemas de controle que a regra pode afetar?

Independência:Os controles secundários validam uma propriedade diferente ou usam uma fonte de verdade diferente?

Caminhos protegidos:A política do cliente pode tocar em BGP, route-reflectors, gerenciamento, autenticação, DNS, registro ou sistemas de tempo?

Teste em etapas:A regra pode ser canário e interrompida automaticamente quando a saúde do plano de controle ou do serviço muda?

Reversão:Os respondedores podem removê-la sem depender do plano comprometido?

Visibilidade:O comando do incidente pode ver todas as regras instaladas, estado do dispositivo, efeito na sessão e resultado do cliente?

Dependência:Os peers e clientes testaram se os caminhos alternativos são independentes de política e dimensionados adequadamente?

Prova:A falha real relatada foi reproduzida e os controles reparados foram testemunhados sob condições realistas?

Um operador que não pode responder a essas perguntas não deve tratar uma capacidade de distribuição global de políticas como automação rotineira. A ausência de um incidente recente não é evidência de que o limite semântico é seguro.

Conclusão

O apagão da CenturyLink em 2020 não foi importante porque o FlowSpec é exótico. Foi importante porque uma intenção operacional estreita adquiriu autoridade em todo o backbone.

A evidência pública mostra um anúncio problemático do FlowSpec, falhas no estabelecimento de BGP, perda generalizada de acessibilidade e uma ação de configuração global que restaurou a estabilidade. Também mostra que as redes externas experimentaram a falha de forma diferente de acordo com peering, preferência de caminho, anúncios obsoletos e capacidade alternativa. O que a evidência não mostra é igualmente importante: o comando exato, a topologia interna completa, a cadeia de decisão individual e a prova independente de longo prazo do reparo.

A responsabilidade segue esses limites. A CenturyLink controlava a plataforma que traduzia, validava e distribuía a política. Ela controlava se o plano de controle de roteamento e o caminho de recuperação estavam protegidos dessa política. Clientes e peers controlavam partes de sua própria continuidade, mas não podiam reparar o mecanismo interno da AS3356. Organizações de padrões e medição forneceram protocolo e observação, não autoridade operacional.

O padrão de reparo é, portanto, concreto. Um sistema de política de alto raio de alcance deve provar que o escopo efetivo corresponde à intenção, que controles independentes rejeitam a expansão semântica, que o tráfego de controle permanece protegido, que a implantação é limitada, que a reversão sobrevive ao comprometimento do plano de controle e que a acessibilidade externa confirma a recuperação. Sem essa evidência, "backbone redundante" descreve a topologia enquanto deixa a autoridade concentrada em um caminho frágil.

A lição duradoura não é desacelerar toda mitigação. É tornar a velocidade segura restringindo a autoridade antes que a urgência chegue. Um bloqueio de cliente deve permanecer um bloqueio de cliente. Quando pode se tornar um evento global de roteamento, a rede não sofreu apenas um erro de configuração. Ela expôs um design de responsabilidade que precisa ser reconstruído e comprovado.

Fontes

  1. https://qsgit.com/wp-content/uploads/2020/08/QSG_RfO.pdf
  2. https://blog.cloudflare.com/analysis-of-todays-centurylink-level-3-outage/
  3. https://www.thousandeyes.com/blog/centurylink-level-3-outage-analysis
  4. https://www.thousandeyes.com/blog/ep-21-under-the-hood-on-the-centurylink-level-3-outage
  5. https://www.thousandeyes.com/blog/2020-accelerated-internet-dependency-europe
  6. https://isc.sans.edu/diary/CenturyLink%2BOutage%2BCausing%2BInternet%2BWide%2BProblems/26518
  7. https://www.netforecast.com/news/centurylinks-nationwide-outage-as-measured-by-netforecasts-benchmark-reporting-network/
  8. https://lists.outages.org/archives/list/outages%40outages.org/2020/8/?count=50
  9. https://conference.apnic.net/53/assets/files/APNT374/detecting-internet-routing-outages-with-topology-and-service-analysis_v2.pdf
  10. https://web-backend.simula.no/sites/default/files/2023-10/BGP_incidents_CNSM.pdf
  11. https://archive.routeviews.org/bgpdata/2020.08/UPDATES/
  12. https://stat.ripe.net/resource/AS3356
  13. https://www.rfc-editor.org/rfc/rfc8955.html
  14. https://www.rfc-editor.org/rfc/rfc8956.html
  15. https://www.rfc-editor.org/rfc/rfc5575.html
  16. https://www.rfc-editor.org/rfc/rfc4271.html
  17. https://www.rfc-editor.org/rfc/rfc7454.html
  18. https://www.rfc-editor.org/rfc/rfc7606.html
  19. https://www.rfc-editor.org/rfc/rfc4724.html
  20. https://storage.googleapis.com/site-media-prod/meetings/NANOG92/5213/20241022_Ryburn_Bgp_Flowspec_Doesn_T_v1.pdf