Le service DNS
09/02/2005
 Christian CALECA 
Liste des cours

Notions avancées

Accueil ] [ Notions de base ] [ Notions avancées ] [ Construire un DNS ] [ Préceptes ] [ sniff ]


Pour les curieux

Cette partie s'adresse à ceux qui ont déjà quelques notions sur l'adressage IP et le rôle des DNS (la lecture et sa compréhension de la partie pour les débutants suffit) et qui sont curieux de savoir comment ça fonctionne de plus près.

Nous allons ici découvrir comment fonctionne un serveur DNS "lambda", tel que celui que nous pourrions construire, tel que celui de votre FAI.

Mise en garde

Vous imaginez bien qu'avec le nombre de millions d'hôtes référencés dans le monde, construire un système de résolution de noms à l'échelle planétaire qui fonctionne et qui soit perpétuellement à jour, n'est pas un petit travail. Il va donc falloir s'attendre à ce que le processus soit un peu compliqué, mais nous verrons qu'il est en fait extrêmement logique.

Rappels sur les "TLD"

Souvenons-nous que juste au dessous de la racine "." se trouvent un certain nombre de "Top Level Domains" comme ".com", ".net", ".fr" etc.

Des organismes de gestion de ces TLD exitent, ils permettent d'enregistrer des noms de domaines dans les TLD comme par exemple "wanadoo.fr" ou "voila.fr". En France, c'est le NIC France qui s'en occupe. Ces organismes doivent s'assurer de l'unicité d'un nom de domaine à l'intérieur d'un TLD donné.

Lorsqu'un domaine est déclaré, toutes les machines appartenant à ce domaine seront référencées sur le ou les serveurs DNS de l'organisme qui a déposé le nom de domaine. Le NIC France se contentant normalement de permettre de retrouver les adresses IP de ces serveurs de noms.

Le rôle des serveurs racine (Root Servers) consiste à permettre de retrouver les adresses des serveurs que l'on vient de décrire. Comme ceci n'est pas forcément très clair, voyons çà sur un exemple.

Le processus

Les serveurs racine sont connus. Nous pouvons trouver leur liste, par exemple, ici : ftp://ftp.rs.internic.net/domain/named.root
Ce fichier est maintenu par l'InterNIC, organisme qui regroupe d'autres organismes comme le NIC France.

A l'heure où ces lignes sont écrites, ce fichier contient ceci :

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC 
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.INTERNIC.NET
;
;       last update:    Nov 5, 2002
;       related version of root zone:   2002110501
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
;
; formerly C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;
; operated by VeriSign, Inc. 
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
;
; housed in LINX, operated by RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
;
; operated by IANA
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;
; housed in Japan, operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File

Normalement, l'un quelconque de ces serveurs suffit à démarrer sa recherche.

Recherche du DNS de ac-aix-marseille.fr

Dans cet exemple, nous allons essayer de trouver les adresses et les noms des serveurs DNS capables de nous renseigner sur les hôtes du domaine "ac-aix-marseille.fr"

Faisons-le avec nslookup :

Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.
L'exemple est pris à partir d'une console sous Windows NT 4.
Cette machine est connectée par l'intermédiaire d'une passerelle sous LINUX.
D:\>nslookup
Serveur par défaut : gateway1.maison.mrs
Address: 192.168.0.250
On démarre NSLOOKUP en mode interactif.
Le DNS par défaut est celui qui est spécifié dans les options du protocole TCP/IP. Ici un DNS personnel construit sur la passerelle LINUX.
> server g.root-servers.net
Serveur par défaut : g.root-servers.net
Address: 192.112.36.4
Cette commande signifie à nslookup d'utiliser le serveur spécifié, ici l'un des "root-servers" choisi au hasard.
> set q=ns
Cette commande indique à nslookup que l'on va s'intéresser aux champs de type "NS" (Name Servers).
> fr.
Serveur: g.root-servers.net
Address: 192.112.36.4

Réponse de source secondaire :
fr nameserver = NS1.NIC.fr
fr nameserver = NS3.NIC.fr
fr nameserver = DNS.INRIA.fr
fr nameserver = NS2.NIC.fr
fr nameserver = NS.EU.NET
fr nameserver = DNS.PRINCETON.EDU
fr nameserver = NS-EXT.VIX.COM
fr nameserver = DNS.CS.WISC.EDU

