Lundi, Facebook a été complètement mis hors ligne, entraînant avec lui Instagram et WhatsApp (sans parler de quelques autres sites Web). Beaucoup n'ont pas tardé à dire que l'incident était lié au BGP, ou Border Gateway Protocol, citant des sources internes à Facebook, l'analyse du trafic et l'intuition selon laquelle “c'est toujours DNS ou BGP”. Facebook est en train de remonter, mais tout cela soulève la question :
Qu'est-ce que BGP ?
À un niveau très basique, BGP est l'un des systèmes qu'Internet utilise pour amener votre trafic là où il doit aller le plus rapidement possible. Parce qu'il existe des tonnes de fournisseurs de services Internet, de routeurs principaux et de serveurs responsables de la transmission de vos données à, disons, Facebook, il existe une tonne d'itinéraires différents que vos paquets pourraient finir par emprunter. Le travail de BGP est de leur montrer le chemin et de s'assurer que c'est le meilleur itinéraire.
J'ai entendu BGP décrit comme un système de bureaux de poste, un contrôleur aérien, etc., mais je pense que mon explication préférée était celle qui le comparait à une carte. Imaginez BGP comme un groupe de personnes créant et mettant à jour des cartes qui vous montrent comment accéder à YouTube ou Facebook.
BGP est comme une carte indiquant à votre ordinateur quels ponts il doit traverser pour accéder à Facebook
En ce qui concerne BGP, Internet est divisé en grands réseaux, appelés systèmes autonomes. Vous pouvez en quelque sorte les imaginer comme des nations insulaires – ce sont des réseaux contrôlés par une seule entité, qui peut être un FAI, comme Comcast, une entreprise, comme Facebook, ou une autre grande organisation comme un gouvernement ou une grande université. Il serait extrêmement difficile de construire des ponts reliant chaque île à toutes les autres, c'est donc BGP qui est chargé de vous dire quelles îles (ou systèmes autonomes) vous devez traverser pour arriver à votre destination.
Étant donné qu'Internet change constamment, les cartes doivent être mises à jour – vous ne voulez pas que votre FAI vous conduise sur une vieille route qui ne va plus à Google. Parce que ce serait une entreprise énorme de cartographier l'ensemble d'Internet à tout moment, les systèmes autonomes partagent leurs cartes. Ils parleront occasionnellement à leurs voisins insulaires pour voir et copier toutes les mises à jour qu'ils ont apportées à leurs cartes.
Tournez à gauche dans la rivière
En utilisant les cartes comme cadre, il est facile d'imaginer comment les choses peuvent mal tourner. À l'époque où les consommateurs ont eu accès au GPS pour la première fois, il y avait toujours des blagues sur le fait que vous conduisiez du haut d'une falaise ou au milieu du désert. La même chose peut arriver avec BGP – si quelqu'un fait une erreur, il peut finir par diriger le trafic quelque part où il n'est pas censé aller, ce qui causera des problèmes. Si elle n'est pas détectée, cette erreur se retrouvera sur la carte de tout le monde. Il y a d'autres façons dont cela peut mal tourner, mais nous y reviendrons un peu.
Ouais, ouais, des cartes. Donnez-moi un exemple.
Bien sûr! C'est considérablement simplifié, mais imaginez que vous vouliez vous connecter à un site Web d'actualités technologiques imaginaire appelé Convergence. Convergence utilise le FAI NetSend et vous utilisez DecadeConnect. Dans cet exemple, DecadeConnect et NetSend ne peuvent pas se parler directement, mais votre FAI peut parler à Border Communications, qui peut parler à Form, qui peut parler à NetSend. Si c'est la seule route, alors BGP s'assurera que vous et Convergence pouvez communiquer à travers elle. Mais si alternativement, DecadeConnect et NetSend étaient connectés à ThirdLevel, BGP choisirait probablement d'acheminer votre trafic à travers celui-ci, car il s'agit d'un saut plus court.
D'accord, donc BGP est comme des cartes qui détaillent tous les chemins les plus rapides pour vous rendre à un site Web ?
Droit! Malheureusement, cela peut devenir encore plus compliqué car le plus court n'est pas toujours égal au meilleur. Il existe de nombreuses raisons pour lesquelles un algorithme de routage choisirait un chemin plutôt qu'un autre – le coût peut également être un facteur, certains réseaux facturant d'autres s'ils souhaitent les inclure dans leurs itinéraires.
Cartographier des routes immuables est difficile ; imaginez cartographier Internet
De plus, les cartes sont super délicates! J'ai découvert cela récemment en essayant de planifier un voyage où les routes existaient sur une carte et pas sur une autre ou étaient différentes entre les cartes. Une route avait même trois noms différents sur trois cartes. Si c'est si difficile à cerner pour une “ville” qui a cinq routes, imaginez ce que c'est que d'essayer de connecter l'ensemble de l'Internet ensemble. Les vraies routes ne changent pas si souvent, mais les sites Web peuvent se déplacer d'un pays à l'autre ou changer, ajouter ou soustraire des fournisseurs de services, et Internet n'a qu'à s'en occuper.
Je me souviens de quelque chose comme ça dans ma classe d'algorithmes et de structures de données — j'essayais de créer des algos pour trouver le chemin le plus court.
Je vais vous croire sur parole. . J'ai abandonné dès que j'ai entendu parler des graphiques.
Mais Facebook ne l'a pas fait ! En fait, il a construit son propre système BGP, ce qui lui permet de faire des « mises à jour incrémentielles rapides », selon un article présenté plus tôt cette année. Cela dit, le système décrit par la société est destiné à la communication au sein des centres de données – à ce stade, il est difficile de dire ce qui a causé les problèmes de Facebook lundi, et il faudrait quelqu'un de plus intelligent que moi pour dire si les communications du centre de données de Facebook pourraient causer cela. genre de problème. Le journaliste en cybersécurité Bryan Krebs affirme que la panne a été causée par une “mise à jour de routine BGP”.
La mise à jour technique d'InFacebook indique que le problème est causé par “des changements de configuration sur les routeurs principaux qui coordonnent le trafic réseau entre nos centres de données”. Cela a ensuite conduit à un “effet en cascade sur la façon dont les centres de données [Facebook] communiquent, arrêtant [ses] services”. Au moins à mes yeux, cela se lit comme si le problème était que Facebook communiquait en lui-même, pas avec le monde extérieur (bien que cela puisse évidemment provoquer une panne mondiale, compte tenu de la part de sa propre pile de réseau que Facebook contrôle).
Qu'est-ce que le DNS à voir avec tout ça ?
Pour emprunter une explication à Cloudflare : DNS vous indique où vous allez et BGP vous indique comment vous y rendre. Le DNS est la façon dont les ordinateurs savent à quelle adresse IP se trouve un site Web ou une autre ressource, mais cette connaissance en elle-même n'est pas utile – si vous demandez à votre ami où se trouve sa maison, vous aurez probablement toujours besoin d'un GPS pour vous y rendre .
Cloudflare a également un excellent aperçu technique de la façon dont les erreurs BGP peuvent également gâcher les requêtes DNS – l'article concerne spécifiquement l'incident Facebook de lundi, il vaut donc la peine d'être lu si vous cherchez une explication de ce à quoi cela ressemblait du point de vue d'un système autonome .
Qu'est-ce qui peut mal tourner avec BGP ?
Plusieurs choses. Selon Cloudflare, deux incidents notables incluent un FAI turc disant accidentellement à l'ensemble d'Internet d'acheminer son trafic vers son service en 2004 et un FAI pakistanais interdisant accidentellement YouTube dans le monde entier après avoir essayé de le faire uniquement pour ses utilisateurs. En raison de la capacité de BGP à se propager d'un système autonome à un système autonome (ce qui, pour rappel, est l'une des choses qui le rend si utile), un groupe commettant une erreur peut cascader.
BGP est parfois appelé le conduit bande d'Internet
La propriété d'un groupe peut également causer des problèmes – en 2018, des pirates ont pu détourner des requêtes vers le DNS d'Amazon et voler des milliers de dollars dans Ethereum en compromettant les serveurs BGP d'un FAI distinct. Amazon n'était pas celui piraté, mais le trafic qui lui était destiné s'est retrouvé ailleurs.
Ou, vous pouvez le gâcher et supprimer l'intégralité de votre service sur Internet avec une mauvaise mise à jour BGP. BGP est affectueusement appelé le ruban adhésif d'Internet, mais aucun adhésif n'est parfait.
Alors, qu'est-il arrivé à Facebook ?
Il semble que les serveurs de Facebook, pour une raison quelconque, aient dit à tout le monde de les retirer de leurs cartes. Facebook a publié un rapport initial, mais il est léger sur les détails – il est possible que Facebook envisage de publier une explication plus approfondie plus tard, expliquant pourquoi les changements ont été apportés, mais c'est peut-être aussi la dernière dont nous entendons parler (au moins officiellement) .
Cependant, le CTO de Cloudflare rapporte que le service a vu une tonne de mises à jour BGP de Facebook (dont la plupart étaient des retraits d'itinéraires ou des lignes d'effacement sur la carte menant à Facebook) juste avant la tombée de la nuit. L'un des responsables techniques de Fastly a tweeté que Facebook a cessé de fournir des itinéraires vers Fastly lorsqu'il s'est déconnecté, et KrebsOnSecurity soutient l'idée qu'il s'agissait d'une mise à jour du BGP de Facebook qui a désactivé ses services.
Je recommanderais l'explication de Cloudflare si vous voulez des détails techniques détaillés.
Si BGP était le problème, comment Facebook le résout-il ?
Étant donné que la panne a duré des heures, la réponse semble être « pas facilement ». Facebook devait s'assurer qu'il faisait la publicité des bons enregistrements et que ces enregistrements étaient récupérés par Internet en général. En d'autres termes, il devait s'assurer que ses cartes étaient correctes et que tout le monde pouvait les voir.
C'est plus facile à dire qu'à faire, cependant. Des rapports ont fait état d'employés de Facebook exclus des portes protégées par un badge et d'employés ayant du mal à communiquer. Dans des situations comme celles-ci, vous devez non seulement déterminer qui a les connaissances nécessaires pour résoudre le problème et qui a les autorisations pour résoudre le problème, mais aussi comment connecter ces personnes. Et lorsque toute votre entreprise est au bord de l'eau, ce n'est pas une tâche facile. The Verge a reçu des rapports d'ingénieurs envoyés physiquement dans un centre de données Facebook en Californie pour tenter de résoudre le problème.
Connexes
Verrouillé et totalement indisponible : Facebook se démène pour résoudre une panne massive
Web3 résoudrait-il ce problème ?
Arrêtez-le. Je vais pleurer.
Mais pour répondre rapidement à la question, probablement pas – même si Facebook sautait dans le train décentralisé, il faudrait quand même un protocole vous indiquant où trouver ses ressources. Nous avons déjà vu qu'il est possible de mal configurer ou de gâcher les contrats de blockchain, donc je serais un peu méfiant envers quiconque dit qu'un contrat et un Internet basé sur la blockchain seraient à l'abri de ce genre de problème.
< p id="7sIC21">Bien sûr, le timing de cette panne était un peu louche étant donné toutes les mauvaises nouvelles de Facebook, hein ?
Bien, donc évidemment, le fait que tout cela s'est produit alors qu'un dénonciateur passait à la télévision et que la diffusion du linge sale de Facebook permet de trouver très facilement des explications alternatives. Mais il est tout aussi possible qu'il s'agisse d'une erreur innocente commise par une personne (très, très malheureuse) de l'équipe informatique de Facebook.
Pour ce que ça vaut, c'est l'explication de Facebook. Il rejette la faute sur un « changement de configuration défectueux » qu'il a effectué, et non sur des piratages sournois.
Mise à jour le 4 octobre, 22h44 HE : Mise à jour avec informations de la publication d'ingénierie officielle de Facebook.