Personne ne retient les numéros
Une cliente tape librairie-martin.example dans son navigateur. Elle ne connaît pas l'adresse IP du site, et elle n'a pas à la connaître.
Pourtant, son ordinateur a besoin de cette adresse pour envoyer sa demande. Un service fait le lien entre les deux, en quelques millisecondes. Quand il tombe en panne, plus aucun site ne s'ouvre, même si internet marche.
À la fin de cette leçon
Remarque
Je peux expliquer comment un nom devient une adresse.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Nom de domaine | le nom lisible d’un site ou d’un service | librairie-martin.example |
| DNS | le service qui traduit un nom en adresse IP | |
| Résolveur | le serveur DNS qui cherche la réponse pour vous | |
| Enregistrement A | une ligne qui relie un nom à une adresse IPv4 | |
| CNAME | une ligne qui dit qu’un nom est un alias d’un autre | |
| TTL | combien de secondes une réponse peut être gardée | 300 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Le DNS est un annuaire
Le DNS fonctionne comme un annuaire. On lui donne un nom, il rend une adresse IP.
Chaque domaine a ses lignes, appelées enregistrements. Un enregistrement A relie un nom à une adresse IPv4. Un enregistrement AAAA fait la même chose pour IPv6. Un enregistrement MX dit quel serveur reçoit le courrier du domaine. Si le nom n'existe pas, la réponse est NXDOMAIN.
Exemple : la zone de la librairie
| Nom | Type | Valeur |
|---|---|---|
| librairie-martin.example | A | 203.0.113.25 |
| www.librairie-martin.example | CNAME | librairie-martin.example |
| librairie-martin.example | MX | mail.librairie-martin.example |
| mail.librairie-martin.example | A | 203.0.113.30 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Essayez : chercher un nom
# Un petit annuaire : chaque nom a son adresse
annuaire = {
"intranet.agence.example": "192.168.1.20",
"librairie-martin.example": "203.0.113.25",
"mail.librairie-martin.example": "203.0.113.30",
}
nom = "librairie-martin.example"
if nom in annuaire:
print(nom, "a pour adresse", annuaire[nom])
else:
print(nom, ": nom inconnu (NXDOMAIN)")
# Remplacez le nom par "boutique-inconnue.example", puis cliquez sur Exécuter.
Le résolveur fait le travail
Votre poste ne cherche pas la réponse lui-même. Il demande à un résolveur, souvent la box ou un serveur de l'entreprise.
Si le résolveur ne connaît pas la réponse, il descend l'arbre des noms. Il interroge d'abord un serveur racine, puis celui de l'extension, puis celui du domaine. Ce dernier fait autorité : c'est lui qui détient la vraie réponse.
Vraie sortie de dig
$ dig www.librairie-martin.example
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41873
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;www.librairie-martin.example. IN A
;; ANSWER SECTION:
www.librairie-martin.example. 3600 IN CNAME librairie-martin.example.
librairie-martin.example. 300 IN A 203.0.113.25
;; Query time: 18 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
Les réponses sont gardées un moment
Le résolveur garde chaque réponse en mémoire, dans un cache. La durée est fixée par le TTL, en secondes.
Le poste a aussi sa propre liste, le fichier hosts. Il la lit avant de demander quoi que ce soit au DNS. Une ligne oubliée dans ce fichier explique parfois qu'un seul poste voie un vieux site.
Essayez : une liste locale de noms
# Un fichier hosts : la liste locale que le poste lit avant de demander au DNS
printf "127.0.0.1 localhost\n192.168.1.20 intranet.agence.example\n192.168.1.30 imprimante.agence.example\n" > hosts
# Quelle adresse a l'intranet ?
grep "intranet" hosts
# Remplacez intranet par imprimante, puis cliquez sur Exécuter.
Une erreur fréquente
Attention
Beaucoup pensent qu'un changement DNS se voit partout tout de suite. En réalité, chaque résolveur garde l'ancienne réponse jusqu'à la fin du TTL. Avec un TTL de 3600, certains clients voient l'ancienne adresse pendant une heure.
Exemple : un déménagement de serveur
| Heure | Ce qui se passe | Adresse vue par un client |
|---|---|---|
| 9 h 00 | Le client demande le site, TTL de 3600 secondes | 203.0.113.25 |
| 9 h 10 | L'équipe change l'enregistrement A | 203.0.113.25, encore en cache |
| 10 h 00 | Le cache expire, le résolveur redemande | 203.0.113.40 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.