La caída de Facebook explicada de forma sencilla
Ayer lunes, Facebook y sus servicios afiliados, WhatsApp e Instagram, se cayeron en todo el mundo.
Era como si alguien hubiera «tirado los cables» de sus centros de datos y los hubiera desconectado de Internet, pero ¿cómo es posible que ocurra algo así?
¿Cómo es posible que Facebook desparezca de Internet?
El responsable de esta caída se llamada BGP (Border Gateway Protocol), un mecanismo que se usa para intercambiar información de rutas entre las distintas redes que forman Internet.
Los grandes routers que hacen que Internet funcione transportando paquetes de una red a otra tienen enormes listas, constantemente actualizadas gracias a BGP, de los posibles caminos que pueden utilizarse para entregar cada paquete a su destino final.
Sin BGP, los routers de Internet no sabrían por qué camino dirigir los paquetes, e Internet no funcionaría.
La red «A» está directamente conectada al router rojo de la izquierda. Cada router anuncia a los demás cómo puede llevar paquetes hasta la red A mediante BGP.
Internet es, literalmente, una red de redes, y BGP es el mecanismo que permite que una red (por ejemplo, la de Facebook) anuncie su presencia a otras redes que forman Internet.
Lo que ha ocurrido es que Facebook ha dejado de anunciar su presencia, así que los proveedores de acceso a Internet y otras redes no podían encontrar la red de Facebook y, por tanto, no funcionaba nada.
¿Pero qué ha ocurrido exactamente?
Cada red de Internet se considera un Sistema Autonómo (AS) y tiene asignado un ASN (Número de Sistema Autónomo). El ASN de Facebook es AS32934. Cada ASN necesita anunciar sus rutas a Internet utilizando BGP; de lo contrario, nadie sabría cómo conectarse y dónde encontrar sus servidores.
Este diagrama muestra cinco sistemas autónomos en Internet y múltiples rutas que un paquete puede utilizar para ir desde AS1 hasta AS5. AS1 → AS3 → AS5 es la más rápida, y AS1 → AS2 → AS4 → AS3 → AS35es la más lenta, pero que puede ser utilizada si la conexión entre AS1 y AS3 falla.
Hace unas horas, Facebook ha dejado de anunciar las rutas hasta sus servidores DNS. Eso significaba que, al menos, los servidores DNS de Facebook no estaban disponibles.
¿Pero qué es un servidor DNS?Los servidores DNS son los encargados de traducir los nombres de los dominios (como facebook.com o instagram.com) a direcciones IP (como 31.13.83.36 o 31.13.66.174), que son las que entienden los routers para dirigir los paquetes.
Ayer a media tarde, ocurrió un pico de cambios de rutas de Facebook. Ahí es cuando empezaron los problemas. Las rutas fueron borradas, por lo que los servidores DNS de Facebook dejaron de ser accesibles y, como resultado, todos sus sistemas se habían quedado desconectados de Internet.
About five minutes before Facebook's DNS stopped working we saw a large number of BGP changes (mostly route withdrawals) for Facebook's ASN. pic.twitter.com/dMTevg6hqj
— John Graham-Cumming (@jgrahamc) October 4, 2021
Como consecuencia directa de esto, los servidores de DNS de todo el mundo dejaron de traducir sus nombres de dominio (facebook.com, instragram.com, etc.)
Cuando alguien teclea la URL https://facebook.com en el navegador, el DNS, responsable de traducir los nombres de dominio en direcciones IP reales a las que conectarse, comprueba primero si tiene guardada esa traducción y la utiliza. Si no es así, intenta obtener la respuesta de los servidores de nombres del dominio de la entidad propietaria, en este caso Facebook.
Como los servidores DNS de Facebook eran inalcanzables, el navegador emitíaun error al usuario.
¿Por qué esto ha afectado también a otros servicios de Internet?
El comportamiento humano y la lógica de las aplicaciones entran en acción y provocan otro efecto exponencial. Se produce un tsunami de tráfico DNS adicional.
Las aplicaciones no aceptan un error como respuesta y empiezan a reintentar la conexión, a veces de forma compulsiva, y los usuarios finales tampoco aceptan un error como respuesta y empiezan a recargar las páginas, o a cerrar y relanzar sus aplicaciones, a veces también de forma agresiva.
Debido a que Facebook, WhatsApp e Instagram son tan grandes, los servidores DNS en todo el mundo han tenido que manejar 30 veces más consultas de lo habitual y esto ha causado problemas de latencia y tiempo de espera a otras plataformas.
¿Cuándo se ha solucionado el problema?
Alrededor de las 23:00 CET, se vio nueva actividad de BGP en la red de Facebook que alcanzó su punto máximo a las 23:17 CET.
Seeing signs of increased BGP activity from Facebook. Might be signal that they are getting close to coming back online. Fingers crossed. #hugops pic.twitter.com/l5G4Dk8I68
— John Graham-Cumming (@jgrahamc) October 4, 2021
Esto fue una señal de que Facebook estaba arreglando el problema y, en efecto, poco después, los servidores DNS de Facebook volvieron resolver los dominios de la compañía.
En el momento de escribir este artículo, todavía no están restaurados todos los servicios, pero algunas webs y apps como la de Facebook ya funcionan.