Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Les retards du serveur racine C

Première rédaction de cet article le 22 mai 2024
Dernière mise à jour le 23 mai 2024


On fait souvent remarquer que c'est pendant les pannes qu'on peut le mieux observer comment un système marche. Les perturbations qui affectent le serveur racine du DNS identifié par la lettre C sont donc l'occasion d'apprendre comment fonctionne ce système des serveurs racine.

À la racine du DNS, se trouvent treize serveurs (« serveur » au sens virtuel car cela fait évidemment bien plus que treize machines), chacun identifié par une lettre de A à M, et nommés dans le domaine root-servers.net. Un programme comme check-soa permet de les voir en action (l'option -i permet d'avoir le temps de réponse), ici le 22 mai à 08:47:24 UTC :

% check-soa -i .
a.root-servers.net.
	2001:503:ba3e::2:30: OK: 2024052200 (14 ms)
	198.41.0.4: OK: 2024052200 (15 ms)
b.root-servers.net.
	2801:1b8:10::b: OK: 2024052200 (14 ms)
	170.247.170.2: OK: 2024052200 (14 ms)
c.root-servers.net.
	2001:500:2::c: OK: 2024052101 (25 ms)
	192.33.4.12: OK: 2024052101 (25 ms)
d.root-servers.net.
	2001:500:2d::d: OK: 2024052200 (4 ms)
	199.7.91.13: OK: 2024052200 (5 ms)
e.root-servers.net.
	192.203.230.10: OK: 2024052200 (6 ms)
	2001:500:a8::e: OK: 2024052200 (6 ms)
f.root-servers.net.
	2001:500:2f::f: OK: 2024052200 (6 ms)
	192.5.5.241: OK: 2024052200 (6 ms)
g.root-servers.net.
	2001:500:12::d0d: OK: 2024052200 (52 ms)
	192.112.36.4: OK: 2024052200 (65 ms)
h.root-servers.net.
	2001:500:1::53: OK: 2024052200 (11 ms)
	198.97.190.53: OK: 2024052200 (14 ms)
i.root-servers.net.
	192.36.148.17: OK: 2024052200 (10 ms)
	2001:7fe::53: OK: 2024052200 (10 ms)
j.root-servers.net.
	2001:503:c27::2:30: OK: 2024052200 (15 ms)
	192.58.128.30: OK: 2024052200 (14 ms)
k.root-servers.net.
	2001:7fd::1: OK: 2024052200 (8 ms)
	193.0.14.129: OK: 2024052200 (14 ms)
l.root-servers.net.
	199.7.83.42: OK: 2024052200 (15 ms)
	2001:500:9f::42: OK: 2024052200 (14 ms)
m.root-servers.net.
	2001:dc3::35: OK: 2024052200 (4 ms)
	202.12.27.33: OK: 2024052200 (5 ms)
  

(Le point désigne la racine.)

Avez-vous remarqué le problème ? L'un des serveurs, C.root-servers.net, est en retard. Le numéro de série dans l'enregistrement SOA est 2024052101 alors que tous les autres sont à 2024052200. Dans le cas de la racine (c'est une convention courante mais pas du tout obligatoire), le numéro de série indique la date de modification, on voit donc qu'il est resté à hier, 21 mai.

C'était pire avant : du 18 au 21 mai, ce serveur est resté en 2024051801, ignorant donc tout changement qui aurait pu avoir lieu dans le contenu de la racine (heureusement, il n'y en a eu aucun pendant cette période) :

% date -u       
Tue 21 May 20:03:11 UTC 2024

% check-soa -i .
a.root-servers.net.
	198.41.0.4: OK: 2024052101 (23 ms)
	2001:503:ba3e::2:30: OK: 2024052101 (96 ms)
b.root-servers.net.
	170.247.170.2: OK: 2024052101 (23 ms)
	2801:1b8:10::b: OK: 2024052101 (84 ms)
c.root-servers.net.
	192.33.4.12: OK: 2024051801 (22 ms)
	2001:500:2::c: OK: 2024051801 (22 ms)
