Présentation
DNS (Domain Name Service) est un protocole qui permet de faire de la résolution de nom. Autrement dit, ce protocole permet de faire la correspondance entre un nom de domaine et une ou plusieurs adresses IP (et inversement). Pour la petite histoire, ce protocole fonctionne par défaut avec le port 53 en UDP. En effet, il est beaucoup plus facile de retenir son nom de domaine (par exemple www.google.com) plutôt que l’adresse IP archaïque
Un enregistrement DNS, contient différents types d’informations à propos d’un domaine donné (pour les connaisseurs : A,MX,CNAME…). La liste de ces informations sont disponibles ici : en.wikipedia.org/wiki/List_of_DNS_record_types. Nous nous contenterons ici de parler uniquement de la résolution simple de nom.
Fonctionnement
Imaginons que vous choisissiez de vous rendre sur : http://www.google.com/ votre navigateur web va implicitement contacter votre serveur DNS, la quête de l’adresse IP de google.com va alors commencer
Hiérarchie des serveurs DNS
Il existe une certaine hiérarchie au sein de la hiérarchie des serveurs DNS :
- Au niveau root : les serveurs maitres (ou serveurs root) qui sont au nombre de 13 (comprenez au nombre de 13 clusters de serveurs :p). Ces serveurs DNS constituent les maitres des noms de domaine sans eux… plus de résolutions de noms
. Ils sont « numérotés » de A à M. Ils sont chargés de gérer les domaines de premiers niveau : .com,.fr… - Le second niveau : les serveurs « esclaves » des maitres, eux sont chargés de gérer les domaines de seconds niveaux (par exemple google.com)
- Le dernier niveau : Les serveurs chargés de gérer les sous-domaines
Fonctionnement d’une requête DNS
Là dedans, j’ai le serveurs DNS de mon entreprise auquel je suis connecté. Comment se passe une requête ? :
- Etape 1 : Je demande l’IP de google.com :
- J’ai l’enregistrement dans mon fichier host alors j’utilise cet enregistrement
- Je n’ai pas l’enregistrement dans mon fichier host je demande au serveur DNS de mon entreprise
- Etape 2 : Le serveur de l’entreprise :
- a l’adresse IP : il me renvoi l’adresse IP (passez à l’étape 6)
- n’a pas l’adresse IP
- Etape 3 : Le serveur de l’entreprise forwarde la demande à celui de votre FAI
- le serveur du FAI a l’adresse IP il renvoi l’adresse IP au serveur de l’entreprise qui l’enregistre dans son cache et qui forwarde au client (passez à l’étape 6)
- Il n’a pas l’adresse IP il demande au serveur faisant autorité sur lui (.com,.fr…)
- Etape 4 : Imaginons qu’il demande à un serveur root gérant .fr :
- Le serveur root a l’enregistrement dans son cache, il le renvoit au serveur du FAI qui le met dans son cache puis qui le renvoi au serveur de l’entreprise qui le met en cache aussi et qui la renverra au client (passez à l’étape 6)
- Le serveur root n’a pas l’enregistrement : il forwarde la demande au serveur gérant .com (normal étant donné que je demande l’adresse IP de google.com)
- Etape 5 : Le serveur gérant .com :
- a l’enregistrement : renvoie à tous les serveurs DNS précédents qui mette en cache l’information
- n’a pas l’enregistrement : va demandé directement au serveur de second niveau (c’est à dire à celui gérant google.com) : en général là on obtient l’IP lol
- Etape 6 : J’ai l’adresse IP de google.com je peux communiquer avec lui, l’adresse est aussi mis en cache dans votre machine pour ne plus avoir la peine à redemander aux serveurs à chaque fois
Ci-dessous vous avez un schéma de requête, avant que les serveurs aient mis en cache l’enregistrement :
Imaginons, qu’un autre ordinateur demande l’adresse IP de google.com, une fois que les serveurs aient mis en cache, c’est comme ça que ça se passe :
Dans le prochain billet : Comment configurer son serveur DNS sur Linux