docs/src/dns.md

98 lines
4.3 KiB
Markdown

# Le DNS
Le DNS (Domain Name System) est un système de distribution d'informations relatives à des noms de domaines. Il est notamment utilisé pour obtenir des adresses IP à partir d'un nom de domaine, mais peut servir à obtenir n'importe quelle information suffisamment courte à partir d'un nom de domaine.
## Principe de base
Le DNS utilise le modèle client-serveur : le client demande un type de donnée pour un domaine à un serveur, qui répond :
1. le ou les enregistrements correspondants s'il les connait
2. sinon les adresses des serveurs d'une zone DNS qui est plus proche du résultat
3. sinon une erreur
## Le cache
En réalité, un résolveur DNS correct ne fera pas toutes ces requêtes à chaque fois. Il garde les données reçu des serveurs ayant autorité pendant la période de validité indiquée par ceux-ci, cette période s'appelle le TTL (Time-To-Live). Cela permet de ne pas surcharger les serveurs ayant autorité les plus haut placés, qui devraient sans le cache des résolveurs répondre à beaucoup plus de requêtes.
Ce mécanisme signifie toutefois que la modification d'un enregisrement n'est assurée d'être effective partout qu'une fois que la durée du TTL précédent a expiré.
## Le résolveur récursif cachant
## Exemple de processus de résolution
1. Le client DNS demande l'adresse IPv6 de `fr.wikipedia.org.` à un résolveur DNS récursif
2. Le résolveur DNS récursif demande l'adresse de `fr.wikipedia.org.` à `.`, le serveur racine à partir duquel on peut résoudre tous les autres noms.
3. Le serveur racine ne connait pas cette information, mais il sait comment s'en rapprocher : il répond l'adresse du serveur qui gère `org.`.
4. Le résolveur DNS récursif demande l'adresse de `fr.wikipedia.org.` au serveur de `org.`
5. Le serveur qui gère `org.` n'a pas cette information, mais sait comment s'en rapprocher et répond l'adresse du serveur qui gère `wikipedia.org.`.
6. Le résolveur DNS récursif demande l'adresse de `fr.wikipedia.org.` au serveur qui gère `wikipedia.org.`.
7. Cette information se trouve directement dans la zone servie par ce serveur, il lui répond donc l'adresse IPv6 de `fr.wikipedia.org.`.
8. Le résolveur DNS récusif répond finalement l'adresse IPv6 reçue au client DNS qui avait initié la demande.
## Les enregistrements DNS
Un enregistrement DNS est une information diffusée par le DNS, et est composé de plusieurs sous-parties :
Le domaine
: Le domaine concerné par l'enregistrement
TTL (Time-To-Live)
: Temps en secondes pendant lequel l'enregistrement peut être gardé en cache
[Explications détaillées](ttl.md)
Classe
: Toujours IN dans le contexte d'Internet
Type
: Le type de donnée contenue, voir description des types possible après dans la page
Contenu / valeur
: Dépends du type d'enregistrement
Ces informations sont conventionnellement représentées avec une ligne par enregistrement, et chaque sous-partie séparée par des espaces, comme dans l'exemple suivant :
```
mondomain.example. 3600 IN TXT "Ceci est un enregistrement TXT pour mondomaine.example."
mondomain.example. 3600 IN TXT "Ceci est un second enregistrement TXT pour mondomaine.example."
```
## Les enregistrements multiples
Il peut exister plusieurs valeurs pour un même type d'enregistrement et même domaine.
Ainsi, il est probable que le résolveur reçoivent plusieurs adresses de serveurs ayant autorité pour un domaine ou que le client recoive plusieurs adresses IPv6 pour le domaine demandé ; le résolveur ou le client n'utilisera alors généralement qu'une seule de ces adresses, choisie aléatoirement. Si jamais l'adresse ne fonctionne pas, l'une des autres adresses reçues sera essayée, ce qui permet une meilleure résistance aux pannes de serveur.
## Types d'enregistrements
[NS](record-ns.md)
: Serveurs ayant autorité
[A et AAAA](record-ip.md)
: Adresse IP
[TXT](record-txt.md)
: Texte
[CAA](record-caa.md)
: Autorités de certification autorisées à émettre des certificats
[SRV](record-srv.md)
: Adresse d'un service
[MX](record-mx.md)
: Serveur recevant les courriels
[SSHFP](record-sshfp.md)
: Empreinte des clé SSH
[TLSA](record-tlsa.md)
: DANE : Empreinte d'un certificat TLS
[CNAME](record-cname.md)
: Nom canonique
[DNAME](record-dname.md)
: Arbre canonique
[LOC](record-loc.md)
: Coordonnées géographiques