Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
090_applicatifs:160dns:20_notions_avancees [le 16/02/2025 à 14:36] – supprimée - modification externe (Date inconnue) 127.0.0.1090_applicatifs:160dns:20_notions_avancees [le 18/03/2025 à 17:36] (Version actuelle) – [Synthèse] prof
Ligne 1: Ligne 1:
  
 +====== 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 [[http://fr.wikipedia.org/wiki/Domaine_de_premier_niveau|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 [[http://fr.wikipedia.org/wiki/Registrar|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 =====
 +{{ :dns:arbodns.png?600 |}}
 +==== Root-Servers ====
 +
 +Nous avons au départ une série de serveurs DNS appelés [[https://root-servers.org/|«root-servers»]]. Nous en trouvons la liste et leur implantation dans le monde sur le site [[http://www.root-servers.org/|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''
 +
 +<html><pre class="code">
 +<v>host -v www.education.gouv.fr 2001:500:2f::f</v>
 +
 +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
 +
 +<span class="hly">;; 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.</span>
 +
 +<span class="hlo">;; 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</span>
 +</pre></html>
 +
 +
 +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'' :
 +
 +<html><pre class="code">
 +<b>host -v www.education.gouv.fr 2001:678:c::1</b>
 +
 +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.
 +</pre></html>
 +Ç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'' ? [[https://www.ate.info/|Voyez par vous-même]].
 +
 +
 +Reprenons donc à partir du root-server:
 +<html><pre class="code">
 +<b>host -v ate-ns01.ate.info. 2001:500:2f::f</b>
 +
 +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
 +
 +<span class="hly">;; 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.</span>
 +
 +<span class="hlo">;; ADDITIONAL SECTION:
 +a0.info.afilias-nst.info. 172800 IN A 199.254.31.1
 +<b>a0.info.afilias-nst.info. 172800 IN AAAA 2001:500:19::1</b>
 +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::1</span>
 +</pre></html>
 +Mais qui est afilias-nst ? Whois nous apprend qu'il s'agit de [[https://fr.wikipedia.org/wiki/Afilias|«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:
 +<html><pre class="code">
 +<b>host -v ate-ns01.ate.info. 2001:500:19::1</b>
 +
 +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
 +
 +<span class="hly">;; AUTHORITY SECTION:
 +ate.info. 3600 IN NS ate-ns06.ate.info.
 +ate.info. 3600 IN NS ate-ns05.ate.info.</span>
 +
 +<span class="hlo">;; ADDITIONAL SECTION:
 +<b>ate-ns05.ate.info. 3600 IN A 185.252.156.7</b>
 +ate-ns06.ate.info. 3600 IN A 185.75.142.253</span>
 +</pre></html>
 +
 +Et finalement:
 +<html><pre class="code">
 +<b>host -v education.gouv.fr 185.252.156.7</b>
 +
 +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:
 +<span class="hly">;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</span>
 +
 +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
 +
 +<span class="hly">;; 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</span>
 +</pre></html>
 +
 +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 [[https://www.cloudflare.com/fr-fr/|«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 [[https://fr.wikipedia.org/wiki/Dig_(programme_informatique)|''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:
 +<html><pre class="code">
 +<b>dig www.education.gouv.fr +trace</b>
 +
 +; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> www.education.gouv.fr +trace
 +<span class="hly">;; 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</span>
 +
 +<span class="hlg">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(<b>g.root-servers.net</b>) in 71 ms</span>
 +
 +<span class="hlo">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(<b>d.nic.fr</b>) in 15 ms</span>
 +
 +<span class="hlw">www.education.gouv.fr. 86400 IN CNAME education.gouv.fr.cdn.cloudflare.net.
 +;; Received 100 bytes from 195.190.27.186#53(<b>ate-ns04.ate.info</b>) in 19 ms</span>
 +</pre></html>
 +Nous 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 TLD ''fr.''
 +  - obtient depuis ''d.nic.fr'' la liste des serveurs qui font autorité pour le domaine ''education.gouv.fr.''
 +  - obtient finalement depuis ''ate-ns04.ate.info'' le «vrai nom» de l'hôte de ''www.education.gouv.fr.'' à savoir ''education.gouv.fr.cdn.cloudflare.net.''
 +
 +Puisque nous en sommes là, reprenons donc:
 +<html><pre class="code">
 +<b>dig education.gouv.fr.cdn.cloudflare.net. +trace</b>
 +
 +; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> education.gouv.fr.cdn.cloudflare.net. +trace
 +;; global options: +cmd
 +<span class="hly">. 250925 IN NS c.root-servers.net.
 +. 250925 IN NS l.root-servers.net.
 +. 250925 IN NS d.root-servers.net.
 +. 250925 IN NS b.root-servers.net.
 +. 250925 IN NS i.root-servers.net.
 +. 250925 IN NS a.root-servers.net.
 +. 250925 IN NS e.root-servers.net.
 +. 250925 IN NS f.root-servers.net.
 +. 250925 IN NS h.root-servers.net.
 +. 250925 IN NS g.root-servers.net.
 +. 250925 IN NS j.root-servers.net.
 +. 250925 IN NS k.root-servers.net.
 +. 250925 IN NS m.root-servers.net.
 +...
 +;; Received 1137 bytes from 192.168.60.200#53(192.168.60.200) in 3 ms</span>
 +
 +<span class="hlg">net. 172800 IN NS e.gtld-servers.net.
 +net. 172800 IN NS m.gtld-servers.net.
 +net. 172800 IN NS f.gtld-servers.net.
 +net. 172800 IN NS b.gtld-servers.net.
 +net. 172800 IN NS j.gtld-servers.net.
 +net. 172800 IN NS i.gtld-servers.net.
 +net. 172800 IN NS d.gtld-servers.net.
 +net. 172800 IN NS g.gtld-servers.net.
 +net. 172800 IN NS h.gtld-servers.net.
 +net. 172800 IN NS c.gtld-servers.net.
 +net. 172800 IN NS a.gtld-servers.net.
 +net. 172800 IN NS k.gtld-servers.net.
 +net. 172800 IN NS l.gtld-servers.net.
 +...
 +;; Received 1227 bytes from 192.112.36.4#53(g.root-servers.net) in 71 ms</span>
 +
 +<span class="hlo">cloudflare.net. 172800 IN NS ns1.cloudflare.net.
 +cloudflare.net. 172800 IN NS ns2.cloudflare.net.
 +cloudflare.net. 172800 IN NS ns3.cloudflare.net.
 +cloudflare.net. 172800 IN NS ns4.cloudflare.net.
 +cloudflare.net. 172800 IN NS ns5.cloudflare.net.
 +...
 +;; Received 522 bytes from 2001:503:eea3::30#53(g.gtld-servers.net) in 23 ms</span>
 +
 +<span class="hlw">education.gouv.fr.cdn.cloudflare.net. 300 IN A 141.101.90.106
 +education.gouv.fr.cdn.cloudflare.net. 300 IN A 141.101.90.104
 +education.gouv.fr.cdn.cloudflare.net. 300 IN A 141.101.90.107
 +education.gouv.fr.cdn.cloudflare.net. 300 IN A 141.101.90.105
 +...
 +;; Received 239 bytes from 173.245.59.31#53(ns1.cloudflare.net) in 15 ms</span>
 +</pre></html>
 +Nous retrouvons les étapes pour arriver à la solution. (J'ai encore 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 TLD ''net.'' (arf!)
 +  - obtient depuis le même ''g.root-servers.net'' la liste des serveurs qui font autorité pour le domaine ''cloudflare.net.''
 +  - obtient finalement depuis ''ns1.cloudflare.net'' les adresses de  «vrai nom» de ''education.gouv.fr.cdn.cloudflare.net.''.
 +Tout a été fait en IPv4, mais c'est la démarche qui était importante.
 +
 +Cet exemple compliqué, tortueux, montre qu'au final, nous obtenons les bonnes adresses, d'une manière ou d'une autre.
Notions avancées: Dernière modification le: 01/01/1970 à 00:00 par