NS1.NIC.fr internet address = 192.93.0.1
NS3.NIC.fr internet address = 192.134.0.49
DNS.INRIA.fr internet address = 193.51.208.13
NS2.NIC.fr internet address = 192.93.0.4
NS.EU.NET internet address = 192.16.202.11
DNS.PRINCETON.EDU internet address = 128.112.129.15
NS-EXT.VIX.COM internet address = 204.152.184.64
DNS.CS.WISC.EDU internet address = 128.105.2.10
Posons la question:
Quels sont les serveurs de noms qui savent donner des informations sur le TLD "fr."?

Et voilà, nous disposons de la liste des serveurs qui pourront nous renseigner sur les domaines existant dans le TLD "fr."

> server dns.inria.fr
Serveur par défaut :  dns.inria.fr
Address:  193.51.208.13
Passons donc sur l'un de ces serveurs...
> ac-aix-marseille.fr.
Serveur:  dns.inria.fr
Address:  193.51.208.13

Réponse de source secondaire :
ac-aix-marseille.fr     nameserver = dnse.ac-aix-marseille.fr
ac-aix-marseille.fr     nameserver = cianame.ac-clermont.fr

dnse.ac-aix-marseille.fr internet address = 195.83.252.200
cianame.ac-clermont.fr   internet address = 194.254.204.31
Et interrogeons-le sur le domaine ac-aix-marseille.fr.

Nous obtenons les DNS qui nous renseigneront sur les hôtes du domaine ac-aix-marseille.fr

Faisons le avec host :

host, contrairement à nslookup, n'est pas une commande interactive, son usage est quelque peu différent, mais les résultats devraient être les mêmes.

[root@gw1 root]# host -t ns fr. 192.112.36.4
nous demandons à 192.112.36.4 quels sont les "name servers" (-t ns) qui gèrent le TLD fr (fr.)
Using domain server:
Name: 192.112.36.4
Address: 192.112.36.4#53
Aliases:

fr name server NS3.DOMAIN-REGISTRY.NL.
fr name server DNS.CS.WISC.EDU.
fr name server NS1.NIC.fr.
fr name server NS3.NIC.fr.
fr name server DNS.INRIA.fr.
fr name server NS2.NIC.fr.
fr name server DNS.PRINCETON.EDU.
fr name server NS-EXT.VIX.COM.
La réponse arrive.

C'est sympa, nous avons les noms de DNS, mais pas leurs adresses...

[root@gw1 root]# host ns1.nic.fr. 192.112.36.4
Nous demandons donc au même DNS de bien vouloir nous indiquer l'IP  de ns1.nic.fr.
Using domain server:
Name: 192.112.36.4
Address: 192.112.36.4#53
Aliases:

ns1.nic.fr has address 192.93.0.1
Ce qu'il fait sans rechigner, puis qu'on le lui demande poliment.
[root@gw1 root]# host -t ns ac-aix-marseille.fr. 192.93.0.1
Nous demandons maintenant à ns1.nic.fr (192.93.0.1) de nous indiquer les DNS (-t ns) qui savent répondre pour le domaine d'entreprise ac-aix-marseille.fr
Using domain server:
Name: 192.93.0.1
Address: 192.93.0.1#53
Aliases:

ac-aix-marseille.fr name server dnse.ac-aix-marseille.fr.
ac-aix-marseille.fr name server cianame.ac-clermont.fr.
Ce qu'il fait, toujours en n'indiquant que les noms.
[root@gw1 root]# host dnse.ac-aix-marseille.fr. 192.93.0.1
Nous aimerions avoir l'adresse IP de dnse.ac-aix-marseille.fr, par exemple :
Using domain server:
Name: 192.93.0.1
Address: 192.93.0.1#53
Aliases:

dnse.ac-aix-marseille.fr has address 195.83.252.200
et voilà.

Conclusions

Cette petite manipulation nous permet de comprendre comment, en partant d'un des root-servers de l'Internic, il est possible de retrouver le ou les DNS capables de renseigner sur un domaine donné. Cette façon de faire, si elle ne présente aucun intérêt pour l'internaute "moyen" (sans aucune connotation péjorative de ma part) permet de comprendre comment va fonctionner un serveur DNS de type "récursif" comme celui que vous procure normalement votre fournisseur d'accès; cette méthode permet également de dépister certaines pannes d'inaccessibilité à un serveur. Nous le verrons d'ailleurs dans un "sniff" gigantesque un peu plus loin...

