Facebook continue de partager plus de détails sur la cause exacte de la panne de six heures qui a fait tomber Facebook, Messenger, Instagram et WhatsApp lundi. Parlant d’«Une erreur de leur propre initiative».
Dans un nouveau billet de blog, Facebook plonge dans certains des détails techniques de ce qui a conduit à la panne, affirmant que cela s’est produit en raison d’une erreur lors de l’un de ses nombreux « travaux de maintenance de routine ».
Le récapitulatif de la panne de Facebook attribué à une seule erreur
Facebook a publié son premier récapitulatif de la panne lundi soir, l’attribuant à une seule erreur qui a eu un « effet en cascade » sur la communication du centre de données, « arrêtant ainsi nos services ».
Facebook dit que bien qu’il ait mis en place des systèmes pour auditer les commandes qui pourraient arrêter l’ensemble de son réseau, « un bogue dans cet outil d’audit n’a pas correctement arrêté » cette commande.
Le trafic de données entre toutes ces installations informatiques est géré par des routeurs, qui déterminent où envoyer toutes les données entrantes et sortantes. Et dans le travail quotidien intensif de maintenance de cette infrastructure, nos ingénieurs ont souvent besoin de prendre en charge une partie de la dorsale hors ligne pour la maintenance, par exemple en réparant une ligne de fibre, en ajoutant plus de capacité ou en mettant à jour le logiciel sur le routeur lui-même.
Une commande vers le réseau fédérateur mondial
C’était la source de la panne. Au cours de l’un de ces travaux de maintenance de routine, une commande a été émise avec l’intention d’évaluer la disponibilité de la capacité du réseau fédérateur mondial, ce qui a involontairement interrompu toutes les connexions de notre réseau fédérateur, déconnectant efficacement les centres de données Facebook dans le monde. Nos systèmes sont conçus pour auditer des commandes comme celles-ci afin d’éviter de telles erreurs, mais un bogue dans cet outil d’audit n’a pas correctement arrêté la commande.
Ce changement a entraîné une déconnexion complète de nos connexions de serveurs entre nos centres de données et Internet. Et cette perte totale de connexion a causé un deuxième problème qui a aggravé les choses.
Selon le billet de blog l’une des tâches effectuées par nos plus petites installations consiste à répondre aux requêtes DNS. Le DNS est le carnet d’adresses d’Internet, permettant aux simples noms Web que nous tapons dans les navigateurs d’être traduits en adresses IP de serveur spécifiques. Ces requêtes de traduction sont traitées par nos serveurs de noms faisant autorité qui occupent eux-mêmes des adresses IP bien connues, qui à leur tour sont annoncées au reste d’Internet via un autre protocole appelé le protocole de passerelle frontière (BGP).
Pour garantir un fonctionnement fiable, nos serveurs DNS désactivent ces publicités BGP s’ils ne peuvent pas eux-mêmes parler à nos centres de données, car cela indique une connexion réseau malsaine.
Lors de la récente panne, l’ensemble du backbone a été retiré du service, ce qui a amené ces emplacements à se déclarer insalubres et à retirer ces publicités BGP. Le résultat final était que nos serveurs DNS sont devenus inaccessibles même s’ils étaient encore opérationnels. Cela empêchait le reste d’Internet de trouver nos serveurs.
Comment rendre nos systèmes plus résilients
Une fois que toutes les plateformes de Facebook étaient en panne, sa capacité à résoudre la panne a été affectée par les outils internes également affectés par la panne. En tant que tel, Facebook a envoyé des ingénieurs dans des centres de données pour obtenir un accès physique au matériel. Même cela, cependant, a pris du temps car « le matériel et les routeurs sont conçus pour être difficiles à modifier même lorsque vous y avez un accès physique ».
Une erreur de notre propre chef
Dans ce cas précis, les efforts qu’il a déployés pour améliorer la sécurité de ses systèmes ont ralenti sa capacité à se remettre de la panne, mais qu’il s’agit d’un compromis qui en vaut la peine
Nous avons beaucoup travaillé pour renforcer nos systèmes afin d’empêcher les accès non autorisés, et il était intéressant de voir comment ce renforcement nous ralentissait alors que nous essayions de nous remettre d’une panne causée non pas par une activité malveillante, mais par une erreur de notre propre chef. Comme celui-ci en vaut la peine une sécurité quotidienne considérablement accrue par rapport à une récupération plus lente après un événement, espérons-le rare, comme celui-ci
Facebook dit qu’il a déjà commencé un « processus d’examen approfondi pour comprendre comment nous pouvons rendre nos systèmes plus résilients ».