d.root-servers.net.
	199.7.91.13: OK: 2024052101 (16 ms)
	2001:500:2d::d: OK: 2024052101 (16 ms)
e.root-servers.net.
	192.203.230.10: OK: 2024052101 (16 ms)
	2001:500:a8::e: OK: 2024052101 (16 ms)
f.root-servers.net.
	192.5.5.241: OK: 2024052101 (22 ms)
	2001:500:2f::f: OK: 2024052101 (96 ms)
g.root-servers.net.
	2001:500:12::d0d: OK: 2024052101 (54 ms)
	192.112.36.4: OK: 2024052101 (66 ms)
h.root-servers.net.
	198.97.190.53: OK: 2024052101 (23 ms)
	2001:500:1::53: OK: 2024052101 (96 ms)
i.root-servers.net.
	192.36.148.17: OK: 2024052101 (23 ms)
	2001:7fe::53: OK: 2024052101 (23 ms)
j.root-servers.net.
	192.58.128.30: OK: 2024052101 (23 ms)
	2001:503:c27::2:30: OK: 2024052101 (96 ms)
k.root-servers.net.
	2001:7fd::1: OK: 2024052101 (23 ms)
	193.0.14.129: OK: 2024052101 (22 ms)
l.root-servers.net.
	199.7.83.42: OK: 2024052101 (16 ms)
	2001:500:9f::42: OK: 2024052101 (22 ms)
m.root-servers.net.
	2001:dc3::35: OK: 2024052101 (16 ms)
	202.12.27.33: OK: 2024052101 (16 ms)
  

Le serveur C est anycasté donc le test ci-dessus laisse ouverte la possibilité d'un problème spécifique à l'instance à laquelle je parle. Mais une mesure faite avec les sondes RIPE Atlas montre que non, le problème touche presque toutes les instances :

