Disponibilidade 2min de Leitura - 14 de outubro de 2021

A queda das redes sociais

redes sociais facebook

This post is also available in: Português

Há alguns dias, mais especificamente na segunda-feira 04/10, as redes sociais de domínio do Facebook tiveram seus servidores indisponíveis durante cerca de 5 horas. Serviços como Whatsapp, Messenger, Instagram e a própria plataforma do Facebook ficaram fora do ar.

O Facebook divulgou um blog post oficial sobre a situação, que explica superficialmente o que poderia ter acontecido.

Na publicação, a empresa traz que a equipe de engenharia percebeu que alterações feitas nos roteadores das infraestruturas, que coordenam o tráfego de rede entre os data centers da empresa, apresentaram problemas, causando a interrupção da comunicação e queda nos serviços.

Mas por que tudo isso aconteceu?

Continue a leitura deste conteúdo para entender um pouco mais sobre o conceito de DNS (Domain Name Servers), BGP (Border Gateway Protocol) e assimilar a relação destas tecnologias com a interrupção dos serviços do Facebook, Instagram e WhatsApp.

DNS – Domain Name Servers

Para facilitar o entendimento do DNS, imagine a seguinte situação: você quer comandar um drone, para que ele busque uma encomenda e retorne para o local de origem. Para cumprir esta tarefa, o drone necessita de duas coordenadas latitude e longitude.

É humanamente impossível conhecer exatamente todas as coordenadas, para orientar o drone e ter a garantia de que sua tarefa seja realizada corretamente. Tendo por base esta condição, possuir uma tecnologia capaz de receber endereços (CEP, Nome da rua e número) e transcrevê-los para um tipo de dado, interpretado pelo drone (latitude e longitude), seria algo muito útil.

É exatamente esta tradução que o DNS se propõem a fazer. Computadores são capazes de entender apenas IPs na hora de realizar uma conexão. Para isso existem os domain name servers, eles basicamente traduzem os endereços de sites que conhecemos, para seus respectivos IPs, como nos exemplos abaixo:

  • google.com.br → 142.250.218.227
  • facebook.com → 157.240.226.35
  • youtube.com → 142.250.219.46

BGP – Border Gateway Protocol

O BGP é um protocolo, responsável pela troca de informações de rotas entre sistemas autônomos. Ou seja, eles que “publicam” as rotas que a origem da sua conexão deverá acessar, através do seu provedor, para que a conexão atinja o endereço final desejado (por exemplo, o IP do youtube.com).

Sem esse protocolo, e a troca dessas informações, os roteadores não “saberiam para onde ir”, por exemplo, ao tentar enviar uma requisição para youtube.com, ele iria partir do seu endereço privado na sua rede doméstica, mas não saberia que caminho deve traçar, na internet, até chegar ao destino.

O acontecido

As 12:58h, horário de Brasília, a Cloudfare detectou que os servidores do Facebook tinham parado de publicar suas rotas para os DNS de domínio da empresa. Isso significa que neste momento, pelo menos os servidores DNS do Facebook, estavam indisponíveis, não por algum erro técnico, e sim por que os roteadores do mundo, aos poucos, foram ficando sem informações para como chegar aos DNS citados.

Devido ao Facebook parar de anunciar suas rotas de DNS por meio do BGP, os resolvedores de todos os grandes provedores (por exemplo, a Cloudfare, e a Google), não tinham como se conectar aos seus servidores de nomes. Consequentemente, 1.1.1.1, 8.8.8.8 e outros resolvedores DNS públicos começaram a emitir (e armazenar em cache) respostas SERVFAIL, a resposta padrão de falha ao resolver DNS.

Mas isso não foi tudo. O comportamento humano e a lógica do aplicativo entram em ação e causam outro efeito exponencial. Segue-se um tsunami de tráfego DNS adicional.

Isso aconteceu, em parte, porque alguns aplicativos não aceitam um erro como resposta e começam a tentar novamente, às vezes agressivamente, e em parte porque os usuários finais também não aceitaram um erro como resposta e começaram a recarregar as páginas, ou fechar e reiniciar seus aplicativos, às vezes também de forma agressiva.

Ao final do dia 04/10, às 18:28h, horário de Brasília, o Facebook “apareceu” publicamente na internet de novo, anunciando suas rotas para todos os servidores DNS.

Desde esse acontecido, as redes tem funcionado normalmente, com exceção do Instagram, que sofreu instabilidade por alguns dias, mas voltando ao normal rapidamente.

This post is also available in: Português