Comment Facebook, Whatsapp, Instagram et Messenger ont littéralement disparu d'Internet pendant quelques heures ?

Les hypothèses allaient bon train au lendemain de cet incident pour expliquer la gigantesque panne de Facebook, Whatsapp, Instagram & Messenger.

Attaque d'un groupe de pirates pour une rançon ? Effondrement d'Internet ? Rupture d'un câble transatlantique ? Incendie d'un centre de données de Facebook ? Les hypothèses allaient bon train au lendemain de cet incident pour expliquer la gigantesque panne de Facebook, Whatsapp, Instagram & Messenger.

Mais l’erreur était ailleurs. Les ingénieurs de Facebook ont, en quelque sorte, coupé les ponts numériques permettant d’accéder à leurs serveurs.

Pour comprendre ce qu’il s’est passé, il faut appréhender la façon dont fonctionne le réseau Internet (et pas seulement le Web).

Imaginons un cas simple : l’utilisateur souhaite visionner une vidéo hébergée sur Youtube

  • Il lance l’application Youtube sur son portable.
  • son portable se connecte à son réseau wifi.
  • Le signal passe ensuite par sa box qui l’envoie sur le réseau téléphonique ou la fibre.
  • Ce signal arrive dans le local technique de son quartier et est identifié comme devant passer par son opérateur Internet.
  • L’opérateur Internet voit qu’il souhaite récupérer une vidéo de Youtube et le redirige vers les serveurs de Youtube.
  • Ce faisant, il passe par les câbles transatlantiques pour atteindre enfin les serveurs de Youtube.
  • Youtube récupère le contenu de la vidéo et lui envoie.
  • Le signal de réponse refait le chemin dans l’autre sens.
  • Et la vidéo démarre chez lui… tout ça en quelques millisecondes

Ce cas d’usage illustre certaines caractéristiques du réseau Internet :

  • Il n’y a pas un fil continu qui relie un ordinateur aux serveurs de Youtube mais au contraire, le signal passe d’équipements en équipements, de type de réseau (cuivre, optique, wifi, satellite, …) en type de réseau.
  • Le signal “sait” où il veut aller.
  • Et les équipements intermédiaires “savent” quelle est la route pour amener le signal à bon port.
  • Ça va TRÈS vite…

Comment les équipements savent-ils ?

  • Pour la destination, c’est le rôle des serveurs DNS :

    - Un matériel ne sait pas où se trouve un nom de domaine donné : il connait seulement des chiffres.

    - Pour Youtube comme tout autre nom de domaine, chaque serveur dispose de chiffres qui leur sont exclusifs et qui les identifient. C’est ce que l’on appelle l’adresse IP.

    - Il existe conceptuellement un “gros tableau” mondial qui définit la correspondance entre chaque nom de domaine et son adresse IP et ce tableau : ce sont les entrées DNS.

  • Pour la route, c’est le rôle du protocole BGP :

   - Pour faire simple, chaque matériel sait quels sont les autres matériels avec lesquels il est directement connecté et ceux qui leur sont connectés localement, mais ne sait pas forcément ce qui se passe après.

   - Ainsi, quand un signal arrive avec une destination donnée (une adresse IP donc), le matériel choisit entre 2 solutions :

   - Soit il connait la route par laquelle doit passer le signal et il le fait transiter par cette route.

   - Soit il ne la connait pas et il transfère le signal à un autre matériel en partant du principe que cet autre matériel aura une meilleure connaissance

  • Pour la vitesse, pas de secrets :

il n’y a pas d’intervention humaine, ce sont les matériels qui “discutent” entre eux en permanence pour mettre à jour leurs données, ce sont des systèmes autonomes (Autonomous System). Cette autonomie est essentielle car le réseau Internet est protéiforme et en perpétuelle évolution.

Mais de quoi discutent-ils ?

Essentiellement de leurs informations sur les IPs qu’ils connaissent et des routes à emprunter pour y arriver.

Cette information ne vient pas de nulle part : à la base ce sont les ingénieurs qui initialisent ces informations ou les mettent à jour.

Qu’en est-il de la panne de Facebook :

Une mise à jour “malheureuse” a été faite sur les règles de routage BGP ou pour résumer rapidement : “il n’y a plus de route vers nos serveurs”.

Puis, cette information s’est propagée de matériel en matériel jusqu’à être connue de l’ensemble des matériels du monde entier en conduisant in fine plusieurs milliards d’utilisateurs à être privés de leur(s) réseau(x) favori(s).

Cette mise à jour n’était probablement pas volontaire, elle est sans doute due à un clic malheureux sur un bouton de “remise à zéro des chemins”.

Fun fact : cette disparition des routes vers le serveur a également bloqué les systèmes d’accès  physiques (portes avec carte magnétique) aux machines de Facebook retardant d’autant la résolution de la panne.

Est-ce que cela peut arriver à tout à chacun ?

Directement, non. À moins d’être le responsable informatique d’une société de plusieurs millions d’utilisateurs et d’avoir besoin de gérer des dizaines de machines et de routeurs (c’est le nom du matériel qui sert à guider le signal), il n’est pas nécessaire de se soucier du routage et du protocole BGP pour permettre aux requêtes d’arriver jusqu’à ses serveurs.

C’est le rôle de l’hébergeur.

Pour son site Web, les mises à jour de règles de routage ne sont pas fréquentes donc les erreurs très peu probables.

Qu’est-ce que cela nous apprend ?

Que les DNS et les routeurs sont des éléments extrêmement importants du réseau Internet et qu’un défaut peut mettre à mal même les plus grands sites Web et sociétés.

À ce titre, les accès à la configuration DNS doivent être réservés à des techniciens et ingénieurs - même si, comme indiqué, ils peuvent faire des erreurs.

Toute erreur DNS est critique et se propage progressivement de matériel en matériel, cf la fameuse “propagation DNS” que l’on trouve toujours trop lente…

Que peut-on faire pour éviter que ça se produise pour son site Web ou son application ?

Comme mentionné, c’est à l’origine une erreur humaine qui a conduit au blackout de Facebook. Ce type d’erreur se produira à nouveau, voici donc quelques conseils pour les empêcher ou les circonscrire autant que possible :

  • Limiter les accès à ses règles DNS et machines physiques MAIS en s’assurant néanmoins que plusieurs personnes aient la connaissance ou l’accès en cas d’absence de l’une d’entre elles.
  • Garder une copie de ses données et code sur des serveurs d’hébergeurs différents. Elles permettront de rétablir le service quand les problèmes seront résolus.
  • Travailler avec des professionnels reconnus qui sauront trouver la solution.