Ceci est une ancienne révision du document !
Table des matières
Notions avancées
L'arborescence
Considérations générales
Par la pratique, nous savons que la partie la plus à droite d'un FQDN est régie par des usages stricts. En effet, cette partie représente un « Top Level Domain », Domaine de premier niveau en français. Il en existe un certain nombre, ils sont définis par l'ICANN (Internet Corporation for Assigned Names and Numbers). Un article bien documenté sur Wikipédia vous donnera plus de détails.
A l'intérieur de chaque TLD, il est possible pour toute entreprise, association, personne morale ou physique, d'enregistrer un nom de domaine. Il suffit d'en faire la demande auprès d'un « registar », bureau d'enregistrement en français. Voir encore Wikipédia pour plus de détails. Le registar vérifiera l'unicité du domaine demandé, les éventuelles conditions d'obtention et se chargera des démarches pour l'enregistrement du domaine. Le cout de l'opération varie beaucoup en fonction du registar choisi.
Nous allons voir l'influence qu'a cette opération sur la structure du DNS.
La structure de DNS
Root-Servers
Nous avons au départ une série de serveurs DNS appelés «root-servers». Nous en trouvons la liste et leur implantation dans le monde sur le site root-servers.org. La carte affichée permet de trouver tous les root-servers présents dans le monde.
As of 2025-03-18T14:54:20Z, the root server system consists of 1907 instances operated by the 12 independent root server operators.
Ces serveurs ne sont pas récursifs, ne savent pas résoudre les FQDN, mais savent dire quels serveurs sont spécialisés dans les divers TLDs.
Serveurs TLD
Ces serveurs DNS ne sont pas non plus récursifs, mais pour un TLD donné, savent dire quels sont les serveurs DNS qui gèrent un domaine appartenant à ce TLD.
C'est à ce niveau que le registar intervient techniquement. Une fois le nom de domaine enregistré, le demandeur doit fournir l'adresse d'au moins un serveur DNS qui saura résoudre les noms dans le domaine en question et ce DNS doit être enregistré sur les serveurs du TLD choisi.
Exercice
Mais une petite expérience vaut mieux qu'un long discours. Nous allons utiliser notre outil host
pour chercher à résoudre le FQDN www.education.gouv.fr
, non plus en posant la question à notre serveur DNS récursif, mais en partant de la source, à savoir un root-server
. Il faut bien en choisir un, prenons le f.root-servers.net
2001:500:2f::f
host -v www.education.gouv.fr 2001:500:2f::f Trying "www.education.gouv.fr" Using domain server: Name: 2001:500:2f::f Address: 2001:500:2f::f#53 Aliases: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9665 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 6 ;; QUESTION SECTION: ;www.education.gouv.fr. IN A ;; AUTHORITY SECTION: fr. 172800 IN NS d.nic.fr. fr. 172800 IN NS f.ext.nic.fr. fr. 172800 IN NS g.ext.nic.fr. ;; ADDITIONAL SECTION: d.nic.fr. 172800 IN A 194.0.9.1 d.nic.fr. 172800 IN AAAA 2001:678:c::1 f.ext.nic.fr. 172800 IN A 194.146.106.46 f.ext.nic.fr. 172800 IN AAAA 2001:67c:1010:11::53 g.ext.nic.fr. 172800 IN A 194.0.36.1 g.ext.nic.fr. 172800 IN AAAA 2001:678:4c::1
Le root-server.net ne répond pas directement, comme nous pouvions nous en douter. En revanche, il nous envoie la liste des serveurs DNS compétants (qui font autorité) dans le TLD fr
. Reposons donc la question au premier de la liste : d.nic.fr
:
host -v www.education.gouv.fr 2001:678:c::1 Trying "www.education.gouv.fr" Using domain server: Name: 2001:678:c::1 Address: 2001:678:c::1#53 Aliases: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9434 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.education.gouv.fr. IN A ;; AUTHORITY SECTION: education.gouv.fr. 3600 IN NS ate-ns03.ate.info. education.gouv.fr. 3600 IN NS ate-ns02.ate.info. education.gouv.fr. 3600 IN NS ate-ns01.ate.info. education.gouv.fr. 3600 IN NS ate-ns04.ate.info.Ça n'est pas encore gagné. Nous n'avons obtenu que les FQDN des serveurs qui font autorité pour
education.gouv.fr.
, mais pas leur adresse. Mais qui est donc ate.info
? Voyez par vous-même.
Reprenons donc à partir du root-server:
host -v ate-ns01.ate.info. 2001:500:2f::f Trying "ate-ns01.ate.info" Using domain server: Name: 2001:500:2f::f Address: 2001:500:2f::f#53 Aliases: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50463 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 12 ;; QUESTION SECTION: ;ate-ns01.ate.info. IN A ;; AUTHORITY SECTION: info. 172800 IN NS a0.info.afilias-nst.info. info. 172800 IN NS a2.info.afilias-nst.info. info. 172800 IN NS b0.info.afilias-nst.org. info. 172800 IN NS b2.info.afilias-nst.org. info. 172800 IN NS c0.info.afilias-nst.info. info. 172800 IN NS d0.info.afilias-nst.org. ;; ADDITIONAL SECTION: a0.info.afilias-nst.info. 172800 IN A 199.254.31.1 a0.info.afilias-nst.info. 172800 IN AAAA 2001:500:19::1 a2.info.afilias-nst.info. 172800 IN A 199.249.113.1 a2.info.afilias-nst.info. 172800 IN AAAA 2001:500:41::1 b0.info.afilias-nst.org. 172800 IN A 199.254.48.1 b0.info.afilias-nst.org. 172800 IN AAAA 2001:500:1a::1 b2.info.afilias-nst.org. 172800 IN A 199.249.121.1 b2.info.afilias-nst.org. 172800 IN AAAA 2001:500:49::1 c0.info.afilias-nst.info. 172800 IN A 199.254.49.1 c0.info.afilias-nst.info. 172800 IN AAAA 2001:500:1b::1 d0.info.afilias-nst.org. 172800 IN A 199.254.50.1 d0.info.afilias-nst.org. 172800 IN AAAA 2001:500:1c::1Mais qui est afilias-nst ? Whois nous apprend qu'il s'agit de «Afilias», le registre des domaines de premier niveau .info, .mobi et .pro et c'est justement le TLD
info.
qui nous intéresse. Rien d'anormal.
Donc:
host -v ate-ns01.ate.info. 2001:500:19::1 Trying "ate-ns01.ate.info" Using domain server: Name: 2001:500:19::1 Address: 2001:500:19::1#53 Aliases: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35679 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;ate-ns01.ate.info. IN A ;; AUTHORITY SECTION: ate.info. 3600 IN NS ate-ns06.ate.info. ate.info. 3600 IN NS ate-ns05.ate.info. ;; ADDITIONAL SECTION: ate-ns05.ate.info. 3600 IN A 185.252.156.7 ate-ns06.ate.info. 3600 IN A 185.75.142.253
Et finalement:
host -v education.gouv.fr 185.252.156.7 Trying "education.gouv.fr" Using domain server: Name: 185.252.156.7 Address: 185.252.156.7#53 Aliases: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29295 ;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;education.gouv.fr. IN A ;; ANSWER SECTION: education.gouv.fr. 86 IN A 141.101.90.104 education.gouv.fr. 86 IN A 141.101.90.106 education.gouv.fr. 86 IN A 141.101.90.107 education.gouv.fr. 86 IN A 141.101.90.105 Received 99 bytes from 185.252.156.7#53 in 27 ms Trying "education.gouv.fr" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9261 ;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;education.gouv.fr. IN AAAA ;; ANSWER SECTION: education.gouv.fr. 205 IN AAAA 2a06:98c1:3200::90:80 education.gouv.fr. 205 IN AAAA 2a06:98c1:3200::90:83 education.gouv.fr. 205 IN AAAA 2a06:98c1:3200::90:82 education.gouv.fr. 205 IN AAAA 2a06:98c1:3200::90:81
Nous venons de faire pas à pas ce que fait très bien tout seul un serveur DNS récursif. Nous retrouvons bien les résultats obtenus précédemment, à ceci près qu'il nous a échappé que www.education.gouv.fr
n'est qu'un alias de education.gouv.fr.cdn.cloudflare.net.
et que nous savons ce que fait l'entreprise «cloudflare».
Lorsque notre DNS a effectué cette recherche, les renseignements qu'il a glanés en effectuant cette recherche, il va les garder en mémoire et s'en resservira pour d'éventuelles résolutions futures. Nous verrons que pour cette raison, les serveurs « qui font autorité » indiquent une durée de validité pour les informations qu'ils donnent. Ainsi, les serveurs récursifs devront rafraîchir le contenu de leur cache en fonction de dette durée de validité.
Synthèse
La commande ''dig'' offre un éventail de possibilités intéressantes pour obtenir des informations sur les recherches DNS. Par exemple, en reprenant l'exercice précédent:
dig www.education.gouv.fr +trace ; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> www.education.gouv.fr +trace ;; global options: +cmd . 252480 IN NS l.root-servers.net. . 252480 IN NS d.root-servers.net. . 252480 IN NS c.root-servers.net. . 252480 IN NS h.root-servers.net. . 252480 IN NS m.root-servers.net. . 252480 IN NS b.root-servers.net. . 252480 IN NS e.root-servers.net. . 252480 IN NS j.root-servers.net. . 252480 IN NS g.root-servers.net. . 252480 IN NS a.root-servers.net. . 252480 IN NS i.root-servers.net. . 252480 IN NS f.root-servers.net. . 252480 IN NS k.root-servers.net. ... ;; Received 1137 bytes from 192.168.60.200#53(192.168.60.200) in 3 ms fr. 172800 IN NS f.ext.nic.fr. fr. 172800 IN NS g.ext.nic.fr. fr. 172800 IN NS d.nic.fr. ... ;; Received 611 bytes from 192.112.36.4#53(g.root-servers.net) in 71 ms education.gouv.fr. 3600 IN NS ate-ns03.ate.info. education.gouv.fr. 3600 IN NS ate-ns01.ate.info. education.gouv.fr. 3600 IN NS ate-ns02.ate.info. education.gouv.fr. 3600 IN NS ate-ns04.ate.info. ... ;; Received 532 bytes from 2001:678:c::1#53(d.nic.fr) in 15 ms www.education.gouv.fr. 86400 IN CNAME education.gouv.fr.cdn.cloudflare.net. ;; Received 100 bytes from 195.190.27.186#53(ate-ns04.ate.info) in 19 msNous retrouvons les étapes pour arriver à la solution. (J'ai retiré les enregistrements des signatures pour alléger la lecture):
- Obtient la liste des root-servers depuis le DNS récursif par défaut.
- obtient depuis
g.root-servers.net
la liste des serveurs qui font autorité pour le TLDfr.
- obtient depuis
d.nic.fr
la liste des serveurs qui font autorité pour le domaineeducation.gouv.fr.
- obtient finalement depuis
ate-ns04.ate.info
le «vrai nom» de l'hôte dewww.education.gouv.fr.
à savoireducation.gouv.fr.cdn.cloudflare.net.