Le 4 octobre 2021, à 15 h 39 UTC, Facebook et tout ce qui en dépend — Instagram, WhatsApp, Messenger, Oculus — sont tombés en panne dans le monde entier. Pendant les six à sept heures suivantes, des milliards de personnes n'ont tout simplement pas pu y accéder. La cause n'était pas une cyberattaque. Lors d'une maintenance de routine, un ingénieur a exécuté une commande destinée à évaluer la capacité du réseau fédérateur mondial de Facebook. La commande a mal tourné et a accidentellement déconnecté d'un seul coup tous les centres de données de Facebook de ce réseau fédérateur.
La conception a transformé une mauvaise commande en catastrophe. Facebook exploitait ses propres serveurs DNS, et ces serveurs étaient configurés pour retirer leurs routes BGP — les entrées du carnet d'adresses d'Internet — s'ils perdaient le contact avec les centres de données. Ainsi, lorsque le réseau fédérateur est tombé, les serveurs DNS ont consciencieusement annoncé au reste d'Internet que les adresses de Facebook n'existaient plus. Facebook s'était, en pratique, effacé lui-même d'Internet, et le retrait s'est propagé si complètement que même les propres outils de Facebook ne pouvaient pas facilement l'atteindre pour le réparer.
Le verrouillage était presque comiquement total. Les systèmes internes de Facebook sont eux aussi tombés en panne : les employés ne pouvaient pas envoyer d'e-mails externes, accéder à l'annuaire de l'entreprise, ni — détail qui a fait les gros titres — ouvrir les immeubles de bureaux et les salles de conférence avec leurs badges de sécurité, qui dépendaient du même réseau. La reprise a nécessité qu'une équipe se rende physiquement dans le centre de données de Santa Clara et réinitialise manuellement les serveurs. Les services sont revenus progressivement entre environ 21 h 50 et 22 h 50 UTC. L'action de Facebook a chuté de près de 5 % ce jour-là, et la fortune personnelle de Mark Zuckerberg a diminué de plus de 6 milliards de dollars.
Les serveurs DNS retiraient automatiquement les routes en cas de perte de contact, si bien que la défaillance s'est propagée en cascade ; la reprise a nécessité un accès physique, coûtant 6 heures et plus de 60 M$.
Une seule commande de maintenance, exécutée sans garanties suffisantes, a déconnecté d'un seul coup tous les centres de données de Facebook de son réseau fédérateur.
Les serveurs DNS étaient conçus pour retirer leurs routes BGP lorsqu'ils perdaient les centres de données — la défaillance a donc automatiquement effacé Facebook des tables de routage d'Internet.
Les outils de reprise et les accès (y compris les badges physiques des bâtiments) dépendaient du même réseau qui avait échoué, enfermant les ingénieurs hors de la solution.
Il n'existait aucun chemin hors bande pour atteindre les systèmes et annuler rapidement le changement.
La leçon
Concevez votre chemin de reprise de sorte qu'il ne dépende pas de ce qui vient de tomber en panne. Quand votre DNS, votre authentification et vos badges de porte fonctionnent tous sur le réseau que vous venez de mettre hors service, vous vous êtes enfermé dehors.
L'équipe d'ingénierie de Facebook a publié une explication détaillée le lendemain, et l'entreprise s'est excusée. La panne — la pire depuis 2008 — a coûté un montant estimé à 60 millions de dollars ou plus en recettes publicitaires et a retiré des milliards à sa valeur boursière, et elle a brièvement poussé les utilisateurs vers des plateformes concurrentes. Elle est devenue un cas d'école en ingénierie réseau sur les dangers des points de défaillance uniques, des systèmes de reprise qui dépendent des systèmes qu'ils sont censés rétablir, et de la façon dont une seule commande non protégée peut faire tomber un service utilisé par un tiers de l'humanité.
VÉRIFIEZ LES SOURCES