Accueil | Références | Remerciements |
Accès DSL | Autres accès | Fournisseurs d'accès | Backbone | Adresses IP | Protocoles |
Noms de domaine | DNS | Applications | Web | Statistiques | Gouvernance |
Cette page est consacrée au protocole DNS (Domain Name System), qui
est à la base du fonctionnement technique des noms de domaine sur
Internet. Ce protocole permet de gérer, de manière
distribuée sur un ensemble de serveurs DNS, l'association entre les
noms de domaine d'une part, et les adresses IP (ainsi que d'autres
informations techniques) d'autre part.
Nous traitons dans un premier temps des outils DNS
permettant d'obtenir différentes informations concernant les noms de
domaine : résolution directe et inverse (host, nslookup, dig),
visualisation de caches DNS, transfert de zone.
Nous présentons ensuite un ensemble de sites consacrés aux
serveurs DNS, et en
particulier aux serveurs racines de l'Internet.
|
Les informations DNS s'obtiennent différemment selon le
système d'exploitation utilisé :
(commande-Win) ipconfig
/all
Sous Windows, le résultat de la commande "ipconfig /all" indique
à la fois le nom de la station (Nom de l'hôte), le domaine
(Suffixe DNS principal, Suffixe DNS propre à la connexion) et la
liste des adresses des serveurs DNS utilisés.
(commande-Unix) hostname
(commande-Unix) cat
/etc/resolv.conf
Sous Unix, la commande "hostname" donne le nom de la station, et le
fichier "resolv.conf" contient le domaine à ajouter comme suffixe
au nom de station (domain), ainsi que les adresses des serveurs DNS
utilisés (nameserver).
Les outils DNS de base pour la résolution de noms sont
"nslookup" (Windows), "host" et "dig" (Unix et Mac OS) :
(commande-WinNT/2000/XP) nslookup www.int-edu.eu
Pour Win9x, on peut installer l'utilitaire "nslookup".
(commande-Unix) host
www.int-edu.eu
(commande-Unix) dig
www.int-edu.eu
Avec Mac OS X, les outils "nslookup" et "dig" sont accessibles au moyen
de l'Utilitaire de réseau (onglet "Lookup").
Ces commandes indiquent le nom réel de la station "www.int-edu.eu"
s'il s'agit d'un alias, ainsi que son adresse IP. La commande "nslookup"
indique en premier le nom et l'adresse IP du serveur DNS qui a fourni ces
informations.
La commande "dig" (Domain Information Groper) précise le
contenu exact du message de réponse DNS reçu du serveur.
Elle indique tout d'abord les différents champs de l'en-tête
de la réponse : Opcode (Operation Code), Status (RCode : Response
Code), ID (Identifier), ainsi que les drapeaux (QR : Query/Response, AA :
Authoritative Answer, TC : Truncation, RD : Recursion Desired, RA :
Recursion Available), et enfin les compteurs QDCount, ANCount, NSCount et
ARCount (nombres de questions, de réponses, d'enregistrements
autoritaires et additionnels). Elle détaille ensuite le contenu
des différentes sections (Question, Answer, Authority et
Additional). Le serveur DNS qui a transmis cette réponse est
indiqué à la fin des résultats, avec la date et
l'heure.
On trouvera des informations sur le format de l'en-tête d'un
message DNS dans le guide TCP/IP de Charles M. Kozierok :
http://www.tcpipguide.com/free/t_DNSMessageHeaderandQuestionSectionFormat.htm#Table_169
Le tableau décrit les différents champs de l'en-tête,
et la figure qui suit représente leur position dans cet
en-tête.
Ces commandes permettent également de faire des
résolutions inverses :
(commande-WinNT/2000/XP) nslookup 157.159.100.1
(commande-Unix) host
157.159.100.1
(commande-Unix) dig -x
157.159.100.1
Noter que la résolution inverse de l'adresse "157.159.100.1"
consiste à demander l'enregistrement PTR (Pointer) associé
au nom de domaine "1.100.159.157.in-addr.arpa.", comme indiqué
dans le résultat de la commande "dig".
On peut utiliser des outils d'interrogation DNS en ligne, tel que
celui-ci proposé par "ZoneEdit.com" :
http://www.zoneedit.com/lookup.html
Résolution directe : dans la colonne de gauche "DNS Lookup",
entrer "www.int-edu.eu" dans
le premier champ, puis cliquer sur "Look it up".
Résolution inverse : dans la colonne de droite "Reverse Lookup",
entrer "157.159.100.1" dans
le premier champ, puis cliquer sur "Look it up".
Cet outil nslookup en ligne permet également d'obtenir d'autres
informations à partir d'un nom (enregistrements SOA, NS, CNAME, A,
AAAA, MX, ANY).
L'outil suivant permet d'effectuer des recherches DNS inverses
multiples sur des plages d'adresses IP consécutives, à
partir d'une adresse IP ou d'un nom de domaine déterminé
:
http://www.bankes.com/nslookup.htm
Dans le champ "start from IP address", entrer "157.159.11.0" et cliquer sur
"LOOKUP".
L'outil affiche les adresses IP autour de la station concernée par
blocs de 10, avec leurs résolutions inverses lorsqu'elles
existent. Cliquer "NEXT" en bas de page (en choisissant le bouton "+" ou
"-") pour continuer le parcours.
À partir de Windows 2000, l'option "displaydns" de la commande
"ipconfig" permet de visualiser ce cache :
(commande-Win2000/XP) ipconfig /displaydns
Le résultat contient la liste des entrées DNS qui ont
été résolues (nom, adresse IP correspondante et
durée de vie), ainsi que les entrées négatives (noms
inexistants).
Entrer une URL inexistante dans votre navigateur (par exemple
"xxx.int-edu.eu"), puis observer l'information correspondante
affichée par la commande précédente.
Par ailleurs, pour vider un cache DNS, on peut utiliser les commandes
suivantes :
(commande-Win2000/XP) ipconfig /flushdns
(commande-Mac OS X) lookupd -flushcache
Vider votre cache DNS avec cette commande, puis afficher le à
nouveau. Quelles informations contient alors le cache ?
Le protocole DNS permet d'effectuer un transfert de zone entre
serveurs DNS, par exemple d'un serveur primaire vers les serveurs
secondaires pour les mises à jour de la zone (requête dite
"AXFR"). Un tel transfert utilise normalement le protocole de transport
TCP, au lieu de UDP utilisé pour les autres requêtes
DNS.
On peut effectuer un tel transfert de zone au moyen de l'outil DNS "dig"
en mode terminal. On peut également utiliser un outil "dig" en
ligne, par exemple celui disponible sur le site "netsys.com" :
http://www.netsys.com/cgi-bin/dig.cgi
Sélectionner "Perform zone transfer (list entire contents of
zone)" en haut à gauche.
Entrer dans les champs de recherche en bas à droite :
Name/Number: int-edu.eu
Name Server: diamant.int-evry.fr
Puis valider en cliquant sur "Lookup".
L'outil demande à la station "diamant.int-evry.fr" (serveur DNS
de l'INT) un transfert complet de la zone "int-edu.eu".
Les lignes NS et MX dans la réponse permettent d'obtenir les
serveurs de noms et les serveurs de messagerie du domaine
concerné. Les lignes A fournissent les adresses IPv4 des stations
du domaine, les lignes AAAA les adresses IPv6.
Pour MiNET, entrer :
Name/Number: minet.net
La plupart des sociétés commerciales refusent de tels transferts de zone, à part vers leurs propres serveurs (sécurité oblige...).
|
On peut obtenir les serveurs DNS d'un domaine au moyen de l'outil
"nslookup", en demandant les enregistrements de type NS (Name
Server).
Par exemple avec l'outil "nslookup" en ligne du site "CentralOps.net"
:
http://centralops.net/co/NsLookup.vbs.asp
Entrer dans le champ "domain" : int-edu.eu
Sélectionner dans le champ "query type" le type
d'enregistrement "NS - Name server".
Valider en cliquant sur "go".
Le résultat présente la liste des serveurs DNS du domaine
"int-edu.eu", suivis de leurs adresses IP (dans la section des
enregistrements additionnels).
Pour savoir lequel est le serveur primaire, effectuer une nouvelle
requête en sélectionnant le type d'enregistrement "SOA -
Start of authority".
Le serveur primaire est indiqué avec son adresse IP, ainsi que
diverses autres informations (adresse mail du responsable de la zone,
durée de vie des enregistrements dans la zone...).
Même principe pour le domaine .FR, en entrant simplement dans le
champ "domain" : fr
On notera que certains serveurs secondaires sont souvent
hébergés hors de l'entité officielle, pour des
raisons de sécurité (AFNIC et ENST dans le cas de
"int-evry.fr", différents opérateurs internationaux pour
les serveurs "*.ext.nic.fr" dans le cas de .FR).
On trouve sur plusieurs sites des listes de serveurs DNS des FAI français, par exemple ceux-ci :
Ces listes indiquent les serveurs DNS primaire et secondaire de chaque
FAI : AOL France, Cegetel, Club Internet, Free, Nerim, neuf telecom,
Noos, Orange (Wanadoo), TELE2, Tiscali France... Les serveurs
indiqués comme "libres" peuvent être utilisés par
n'importe quel internaute, les autres sont réservés aux
clients du FAI concerné.
Attention : les FAI modifiant régulièrement leurs serveurs
DNS, de telles listes ne sont pas nécessairement à
jour...
Le site "eagle-usb.org" fournit un tableau de serveurs DNS dans le monde
entier, ainsi que d'autres informations techniques sur les
connexions ADSL de chaque FAI :
http://www.eagle-usb.org/article.php3?id_article=23
Enfin, Sébastien Willemijns fournit une longue liste de
serveurs DNS
publics accompagnée des temps de ping correspondants,
permettant de choisir un serveur proche :
http://vivil.free.fr/dns.htm
De plus, une astuce de programmation permet de calculer les temps de ping
depuis sa propre station (sous Windows). Il suffit d'enregistrer la page
Web avec le suffixe ".bat", puis de l'exécuter...
Les outils Whois de l'InterNIC et de VeriSign permettent d'effectuer
des recherches, non seulement sur les noms de domaine, mais aussi sur les
serveurs DNS :
http://registrar.verisign-grs.com/whois/
Entrer la chaîne suivante : diamant. (le point final indiquant une
recherche sur une sous-chaîne)
Sélectionner "Nameserver" et valider.
Dans le même ordre d'idées, quels sont les serveurs DNS
dont le nom commence par "microsoft.com" ? Entrer cette fois :
microsoft.com.
Les ingénieurs système sont parfois de grands
enfants...
|
Voici la page d'information officielle sur les serveurs racines du DNS
:
http://root-servers.org/
Les 13 serveurs racines sont numérotés de A à M. Le
tableau indique les opérateurs qui en ont la charge, leurs
localisations géographiques, leurs adresses IP et leurs
numéros de système autonome.
Observer que, pour mieux répartir la charge et mieux
résister aux attaques potentielles, certains de ces serveurs
racines sont dupliqués à plusieurs endroits avec la
même adresse IP (technique du routage Anycast). Cette technique des
miroirs Anycast permet ainsi d'améliorer les performances et la
disponibilité du système DNS. Lesquels ont une copie en
France ?
Observer également que certains serveurs possèdent une
adresse IPv6 en complément de leur adresse IPv4.
Certains serveurs racines possèdent également leur propre site Web, que l'on peut consulter en cliquant sur les liens dans le tableau précédent. Par exemple ceux-ci :
Et les voici sur une carte du monde :
http://www.sdsc.edu/Press/press_images/world_map_13_roots.jpeg
Cette carte indique la localisation des serveurs racines de base, sans
tenir compte de leurs réplications Anycast.
Sur 13 serveurs racines, combien se trouvent hors des États-Unis
?
L'APNIC fournit également la carte des miroirs Anycast
situés dans la zone Asie-Pacifique :
http://www.apnic.net/services/rootserver/
Cliquer sur un site pour avoir plus d'informations (opérateur,
localisation, fournisseurs de transit IP, date de
création...).
Voici les grandes étapes de leur déploiement :
http://www.apnic.net/services/rootserver/timeline.html
Ces serveurs racines sont configurés dans les serveurs DNS au
moyen d'un fichier dont le nom diffère selon le système
d'exploitation et la configuration (named.root, named.cache, db.cache,
cache.dns...), et dont la version officielle peut être obtenue sur
le site FTP de l'InterNIC :
ftp://ftp.internic.net/domain/named.root
On y trouve le nom et l'adresse des 13 serveurs racines.
L'ICANN justifie la limitation du nombre des serveurs racines à
13 par un argument technique : utiliser plus de 13 serveurs racines
entraînerait des réponses à certaines requêtes
DNS de plus de 512 octets. Or le protocole applicatif DNS ne fonctionne
au-dessus du protocole de transport UDP que jusqu'à 512 octets de
données. Ces requêtes devraient alors utiliser TCP au lieu
de UDP, entraînant une charge supplémentaire sur les
serveurs DNS.
D'autres sources y voient plutôt une volonté de conserver
une large majorité des serveurs racines sous la maîtrise
d'entités US...
Le 21 octobre 2002, 9 de ces 13 serveurs racines ont subi
simultanément une attaque par déni de service
distribué (DDoS) pendant une heure. Voici les statistiques
d'octobre 2002 pour le serveur H-Root (nombre de requêtes par
seconde) :
http://h.root-servers.org/hroot-month-1002.jpg
L'attaque est cependant passée pratiquement inaperçue,
grâce au mécanisme de cache utilisé par les serveurs
DNS.
Les serveurs racines contiennent tous la même zone racine DNS. Les modifications de cette zone (création d'une nouvelle extension, redélégation d'une extension à un nouveau registre, modification des serveurs de noms ou des informations de contact par les registres) sont donc répercutées sur l'ensemble des 13 serveurs racines. Les serveurs racines qui utilisent la technique Anycast propagent également ces mises à jour vers leurs miroirs Anycast.
Cette figure de l'ICANN illustre le mécanisme de mise à
jour utilisé jusqu'en 2000 :
http://www.icann.org/general/crada-report-summary-fig1-14mar03.jpg
Les différents serveurs racines obtenaient leurs mises à
jour de la part du serveur racine A ("a.root-servers.net", autrefois
nommé "ns.internic.net"). La zone racine était
chargée dans le serveur A par la société NSI
(Network Solutions Inc.), puis par VeriSign (après son rachat de
NSI en 2000).
Depuis 1999, un projet commun à l'ICANN et au
département du commerce US (CRADA : Cooperative Research and
Development Agreement) est en cours. Il vise à mettre en
œuvre un mécanisme plus robuste et plus fiable. En voici
l'architecture cible :
http://www.icann.org/general/crada-report-summary-fig2-14mar03.jpg
Les différents serveurs racines (y compris le A) recevront leurs
informations de la part d'un serveur maître caché, non
public. Ces échanges seront protégés au moyen du
protocole DNSSEC (authentification des serveurs et signature
électronique des transferts). Enfin, l'édition de la zone
racine sera sous la responsabilité directe de l'ICANN et non plus
de VeriSign.
En termes de gouvernance Internet, il est important de comprendre comment se passe la génération de la zone racine. Les demandes de modification de la part des registres d'extensions sont reçues et vérifiées par l'ICANN (dans le cadre de sa fonction IANA). Ces modifications sont ensuite transmises par l'ICANN au DoC ("Department of Commerce", États-Unis) pour approbation. Les modifications approuvées sont finalement transmises à VeriSign pour chargement dans le serveur maître. Le gouvernement US possède donc un droit de veto, avec différentes conséquentes géopolitiques sur les délégations d'extensions nationales, par exemple :
On trouve une copie, sur le site FTP de l'InterNIC, de la zone racine
présente sur les 13 serveurs racines :
ftp://ftp.internic.net/domain/root.zone.gz
Sous Windows, ouvrir le document décompressé avec Word ou
WordPad et pas avec le Bloc-Notes, sinon il sera peu lisible
(problème classique de codage des fins de ligne).
Le fichier contient tout d'abord la liste des 13 serveurs racines avec
leurs adresses IP, puis les serveurs de noms de toutes les extensions
(lignes marquées "NS", plus ou moins en ordre
alphabétique), et enfin les adresses IP de ces serveurs (lignes
marquées "A").
Y a-t-il encore des serveurs de noms pour le .SU (Soviet Union) ?
Combien y a-t-il de serveurs DNS pour la zone .FR ?
Pour quels pays les serveurs DNS de l'AFNIC sont-ils également
serveurs secondaires ? Chercher ".NIC.FR" dans ce fichier. Outre la
France, vous devez trouver plusieurs DOM/TOM et de nombreux autres
pays.
L'ICANN a commencé en juillet 2004 à introduire des
adresses IPv6 de serveurs de noms dans la zone racine du DNS. Pour
quelles extensions ? Chercher "AAAA" dans ce fichier.
Le site FTP de l'InterNIC contient également des copies
d'autres zones DNS :
|
Contact : Patrick
Maigron Dernière mise à jour : 2006-06-11 |
|