% blaeu-resolve --requested 200 --nsid --type SOA --nameserver c.root-servers.net .
Nameserver c.root-servers.net
[NSID: lax1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 10 occurrences 
[NSID: fra1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 37 occurrences 
[NSID: mad1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 5 occurrences 
[NSID: rio1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 2 occurrences 
[NSID: fra1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 37 occurrences 
[NSID: iad1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 10 occurrences 
[NSID: lax1b.c.root-servers.org; … 2024052101 1800 900 604800 86400] : 8 occurrences 
[NSID: sin1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 3 occurrences 
[NSID: par1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 20 occurrences 
[NSID: par1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 20 occurrences 
[TIMEOUT] : 9 occurrences 
[NSID: mad1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 1 occurrences 
[NSID: iad1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 7 occurrences 
[NSID: sin1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 1 occurrences 
[NSID: bts1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 4 occurrences 
[NSID: ord1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 9 occurrences 
[NSID: jfk1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 1 occurrences 
[NSID: bts1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 6 occurrences 
[NSID: ord1b.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 3 occurrences 
[NSID: jfk1a.c.root-servers.org; … 2024051801 1800 900 604800 86400] : 2 occurrences 
[… 2024052100 1800 900 604800 86400] : 1 occurrences 
Test #72103734 done at 2024-05-21T20:15:03Z
  

Quelles sont les conséquences pratiques pour les utilisateurices ? Si leur résolveur interroge C (ce qui dépend d'un certain nombre de facteurs, dont le temps de réponse des différents serveurs faisant autorité), ledit résolveur aura des informations peut-être dépassées. Ainsi, ce matin du 22 mai, on voit que le TLD .int a publié hier un nouvel enregistrement DS (dans le cadre de sa migration vers la cryptographie en courbes elliptiques) mais le serveur C ne le voit toujours pas :

% dig +short  @a.root-servers.net int DS
59895 13 2 10C789F286599316D3A74C2C513434C3F8A33B9238976D5DE2A178E5 4DA353F3
27433 7 2 5864812D4DF2A4A455D905AF311389F479AFCD96FD369060941C7E17 0B40CA4F

% dig +short  @c.root-servers.net int DS
27433 7 2 5864812D4DF2A4A455D905AF311389F479AFCD96FD369060941C7E17 0B40CA4F
  

Un problème identique se pose pour .gov qui planifiait la même transition vers ECDSA et a dû la retarder. Cela sera encore pire si un TLD était redélégué ou si les signatures DNSSEC servies par C finissaient par expirer.

Que peut-on faire ? Pas grand'chose. Le gestionnaire du serveur C, Cogent va peut-être réparer mais on ne sait pas quand et on n'a pas d'informations. Techniquement, il serait possible de retirer C de la liste des serveurs racine ou bien de confier C à un autre opérateur, mais personne n'a le droit et/ou l'autorité de supprimer ou de réaffecter un serveur racine. Contrairement à ce qu'écrivent les journalistes, l'ICANN n'est pas régulateur du DNS, encore moins de l'Internet et ne peut donc pas agir. (La liste des serveurs et de leurs opérateurs est disponible en ligne.)

Le problème a finalement été réparé vers le 23 mai, d'abord sans explications et sans communication de la part de Cogent, puis finalement par un court texte sur leur site Web : « 2024‑05‑23 - On May 21 at 15:30 UTC the c-root team at Cogent Communications was informed that the root zone as served by c-root had ceased to track changes from the root zone publication server after May 18. Analysis showed this to have been caused by an unrelated routing policy change whose side effect was to silence the relevant monitoring systems. No production DNS queries went unanswered by c-root as a result of this outage, and the only impact was on root zone freshness. Root zone freshness as served by c-root was fully restored on May 22 at 16:00 UTC. ».

À noter qu'à peu près au même moment (mais nous ne savons pas s'il s'agit d'une coïncidence ou bien si les deux problèmes sont liés), le site Web d'information sur le serveur C, https://c.root-servers.org/ (notez le .org alors que le serveur DNS est en .net) avait cessé de fonctionner vers le 17 mai. Il utilisait l'adresse IP 38.230.3.4, allouée à Orange Côte d'Ivoire et, depuis le 17 mai, annoncée par eux dans BGP.

% whois 38.230.3.4
...
Found a referral to rwhois.cogentco.com:4321.

%rwhois V-1.5:0010b0:00 rwhois.cogentco.com (CGNT rwhoisd 1.2.0)
network:ID:NET4-26E6000011
network:Network-Name:NET4-26E6000011
network:IP-Network:38.230.0.0/17
network:Org-Name:Orange Cote d'Ivoire
network:Street-Address:CABLE SAT3 CLS, RUA AMÉLIA FRADE
  network:City:SESIMBRA
network:Country:PT
network:Postal-Code:2970 – 712
network:Tech-Contact:ZC108-ARIN
network:Updated:2024-05-10 16:33:20
  

Orange Côte d'Ivoire est un client de Cogent et, manifestement, Cogent avait délégué ce préfixe à son client sans remarquer qu'ils l'utilisaient pour C.root-servers.org. Ou bien ils ne s'étaient pas aperçus du problème car, en interne, cela marchait, en raison d'une route plus spécifique. (Quand j'ai signalé le problème à Cogent, l'employé avait répondu que ça marchait pour lui. De manière très peu professionnelle, il testait le service depuis sa machine, sur le réseau interne de son employeur.)

Il n'y avait donc aucun détournement BGP, contrairement à ce qui a parfois été écrit, l'annonce d'Orange Côte d'Ivoire est parfaitement légitime. Le service Web a désormais une autre adresse IP et qui fonctionne, ce qui permet de voir le site et de constater qu'il n'y avait aucune information publiée avant le 23 mai : cogent-no-info-c-root.png

(Merci à Bert Hubert pour avoir détecté le problème de synchronisation du serveur DNS racine C, à Jan-Piet Mens pour avoir détecté le problème avec le serveur Web C.root-servers.org et à Alarig Le Lay pour ses explications sur le routage dans Cogent.)

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)