Recherche habituelle de l'adresse d'un hôte

Le DNS par défaut

Simple... Vous vous adressez à votre DNS par défaut:

Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.

D:\>nslookup www.ac-aix-marseille.fr
Serveur: gateway1.maison.mrs
Address: 192.168.0.250

Nom : copernic.crdp.ac-aix-marseille.fr
Address: 194.254.139.4
Aliases: www.ac-aix-marseille.fr

Et, s'il est normalement constitué, il vous donne la réponse. Allez tiens, encore un coup pour le plaisir:

D:\>nslookup www.ac-aix-marseille.fr
Serveur: gateway1.maison.mrs
Address: 192.168.0.250

Réponse de source secondaire :
Nom : copernic.crdp.ac-aix-marseille.fr
Address: 194.254.139.4
Aliases: www.ac-aix-marseille.fr

Tiens, cette fois-ci, il y a quelque chose en plus: "Réponse de source secondaire:"! On se le remet de côté pour plus tard...

Bien entendu, nous pourrions faire la même chose avec host, sans préciser de DNS. C'est alors le DNS par défaut qui sera interrogé :

[root@gw1 root]# host www.ac-aix-marseille.fr
www.ac-aix-marseille.fr has address 195.83.252.87

Tant qu'on y est, une petite variation sur le thème "host" : le paramètre v (verbose) :

[root@gw1 root]# host -v www.ac-aix-marseille.fr
Trying "www.ac-aix-marseille.fr"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11747
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:
;www.ac-aix-marseille.fr. IN A

;; ANSWER SECTION:
www.ac-aix-marseille.fr. 604765 IN A 195.83.252.87

;; AUTHORITY SECTION:
ac-aix-marseille.fr. 603884 IN NS cianame.ac-clermont.fr.
ac-aix-marseille.fr. 603884 IN NS dnse.ac-aix-marseille.fr.

;; ADDITIONAL SECTION:
dnse.ac-aix-marseille.fr. 603884 IN A 195.83.252.200

Received 126 bytes from 127.0.0.1#53 in 11 ms

Pour être verbeux... Mais nous avons quelques informations qui peuvent intéresser :

Bien, mais on ne va pas rester en plan sur la recherche que nous avons faite en partant d'un root-server...

Jusqu'au bout de la recherche

Continuons la manip jusqu'au bout...

