Resumen

  • Una orden de mantenimiento destinada a medir la capacidad del backbone global tumbó todas las conexiones del backbone, y la herramienta de auditoría creada para detener órdenes así no la detuvo, por un fallo en la propia herramienta.
  • Los servidores DNS autoritativos actuaron después exactamente como estaban diseñados —retirar sus anuncios BGP en cuanto dejaban de poder hablar con los centros de datos—, lo que convirtió una avería de conectividad interna en una pérdida total de alcance desde fuera.
  • La recuperación pasó por puertas cerradas y no por una consola remota, porque tanto el acceso primario como el acceso fuera de banda estaban caídos.

La orden tenía un solo propósito: averiguar cuánta capacidad del backbone global de Facebook quedaba libre. Se llevó el backbone. El relato de la empresa es inusualmente directo en las dos mitades de la frase. Durante una tarea de mantenimiento rutinaria, «a command was issued with the intention to assess the availability of global backbone capacity, which unintentionally took down all the connections in our backbone network, effectively disconnecting Facebook data centers globally» (Engineering at Meta).

Hay que leer dos veces la frase siguiente, porque es la que sostiene la responsabilidad: «Our systems are designed to audit commands like these to prevent mistakes like this, but a bug in that audit tool prevented it from properly stopping the command.»

La orden no entró de contrabando. A nadie se le describe rodeando una salvaguarda. Siguió el procedimiento, y el procedimiento contenía un componente cuya única razón de existir era decir que no; ese componente tenía un defecto, y el no nunca llegó. Facebook tenía un control. No tenía el control que creía tener. El material revisado para este artículo no incluye el texto de la orden, su alcance ni quién la autorizó, de modo que la distancia entre lo que la herramienta debía juzgar y lo que juzgó de verdad no se puede medir desde fuera. Lo que sí se mide es el resultado.

La contabilidad empeora rápido: «This change caused a complete disconnection of our server connections between our data centers and the internet. And that total loss of connection caused a second issue that made things worse.»

Ese segundo problema era un mecanismo de seguridad haciendo exactamente su trabajo. «To ensure reliable operation, our DNS servers disable those BGP advertisements if they themselves can not speak to our data centers, since this is an indication of an unhealthy network connection.» Con el backbone desaparecido no quedaba ninguna ubicación capaz de hablar con los centros de datos, así que «the entire backbone was removed from operation, making these locations declare themselves unhealthy and withdraw those BGP advertisements».

La frase de cierre resume el caso entero: «The end result was that our DNS servers became unreachable even though they were still operational.»

Operativos e inalcanzables. La retirada no fue un error de configuración ni un efecto colateral imprevisto. La regla se ejecutó. Y esa regla codifica una suposición: un servidor DNS que no alcanza los centros de datos está viendo una avería local, un enlace enfermo en algún sitio. El 4 de octubre todas las ubicaciones veían el mismo hecho catastrófico. Cada una juzgó correctamente, en local. La suma de esos juicios correctos fue la desaparición de Facebook de la tabla de rutas de internet.

Después, la recuperación tuvo que hacerse a mano. «Our primary and out-of-band network access was down, so we sent engineers onsite to the data centers to have them debug the issue and restart the systems. But this took time, because these facilities are designed with high levels of physical and system security in mind. They're hard to get into, and once you're inside, the hardware and routers are designed to be difficult to modify even when you have physical access to them.»

Ese párrafo describe dos buenos diseños tirando en direcciones opuestas. La seguridad física de un centro de datos existe para impedir que un desconocido toque un router; el 4 de octubre también frenó a quienes necesitaban tocarlo. Y el canal fuera de banda —la respuesta clásica a la pérdida de acceso al plano de control— compartía el destino del sistema al que debía rescatar. Un camino de recuperación que depende de la red que recupera no es un camino de recuperación. Es una esperanza con un procedimiento adjunto.

Desde fuera se veía la forma, no la causa. Cloudflare midió la desaparición y el regreso: en su resolutor 1.1.1.1, el nombre facebook.com «stopped being available at around 15:50 UTC and returned at 21:20 UTC», con actividad BGP renovada hacia las 21:00 UTC y un pico a las 21:17 UTC (Cloudflare). Meta no declara duración alguna; la ventana de unas cinco horas y media es una medición de Cloudflare, no una cifra del operador. La distinción importa más de lo que parece: separa lo que puede establecerse de forma independiente —las rutas se fueron y volvieron— de lo que no, es decir, si el control que falló había sido probado alguna vez.

Aquí está lo que conviene llevarse a cualquier organización que haga pasar sus cambios por software. Una herramienta de auditoría es un control, y un control vale lo que vale la prueba de que funciona. Esa prueba no es un documento de diseño. Es un test que le entrega a la herramienta una orden del tipo que existe para bloquear y demuestra que quedó bloqueada; un ejercicio deliberado que pruebe que ante la duda la herramienta rechaza en lugar de dejar pasar en silencio; y una señal lo bastante fuerte como para que una herramienta que deja de funcionar sea tratada como un incidente. Ninguna de las tres aparece en el material revisado aquí.

Los ingenieros de Facebook han escrito ahora, con sus propias palabras, que su capa de verificación tenía un defecto. Es más franqueza de la que suelen mostrar los operadores. Y es también todo el problema: la declaración llegó después del apagón, de la organización que era dueña tanto de la orden como del control. Las tripas de una herramienta de auditoría son invisibles para cualquiera que esté fuera de la empresa, así que la garantía que ofrece es, en la práctica, una promesa. Las promesas están bien. Las promesas verificadas están mejor.

Lo que movería este caso de control no verificado a control reparado es un registro fechado, concreto y comprobable por alguien que no sea el operador: que los tests de la herramienta se reescribieron tras el incidente, que la ruta que falló ahora rechaza por defecto y que el cambio se ejercitó en lugar de solo anunciarse. El material revisado para este artículo se limita a la nota de ingeniería de Meta del 5 de octubre de 2021 y a la medición independiente de Cloudflare; ninguna de las dos contiene la orden, el informe del defecto ni un plan de remediación con fecha de implantación.

Lo que sigue es, por tanto, una descripción de lo que exigiría la durabilidad, no el informe de que se haya logrado.