Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Facebook joue avec BGP

Première rédaction de cet article le 31 août 2010


Comme vous avez pu le voir, Facebook a été en panne pour beaucoup d'utilisateurs (surtout en Europe, il semble). La cause est un problème BGP.

De à peu près 1200 UTC à environ 1345, Facebook a été injoignable depuis beaucoup de réseaux. Les curieux qui ont fait un traceroute auront vu quelque chose du genre :

% traceroute www.facebook.com
traceroute to www.facebook.com (69.63.189.31), 64 hops max, 40 byte packets
 1  217.70.191.251 (217.70.191.251)  0 ms  0 ms  0 ms
 2  vl2.core4-d.gandi.net (217.70.176.132)  0 ms  0 ms  0 ms
 3  po88-jd4.core1-j.gandi.net (217.70.176.225)  1 ms  1 ms  1 ms
 4  po88-jd4.core1-j.gandi.net (217.70.176.225)  1 ms !H * *

montrant que le premier routeur BGP sans route par défaut n'avait pas de route vers le fameux réseau social... En effet, regarder quelques looking glasses (trouvés sur l'excellent http://www.traceroute.org/) confirme : « show ip bgp 69.63.190.14 \ Network not in table » ou des messages similaires. Si on a un routeur qui reçoit toute la table de routage de l'Internet, on peut voir que le réseau de Facebook apparait et disparait (ici un Juniper) :

admin@m7i-1-XXXX> show route 69.63.190.14

admin@m7i-1-XXXX>

...
admin@m7i-1-XXXX> show route 69.63.190.14

inet.0: 325150 destinations, 325150 routes (325081 active, 0 holddown, 69 hidden)
Restart Complete
+ = Active Route, - = Last Active, * = Both

69.63.184.0/21     *[BGP/170] 00:00:43, MED 0, localpref 100
                     AS path: 8220 8220 32934 I
                   > to X.Y.14.225 via fe-0/1/3.0

Résultat de ce yo-yo, les routeurs finissent par refuser automatiquement les annonces Facebook (« suppressed due to dampening »). Même lorsque Facebook a réparé sa configuration BGP, le problème a subsisté un certain temps. Voici un exemple sur le looking glass de PCH :

Looking Glass Results - route-collector.fra.pch.net
Date: Tue Aug 31 12:46:04 2010 UTC

Query:
Argument(s): 69.63.190.18

BGP routing table entry for 69.63.184.0/21
Paths: (2 available, no best path)
  Not advertised to any peer
  32934, (suppressed due to dampening)
    80.81.194.40 from 80.81.194.40 (204.15.20.1)
      Origin IGP, metric 0, localpref 100, valid, external
      Community: 3856:54800
      Dampinfo: penalty 5023, flapped 64 times in 01:09:18, reuse in 00:41:09
      Last update: Tue Aug 31 12:46:01 2010

  32934, (suppressed due to dampening)
    80.81.195.40 from 80.81.195.40 (204.15.23.109)
      Origin IGP, metric 0, localpref 100, valid, external
      Community: 3856:54800
      Dampinfo: penalty 4030, flapped 63 times in 01:09:18, reuse in 00:36:23
      Last update: Tue Aug 31 12:45:35 2010

Comme la configuration DNS de Facebook est très fragile (les serveurs de noms sont tous sur le même réseau), le DNS lui-même a des problèmes et, parfois, on ne peut pas résoudre le nom :

% traceroute www.facebook.com
traceroute: unknown host www.facebook.com

En effet, aucun serveur ne répond :

%  check_soa www.facebook.com 
There was no response from glb01.ash1.tfbnw.net
There was no response from glb01.ams1.tfbnw.net
There was no response from glb01.dfw1.tfbnw.net
...

Question DNS, notons aussi que les serveurs de facebook.com envoient des adresses IP différentes selon le demandeur. Cela explique en partie que Facebook ne soit pas en panne pour tout le monde (en Europe, www.facebook.com semble dans 69.63.184.0/21 et aux États-Unis dans 66.220.152.0/21). On peut avoir une bonne vision de la configuration BGP de Facebook en http://bgp.he.net/AS32934.

Depuis, Facebook a fait une autre jolie panne, le 23 septembre. Elle n'a apparemment aucun lien avec BGP cette fois (ni avec le DNS, quoique aient dit certains ignorants), et a été (modérément) documentée par Facebook. Une autre grande panne, bien due au DNS, celle-ci, a eu lieu le 7 mars 2012 (voyez un amusant test DNS pendant la panne, notez bien qu'il y a deux adresses IP privées dans la liste).

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)