(Je rappelle que nous avions démarré nslookup en mode interactif, que nous étions parti d'un root-server choisi au hasard dans la liste distribuée par l'Internic, et que nous avions trouvé deux serveurs de noms pour le domaine ac-aix-marseille.fr.

Prenons-en un, presque au hasard:

> server dnse.ac-aix-marseille.fr
Serveur par défaut : dnse.ac-aix-marseille.fr
Address: 195.83.252.200
passons maintenant sur l'un des serveurs DNS du domaine ac-aix-marseille.fr:
> set q=a
Le type de question est maintenant:
donner l'adresse de...
> www.ac-aix-marseille.fr.
du serveur web de l'académie
Serveur: dnse.ac-aix-marseille.fr
Address: 195.83.252.200

Nom : copernic.crdp.ac-aix-marseille.fr
Address: 194.254.139.4
Aliases: www.ac-aix-marseille.fr
Et la réponse arrive. On remarque d'ailleurs que le véritable nom du serveur est:

Et avec host :

[root@gw1 root]# host www.ac-aix-marseille.fr 195.83.252.200
allons jusqu'au bout pour obtenir de dnse.ac-aix-marseille.fr (195.83.252.200) l'IP du serveur web de l'académie :
Using domain server:
Name: 195.83.252.200
Address: 195.83.252.200#53
Aliases:

www.ac-aix-marseille.fr has address 195.83.252.87
C'est terminé.

Ce qui va être fait maintenant n'est pas à faire pour s'amuser! Ce genre de commande consomme inutilement des ressources sur le serveur DNS visé. A réserver à l'administrateur du DNS (auprès duquel je m'excuse, c'était juste à des fins pédagogiques).
D'ailleurs, l'administrateur dispose de la possibilité d'interdire ce genre de requête, comme nous le verrons dans la construction d'un DNS, et lorsque ce n'est pas interdit, ça ne veut pas forcément dire que c'est autorisé...

> ls -d ac-aix-marseille.fr. 
[dnse.ac-aix-marseille.fr]
 ac-aix-marseille.fr.     SOA    dnse.ac-aix-marseille.fr 
 ...
 ac-aix-marseille.fr.     A      195.83.252.20
 ac-aix-marseille.fr.     NS     dnse.ac-aix-marseille.fr      
 ac-aix-marseille.fr.     NS     cianame.ac-clermont.fr        
...
 copernic.crdp.ac-aix-marseille.fr. A      194.254.139.4
...
 www.ac-aix-marseille.fr. CNAME  copernic.crdp.ac-aix-marseille.fr
...
Cette commande permet de lister tous les enregistrements d'une zone (domaine ou partie d'un domaine, comme nous le verrons dans la construction d'un DNS).
Le listing a été volontairement tronqué, d'abord parce qu'il est assez long, ensuite parce qu'il ne présente pas un grand intérêt dans notre propos.

On retrouve bien dans cette liste les informations qui nous intéressaient concernant le serveur web de l'académie

Notez également les champs qui apparaissent:

Il existe également d'autres types d'enregistrements, comme MX qui renseigne sur les serveurs smtp, mais ceci est une autre histoire...

Les mêmes informations auraient pu être extraites avec la commande :

host -l ac-aix-marseille.fr 195.83.252.200

Conclusions

Dans le second cas, nous avons effectué "à la main" une recherche "itérative", par approches successives, pour aboutir à la solution.

Dans le premier cas, notre DNS par défaut a effectué une recherche analogue de façon transparente pour nous, et nous a servi la réponse "sur un plateau".

Comme c'est tout de même son travail de servir des adresses correspondant aux noms, il garde sa recherche en mémoire au cas où... Et c'est la raison du fameux "Réponse de source secondaire:"! Lorsqu'on lui repose la question une seconde fois, il ressort le résultat qu'il a gardé en cache, s'il estime qu'il est encore d'actualité (mais ceci est encore une autre question que nous verrons plus loin). En fait, comme nous le verrons dans le "sniff", il en profite pour garder en cache toutes les informations qu'il a trouvées dans sa recherche concernant les serveurs de noms intermédiaires, ce qui pourra lui faire gagner du temps si par exemple on lui demandait de résoudre un autre nom du TLD fr. (www.wanadoo.fr par exemple).

Notre DNS par défaut est dit "récursif", c'est à dire qu'il sait faire tout seul une recherche comme nous l'avons menée manuellement. Tous les DNS ne le sont pas et principalement les root-servers.

Dans l'autre sens...

Il est parfois utile de pouvoir trouver le nom d'un hôte si l'on ne connaît que son adresse IP, bien que l'internaute moyen n'ait normalement pas besoin de cette fonction.

Les DNS savent le faire et une telle recherche peut s'effectuer à la main de façon similaire à une recherche normale, en partant des root-servers.

Prenons un exemple qui marche bien: la recherche du nom correspondant à l'adresse 193.252.19.142 (prise pas du tout au hasard). Dans la pratique, la manip est parfois un peu plus compliquée parce que les serveurs ne renvoient pas toujours les adresses IP avec les noms, mais la démarche est bonne et fonctionne dans tous les cas, elle peut simplement être parfois beaucoup plus longue.

D:\>nslookup
Serveur par défaut : gateway1.maison.mrs
Address: 192.168.0.250
la routine...
> server a.root-servers.net
Serveur par défaut : a.root-servers.net
Address: 198.41.0.4
un root server...
> set q=ptr
ici, on va demander les enregistrements de type PTR. Nous verrons en détail dans la construction d'un DNS à quoi ils correspondent
> 193.252.19.142
Je pose la question...
Serveur: a.root-servers.net
Address: 198.41.0.4

193.IN-ADDR.ARPA nameserver = NS.RIPE.NET
193.IN-ADDR.ARPA nameserver = NS.EU.NET
193.IN-ADDR.ARPA nameserver = AUTH03.NS.UU.NET
193.IN-ADDR.ARPA nameserver = NS2.NIC.FR
193.IN-ADDR.ARPA nameserver = SUNIC.SUNET.SE
193.IN-ADDR.ARPA nameserver = MUNNARI.OZ.AU
193.IN-ADDR.ARPA nameserver = NS.APNIC.NET
NS.RIPE.NET internet address = 193.0.0.193
NS.EU.NET internet address = 192.16.202.11
AUTH03.NS.UU.NET internet address = 198.6.1.83
NS2.NIC.FR internet address = 192.93.0.4
SUNIC.SUNET.SE internet address = 192.36.125.2
MUNNARI.OZ.AU internet address = 128.250.1.21
NS.APNIC.NET internet address = 203.37.255.97
Et le root server, comme à son habitude, ne me répond pas directement, mais m'envoie une liste de serveurs qui savent résoudre les adresses qui commencent par 193.
> server 192.93.0.4
Serveur par défaut : ns2.nic.fr
Address: 192.93.0.4
J'en choisis un, au hasard... 
> 193.252.19.142
Serveur: ns2.nic.fr
Address: 192.93.0.4

252.193.in-addr.arpa nameserver = bow.rain.fr
252.193.in-addr.arpa nameserver = proof.rain.fr
252.193.in-addr.arpa nameserver = ns.ripe.net
252.193.in-addr.arpa nameserver = ns.global-ip.net
bow.rain.fr internet address = 194.51.3.49
proof.rain.fr internet address = 194.51.3.65
ns.ripe.net internet address = 193.0.0.193
ns.ripe.net AAAA IPv6 address = 0:0:0:0:0:ffff:c100:c1
ns.global-ip.net internet address = 194.52.1.10
Et je lui repose la même question. Il me répond bien poliment par une liste de serveurs qui savent résoudre les adresses commençant par 193.252.

Notez qu'en recherche inverse, les adresses sont classées à l'envers. C'est logique, on part du poids le plus fort vers le poids le plus faible.  

> server 194.51.3.49
51.194.in-addr.arpa nameserver = bow.rain.fr
51.194.in-addr.arpa nameserver = proof.rain.fr
51.194.in-addr.arpa nameserver = ns.ripe.net
51.194.in-addr.arpa nameserver = ns.global-ip.net
51.194.in-addr.arpa nameserver = ns3.nic.fr
bow.rain.fr internet address = 194.51.3.49
proof.rain.fr internet address = 194.51.3.65
ns.ripe.net internet address = 193.0.0.193
ns.ripe.net AAAA IPv6 address = 0:0:0:0:0:ffff:c100:c1
ns.global-ip.net internet address = 194.52.1.10
ns3.nic.fr internet address = 192.134.0.49
Serveur par défaut : [194.51.3.49]
Address: 194.51.3.49
Je prends le premier serveur proposé.

Notez que celui-ci, sans que je ne lui demande rien, m'envoie la liste des serveurs qui connaissent les adresses commençant par 194.51 (comme la sienne). Je n'en ai rien à faire ici, mais je peux éventuellement garder cette info dans mes tablettes...

> 193.252.19.142
Serveur: [194.51.3.49]
Address: 194.51.3.49

19.252.193.in-addr.arpa nameserver = ns.wanadoo.fr
19.252.193.in-addr.arpa nameserver = ns.wanadoo.com
19.252.193.in-addr.arpa nameserver = ns2.wanadoo.fr
19.252.193.in-addr.arpa nameserver = ns2.wanadoo.com
ns.wanadoo.fr internet address = 193.252.19.10
ns.wanadoo.com internet address = 194.51.238.1
ns2.wanadoo.fr internet address = 193.252.19.11
ns2.wanadoo.com internet address = 194.51.238.2
Je pose à ce serveur toujours la même question, il me répond cette fois-ci par la liste des serveurs connaissant les adresses qui commencent par 193.252.19.

(on approche)

A ce stade, on a déjà une idée du domaine dans lequel se trouve notre hôte.

> server 194.51.238.2
Serveur par défaut : ns2.wanadoo.com
Address: 194.51.238.2
Pour changer un peu, je choisis le dernier de la liste (bienvenue dans wanadoo.com)
> 193.252.19.142
Serveur: ns2.wanadoo.com
Address: 194.51.238.2

142.19.252.193.in-addr.arpa name = www.wanadoo.fr
19.252.193.in-addr.arpa nameserver = ns.wanadoo.fr
19.252.193.in-addr.arpa nameserver = ns.wanadoo.com
19.252.193.in-addr.arpa nameserver = ns2.wanadoo.fr
19.252.193.in-addr.arpa nameserver = ns2.wanadoo.com
ns.wanadoo.fr internet address = 193.252.19.10
ns.wanadoo.com internet address = 194.51.238.1
ns2.wanadoo.fr internet address = 193.252.19.11
ns2.wanadoo.com internet address = 194.51.238.2
Encore une fois la question et j'obtiens la réponse définitive:

www.wanadoo.fr

Vous avez compris le principe, on ne va pas aussi le faire avec host. 

Conclusions

Une recherche inverse se mène donc de manière similaire à une recherche directe. Si j'avais posé directement la question à mon DNS favori, j'aurais bien entendu obtenu directement la réponse:

D:\>nslookup 193.252.19.142
Serveur: gateway1.maison.mrs
Address: 192.168.0.250

Nom : www.wanadoo.fr
Address: 193.252.19.142

C'eut été plus simple, mais je n'aurais pas compris comment ça marche...

Pour l'instant, ne nous posons pas trop de questions sur ce "in-addr.arpa" que nous verrons en détail lors de la construction de notre DNS. Il s'agit en fait d'une zone dans laquelle on enregistre les adresses avec le nom d'hôte qui correspond, ceci se faisant en même temps que l'on entre dans la zone "normale" les noms avec l'adresse qui correspond dans un champ de type "A".

Un document fort intéressant et fort complet vous aidera à comprendre tout ça et même plus...

Le "DNS Round-robin"

Comme c'est une technique qui se développe de plus en plus, autant en dire quelques mots...

Après tout ce que nous avons vu, nous avons probablement compris qu'à un nom correspond une IP et, éventuellement, par le jeu des alias, une IP peut être attribuée à plusieurs noms. Serait-il possible qu'à un nom donné puissent correspondre plusieurs IPs ?

~# host news.free.fr
news.free.fr is an alias for news.proxad.net.
news.proxad.net has address 213.228.0.133
news.proxad.net has address 213.228.0.136
news.proxad.net has address 213.228.0.138
news.proxad.net has address 213.228.0.196
news.proxad.net has address 213.228.0.4
news.proxad.net has address 213.228.0.32
news.proxad.net has address 213.228.0.33
news.proxad.net has address 213.228.0.75

Est-ce possible ? Pas moins de 8 adresses différentes pour le même nom ? Ce doit être une erreur, recommençons...

~# host news.free.fr
news.free.fr is an alias for news.proxad.net.
news.proxad.net has address 213.228.0.33
news.proxad.net has address 213.228.0.75
news.proxad.net has address 213.228.0.133
news.proxad.net has address 213.228.0.136
news.proxad.net has address 213.228.0.138
news.proxad.net has address 213.228.0.196
news.proxad.net has address 213.228.0.4
news.proxad.net has address 213.228.0.32

Ce n'est pas une erreur, nous avons bien ici huit IP différentes, et constatez qu'entre les deux interrogations, si les adresses n'ont pas changé, en revanche, l'ordre dans lequel elles ont été données, lui, a changé. En pratique, à chaque requête, le DNS opèrera une permutation circulaire .

Le client utilisera normalement la première réponse dans la liste, deux utilisateurs consécutifs utiliseront donc deux IPs différentes, pour accéder au même service. La charge en terme de flux de données sera naturellement répartie sur les diverses IPs.

A quoi cela sert-il ? Il peut y avoir plusieurs raisons :

Cette technique est de plus en plus employée. Autres exemples, pour ne pas faire de jaloux :

~# host smtp.free.fr
smtp.free.fr has address 213.228.0.169
smtp.free.fr has address 213.228.0.176
smtp.free.fr has address 213.228.0.44
smtp.free.fr has address 213.228.0.62

Et :

~# host smtp.wanadoo.fr
smtp.wanadoo.fr has address 193.252.22.72
smtp.wanadoo.fr has address 193.252.22.73
smtp.wanadoo.fr has address 193.252.22.74
smtp.wanadoo.fr has address 193.252.22.75
smtp.wanadoo.fr has address 193.252.22.76
smtp.wanadoo.fr has address 193.252.22.77

Précédente ] [ Accueil ] [ Suivante ]