BGP, DNS y la fragilidad de nuestros sistemas críticos
El 4 de octubre de 2021, Facebook experimentó una interrupción de seis horas. Esta interrupción se extendió a también a WhatsApp, Instagram y Oculus VR. Dada la magnitud de este evento, vamos a profundizar en algunas de las tecnologías de Internet en las que regularmente confiamos.
Siempre es culpa del DNS
El DNS es un punto único de falla para los sistemas de Internet. DNS (Domain Name System) asigna nombres, como facebook.com, a direcciones IP, lo que permite a los usuarios referirse fácilmente a los sitios por su nombre. DNS, en efecto, proporciona traducción entre nombres y direcciones IP, como una libreta de direcciones. Cuando los servidores DNS de un sitio están inactivos, esta búsqueda no se puede realizar y las personas no podrán acceder a su sitio. Mantener sus servidores DNS activos, operativos y seguros es una pieza fundamental para la confiabilidad del sitio.
Excepto cuando el culpable es BGP
Existe otra tecnología que es al menos tan crítica como el DNS. Este es un protocolo de enrutamiento llamado llamado BGP (Border Gateway Protocol). BGP es el protocolo que permite a los Sistemas Autónomos (colecciones de grandes redes controladas por una sola entidad) permitir que otros Sistemas Autónomos sepan cómo llegar a las redes que controlan. No realiza el enrutamiento directamente, sino que es el protocolo que comparte información entre los enrutadores. Una vez recibida esta información, los enrutadores pueden tomar decisiones sobre dónde reenviar los datos.
Metáfora esclarecedora
Usted quiere llegar a la casa de su amigo, pero nunca ha estado allí. Busca su dirección. (Eso es como la parte de DNS). Ahora necesita averiguar cómo llegar allí, así que vaya a la intersección más cercana y pregunte a alguien en qué dirección debe ir. Le dicen que gire a la izquierda. Sigue por ese camino hasta llegar a otra intersección y vuelve a preguntar. Esta persona le dice que vaya a la derecha.
La ruta que tome no siempre será la forma más directa de llegar allí, ni siquiera necesariamente la más rápida, pero lo ayudará a evitar bloqueos de carreteras, puentes colapsados y carreteras inundadas. Suponiendo que todas las personas a las que pregunte tengan buena información, al final llegará a su destino.
El medio por el cual se comunica esa buena información es BGP. Si BGP proporciona información incorrecta, o ninguna información sobre cómo llegar a donde quiere ir, pueden suceder cosas malas.
Conclusión
De acuerdo en lo que se ha compartido hasta ahora, la interrupción de Facebook fue causada por un error de configuración en BGP, esto es lo que comentaron los ingenieros de Facebook: ‘Durante trabajos de mantenimiento de rutina, se emitió un comando con la intención de evaluar la disponibilidad de la capacidad de la red troncal global, que accidentalmente corto todas las conexiones de nuestra red troncal, desconectando efectivamente los centros de datos de Facebook a nivel mundial. Nuestros sistemas están diseñados para auditar comandos como estos para evitar errores como este, pero un error en esta herramienta de auditoria le impidió detener correctamente el comando. Esto causo una desconexión completa de nuestras conexiones de servidor entre nuestros centros de datos e Internet’.