Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Répartition des serveurs de noms d'une zone dans plusieurs AS

Première rédaction de cet article le 27 mars 2014


L'accès aux services sur l'Internet commence presque toujours par une requête DNS. Si ce dernier est en panne, il n'y a quasiment pas d'usage de l'Internet possible (sauf si vous vous contentez de traceroute -n...) D'où l'importance de la notion de résilience du DNS. Contrairement à ce qu'on lit parfois, le DNS n'est pas juste une application parmi d'autres : c'est une infrastructure de l'Internet, presque aussi vitale que BGP. La résilience est un phénomène complexe, pas trivial à mesurer. Dans ce très court article, je me concentre sur un seul aspect, la variété des AS parmi les serveurs de noms d'une zone DNS.

Pourquoi est-ce que cette variété des AS est un critère pertinent pour l'évaluation de la résilience ? Parce que certains pannes affectent un site physique (c'est le cas des incendies, par exemple), certaines affectent telle ou telle marque de serveurs de noms ou de routeurs (pensez à cisco-sa-20140326-ipv6) mais d'autres frappent un AS entier. Ce fut le cas de la panne CloudFlare de février 2013 ou de celle d'OVH en juillet 2013, à cause d'OSPF. C'est pour cette raison que ce critère (diversité des AS) figure parmi les métriques de l'Observatoire sur la résilience de l’Internet français. Vous trouverez tous les détails dans ce rapport, mon but est différent, il s'agit d'explorer des zones individuelles.

Bon, OK, toutes choses égales par ailleurs, c'est mieux de répartir les serveurs de noms faisant autorité pour une zone vers plusieurs AS. Mais comment le vérifier ? Si vous avez un flux BGP complet et les outils pour l'analyser, vous pouvez partir de là (regarder les annonces BGP et noter l'AS d'origine). Et si ce n'est pas le cas ? Eh bien, l'excellent service RouteViews exporte, à partir de flux BGP reçus, cette information sur l'AS d'origine d'une route, et la publie notamment dans le DNS, via la zone asn.routeviews.org, qui met en correspondance une adresse IP (IPv4 seulement, hélas, je suis preneur d'informations sur une service équivalent pour IPv6) et le numéro d'AS d'origine :

% dig +short TXT 1.9.0.194.asn.routeviews.org
"2484" "194.0.9.0" "24"

La commande ci-dessus a permis de voir que l'adresse IP 194.0.9.1 était annoncée (sous forme du préfixe 194.0.9.0/24) par l'AS 2484.

On peut alors construire un petit script shell qui va prendre un nom de zone DNS et afficher les AS d'origine de tous les serveurs. Bien sûr, cela ne donnera qu'un aspect de la résilience (notion bien plus riche que juste la variété des AS) et les résultats de ce script doivent être interprétés avec raison. Mais écrire un shell script est un remède souverain lorsqu'on est déprimé ou énervé donc je l'ai fait et il est disponible, fin des avertissements.

Voici un exemple sur le domaine de ce blog. L'outil affiche, pour chaque adresse IPv4 d'un serveur de la zone, l'AS d'origine :

% asns.sh bortzmeyer.org
93.19.226.142: "15557"
79.143.243.129: "29608"
204.62.14.153: "46636"
178.20.71.2: "29608"
106.186.29.14: "2516"
217.174.201.33: "16128"
217.70.190.232: "29169"
83.169.77.115: "8784"
95.130.11.7: "196689"

On voit une grande variété d'AS (y compris un sur 32 bits, cf. RFC 6793). De ce strict point de vue, la zone a des chances d'être robuste.

Essayons avec une autre zone :

% asns.sh  icann.org
199.43.132.53: "42"
199.43.133.53: "1280"
199.43.134.53: "12041"
199.4.138.53: "26710"

Également une bonne variété, on y trouve aussi le fameux AS 42. Et sur un grand site de e-commerce ?

% asns.sh amazon.com
204.74.114.1: "12008"
208.78.70.31: "33517"
204.74.115.1: "12008"
208.78.71.31: "33517"
204.13.250.31: "33517"
204.13.251.31: "33517"
204.74.108.1: "12008"
204.74.109.1: "12008"
199.7.68.1: "12008"
199.7.69.1: "12008"

Celui-ci n'a que deux hébergeurs DNS en tout, donc deux AS seulement.

Un cas plus délicat est fourni par .com :

% asns.sh com
192.54.112.30: "36623"
192.55.83.30: "36618"
192.35.51.30: "36620"
192.33.14.30: "26415"
192.43.172.30: "36632"
192.31.80.30: "36617"
192.5.6.30: "36621"
192.48.79.30: "36626"
192.12.94.30: "36627"
192.42.93.30: "36624"
192.26.92.30: "36619"
192.52.178.30: "36622"
192.41.162.30: "36628"

Il y a beaucoup d'AS mais c'est en fait le même fournisseur, Verisign, qui met un AS par serveur, suivant le RFC 6382.

Et des gens qui ont choisi de mettre tous leurs œufs dans le même panier ? On en trouve :

% asns.sh  leboncoin.fr
213.186.33.102: "16276"
213.251.128.136: "16276"
% asns.sh  laposte.net
195.234.36.4: "35676"
178.213.67.14: "35676"
195.234.36.5: "35676"
178.213.66.14: "35676"

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)