¿Por qué cayeron los servicios de Facebook?

Los servicios de Facebook como WhatsApp e Instagram recibieron reportes de caída mundial

Hoy a las 16:51 UTC, el proveedor Cloudflare abrió un incidente interno titulado «Búsqueda de DNS de Facebook que devuelve SERVFAIL» porque les preocupaba que algo estuviera mal su servicio de DNS 1.1.1.1. Pero cuando estaban a punto de publicarlo en su página, se dieron cuenta de que estaba sucediendo algo más serio: Facebook y sus servicios afiliados WhatsApp e Instagram estaban caídos.

Sus nombres DNS dejaron de resolverse y sus IP de infraestructura eran inalcanzables. Era como si alguien hubiera «desconectado los cables» de Internet.

¿Cómo sería esto posible?

BGP son las siglas de Border Gateway Protocol. Es un mecanismo para intercambiar información de enrutamiento entre Sistemas Autónomos (AS) en Internet. Los grandes enrutadores que hacen que Internet funcione tienen listas enormes y constantemente actualizadas de las posibles rutas que se pueden utilizar para entregar cada paquete de red a sus destinos finales. Sin BGP, los enrutadores de Internet no sabrían qué hacer e Internet no funcionaría.

A las 16:58 UTC, Facebook había dejado de anunciar las rutas a sus prefijos DNS. Eso significaba que, al menos, los servidores DNS de Facebook no estaban disponibles. Debido a esto, el sistema de resolución de DNS ya no podía responder a las consultas que solicitaban la dirección IP de facebook.com o instagram.com. Mientras tanto, otras direcciones IP de Facebook permanecieron enrutadas, pero no fueron particularmente útiles, ya que sin DNS, Facebook y los servicios relacionados no estaban efectivamente disponibles.

Un mensaje de BGP UPDATE informa al enrutador de cualquier cambio que haya realizado y esto se puede ver claramente en la cantidad de actualizaciones recibidas de Facebook. Normalmente, este gráfico es bastante silencioso porque no es normal que Facebook realice muchos cambios en su red minuto a minuto. Pero alrededor de las 15:40 UTC se puede ver un pico de cambios en el enrutamiento de Facebook. Fue entonces cuando empezó el problema.

Si dividimos esta vista por anuncios de rutas y retiros, tenemos una idea aún mejor de lo que sucedió. Se retiraron las rutas, los servidores DNS de Facebook se desconectaron y facebook.com «dejó de existir». Como consecuencia directa de esto, los resolutores de DNS de todo el mundo también dejaron de resolver sus nombres de dominio.

Esto sucede porque el DNS, como muchos otros sistemas en Internet, también tiene su mecanismo de enrutamiento. Cuando alguien escribe la URL https://facebook.com en el navegador, el DNS, responsable de traducir los nombres de dominio a direcciones IP reales para conectarse, primero verifica si tiene algo en su caché y lo usa. De lo contrario, intenta obtener la respuesta de los servidores de nombres de dominio, normalmente alojados por la entidad propietaria.

Si no se puede acceder a los servidores de nombres o no responden por algún otro motivo, se devuelve un SERVFAIL y el navegador envía un error al usuario. Una buena explicación sobre cómo funciona el DNS.

Debido a que Facebook dejó de anunciar sus rutas de prefijo DNS a través de BGP, todos los resolutores de DNS no tenían forma de conectarse a sus servidores de nombres. En consecuencia, 1.1.1.1, 8.8.8.8 y otros importantes solucionadores de DNS públicos comenzaron a emitir (y almacenar en caché) respuestas SERVFAIL.

Pero eso no es todo. Ahora el comportamiento humano y la lógica de la aplicación entran en juego y provocan otro efecto exponencial. Sigue un tsunami de tráfico DNS adicional. Esto sucedió en parte porque las aplicaciones no aceptarán un error como respuesta y comenzarán a intentarlo de nuevo, a veces de manera agresiva, y en parte porque los usuarios finales tampoco aceptarán un error como respuesta y comenzarán a recargar las páginas, o matarán y relanzarán sus aplicaciones, a veces también de forma agresiva.

Otros servicios impactados

La gente busca alternativas y quiere saber más o discutir lo que está sucediendo. Cuando Facebook se volvió inalcanzable, se vió un aumento de las consultas de DNS a Twitter, Telegram, Signal y otras plataformas de mensajería y redes sociales.

Fuente: hacking.land, blog.cloudflare.com

Comments are closed.