Fonctionnement et utilité des DNS serveurs Histoire de la résolution des noms de Domaines Tous les serveurs connectés au travers d Internet possèdent une adresse IP unique allouée par un représentant local de IANA. Cette adresse est unique à travers le monde et est matérialisée par une suite de 32 bits codés en décimal, par exemple celle du serveur WEB de la NASA est 67.96.63.110. Cette représentation décimale n est pas pour plaire à l humain qui préfère se souvenir d une suite de lettres bien plus facile à enregistrer, imaginez que vous devriez appeler vos amis par leurs numéros AVS. Au tout début de Arpanet (l ancêtre d Internet) il était encore possible d enregistrer dans un fichier à plat (texte) la relation entre le nom de quelques serveurs et leurs adresses IP. Les seuls utilisateurs étant quelques universités ou l armée américaines. Ce fichier était mis à jour manuellement et journellement par un organisme central et était téléchargé sur chaque serveur afin de garantir la résolution de nom. L adresse http://som.csudh.edu/cis/lpress/history/arpamaps/ montre le début des interconnections d Arpanet pour les 4 premières universités en fin 1969. A mesure que le nombre de serveurs à relier ensemble augmente, il est devenu impossible de mettre à jour le fichier et de le distribuer. La décision à été prise de créer des serveurs de résolution de noms de domaines (Domain Name Serveur) en charge de résoudre pour les clients l adresse littérale en une adresse décimale pointée. L infrastructure actuelle est définie selon le schéma ci-dessous: 13 DNS (Root) répartis à travers le monde sont en charge de donner le nom des serveurs en charge des Top Level Domain. (par exemple.edu -.ch -.gov) Des centaines de serveurs résolvent les edu, com, ch Des dizaines de milliers sont installés dans les sociétés et sont en charge de résoudre les noms pour des requêtes internes et externes. Terminologie On appelle résolution le fait de demander une adresse IP en présentant un nom de domaine à un DNS serveur. On appelle Record les enregistrements faits dans un DNS serveur. On appelle Alias des Record permettant de représentant plusieurs adresses IP à un enregistrement. L exemple www1, www2, www3 sont des Alias de www. Ceci permet de répartir les requêtes HTTP sur plusieurs serveurs physiquement différents. On appelle IN-ARPA des Record permettant de faire une résolution inverse. Exemple: ping a 62.220.128.199 permet de retrouver le nom du domaine. On appelle par standardisation www le serveur en charge du protocole HTTP. Pour la petite histoire ce protocole a été inventé par des ingénieurs du CERN.Le premier serveur WEB, ainsi que le premier browser (1990), basé sur un NeXT est exposé au CERN. Voir http://www.w3.org/history.html. Page 1 de 9 DNS Michel Regard
Représentation des niveaux de l Internet FQDN, définition Lorsque vous entrer dans votre browser un non tel que www.nasa.gov il se défini en plusieurs entités se lisant de droite à gauche.. (point) bien qu étant absent il représente les Root serveurs gov est le Top Level Domain (TLD) Premier niveau. La liste est donnée par http://www.iana.org/cctld/cctld-whois.htm nasa est le nom du domaine représentant la société. Deuxième niveau www est le nom du serveur en charge de supporter le site HTTP. Page 2 de 9 DNS Michel Regard
Fichier à plat utilisé pour la résolution (fichier texte), définition Le fichier texte est toujours utilisé dans certain cas, vous pouvez en faire l expérience en entrant sur votre browser http://localhost pour autant que le serveur héberge un site WEB. Ce fichier existe sous tous les systèmes quel que soit leur Operating System. Ce fichier s appelle «hosts» et sous windows se trouve sous : C:\WINNT\system32\drivers\etc Exemple du fichier host. # Copyright (c) 1993-1999 Microsoft Corp. # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # For example: # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost Ce fichier permet, dans le cas d un mini domaine interne, de se passer d un DNS en prenant soin de rentrer les noms de vos serveurs ainsi que leurs noms de domaines. Le gros désavantage est qu il est statique ce qui implique une maintenance fastueuse. En rajoutant par exemple la ligne suivante : 192.168.1.1 zyxel Vous pourrez faire un ping de votre router Zyxel en utilisant son nom. L adresse 192.168.1.1 correspondant à la valeur IP par défaut du routeur. Page 3 de 9 DNS Michel Regard
Exemple d une résolution de nom Pour cet exemple on admet qu aucun serveur DNS ne possède en cache l adresse IP du FQDN www.allo.ch Une requête est émise par votre PC vers le DNS de votre Provider demandant de résoudre www.allo.ch Le DNS du Provider doit trouver quel est le DNS qui gère le ch et émet la requête vers les DNS de Root. L ayant obtenu le DNS du Provider émet une requête vers le serveur en charge de résoudre les ch en demandant l adresse pour allo.ch. L'adresse reçue, il fait une requête sur le serveur ayant enregistré allo.ch en demandant l adresse du serveur ayant le nom www. Une fois obtenue le browser ouvre la page par rapport à l adresse 62.220.128.199 Le DNS du Provider ayant mis l adresse en cache la requête suivante est faite directement par celui-ci. Détail et explication de la requête Ouvrir une ligne de commande (CMD) On va utiliser l outil «nslookup» pour visualiser la succession de requêtes. Le DNS du Provider cherche le Root serveurs. (En fait ils sont connus par tous les DNS serveurs) en faisant une requête en demandant les noms de domaines «ns» et en spécifiant le. comme nom de domaine. Le point à la fin d un FQDN représente toujours Root. C:\>nslookup Default Server: jura.geneve.privat Address: 192.168.0.5 > set query=ns >. Server: jura.geneve.privat Address: 192.168.0.5 Non-authoritative answer: (root) nameserver = k.root-servers.net (root) nameserver = l.root-servers.net (root) nameserver = m.root-servers.net (root) nameserver = i.root-servers.net (root) nameserver = e.root-servers.net (root) nameserver = d.root-servers.net (root) nameserver = a.root-servers.net (root) nameserver = h.root-servers.net (root) nameserver = c.root-servers.net (root) nameserver = g.root-servers.net (root) nameserver = f.root-servers.net (root) nameserver = b.root-servers.net (root) nameserver = j.root-servers.net k.root-servers.net internet address = 193.0.14.129 l.root-servers.net internet address = 198.32.64.12 m.root-servers.net internet address = 202.12.27.33 i.root-servers.net internet address = 192.36.148.17 e.root-servers.net internet address = 192.203.230.10 d.root-servers.net internet address = 128.8.10.90 Page 4 de 9 DNS Michel Regard
a.root-servers.net internet address = 198.41.0.4 h.root-servers.net internet address = 128.63.2.53 c.root-servers.net internet address = 192.33.4.12 g.root-servers.net internet address = 192.112.36.4 f.root-servers.net internet address = 192.5.5.241 b.root-servers.net internet address = 128.9.0.107 j.root-servers.net internet address = 198.41.0.10 Maintenant demandons à un serveur DNS de Root, en l occurrence a.root-servers.net, qui s occupe de ch. > set query=ns > ch. Server: a.root-servers.net Address: 198.41.0.4 Non-authoritative answer: ch nameserver = MERAPI.SWITCH.ch ch nameserver = NS.EU.NET ch nameserver = DNS.PRINCETON.EDU ch nameserver = RIP.PSG.COM ch nameserver = TULKU.NIC.AR ch nameserver = CCTLD.TIX.ch ch nameserver = NS.APNIC.NET ch nameserver = DOMREG.NIC.ch MERAPI.SWITCH.ch internet address = 130.59.211.10 internet address = 192.16.202.11 DNS.PRINCETON.EDU internet address = 128.112.129.15 RIP.PSG.COM internet address = 147.28.0.39 TULKU.NIC.AR internet address = 200.16.97.77 CCTLD.TIX.ch internet address = 194.42.48.120 NS.APNIC.NET internet address = 203.37.255.97 DOMREG.NIC.ch internet address = 130.59.1.80 Maintenant que nous avons la liste des serveurs DNS à travers le monde en charge de résoudre le CH demandons à par exemple MERAPI.SWITCH.ch de résoudre allo.ch > set query=ns > allo.ch Server: MERAPI.SWITCH.ch Served by: - MERAPI.SWITCH.ch 130.59.211.10 SWITCH.ch - scsnms.switch.ch 130.59.10.30, 130.59.1.30 SWITCH.ch Non-authoritative answer: allo.ch nameserver = ns2.nimag.net allo.ch nameserver = ns.nimag.net ns.nimag.net internet address = 62.220.129.97 ns2.nimag.net internet address = 62.220.128.198 Le serveur DNS de switch nous informe que allo.ch est enregistré sur 2 DNS appelés: ns.nimag.net internet address = 62.220.129.97 ns2.nimag.net internet address = 62.220.128.198 Un minimum de 2 DNS serveurs est obligatoire pour enregistrer un nom de domaine. Page 5 de 9 DNS Michel Regard
Maintenant il nous reste qu à demander à l un deux de nous trouver l adresse du serveur www soit le A record. > server ns.nimag.net Default Server: ns.nimag.net Address: 62.220.129.97 > set query=a > www.allo.ch Server: ns.nimag.net Address: 62.220.129.97 Name: allo.ch Address: 62.220.128.199 Aliases: www.allo.ch Le browser ouvre la page en faisant l appel sur l adresse IP: 62.220.128.199 et vous pouvez visualiser votre site préféré. Le cycle complet n est effectué qu une seule fois par le serveur DNS de votre Provider car une fois la résolution faite il va la mettre en cache. Page 6 de 9 DNS Michel Regard
Explication par un schéma block Définition des DNS dans le PC Les paramètres de TCP/IP de votre W2K ou XP permettent l enregistrement de plus de 2 DNS serveurs en utilisant la fenêtre Advanced. Utiliser cette possibilité pour rentrer dans les 2 premiers les DNS de votre Provider puis en 3eme voir 4eme position le/les DNS d un autre Provider. En procédant de cette façon une panne totale des DNS de votre Provider passera presque inaperçue à part une perte de temps causé par le time out des 2 premiers DNS. Page 7 de 9 DNS Michel Regard
Page 8 de 9 DNS Michel Regard
Comment connaître rapidement les DNS d une société. Toujours en utilisant l outil nslookup procéder comme suit. C:\>nslookup Default Server: jura.geneve.privat Address: 192.168.0.5 > set query=ns > tiscali.ch Server: jura.geneve.privat Address: 192.168.0.5 Non-authoritative answer: tiscali.ch nameserver = ns1.datacomm.ch tiscali.ch nameserver = ns2.datacomm.ch ns1.datacomm.ch internet address = 212.40.0.10 ns2.datacomm.ch internet address = 212.40.5.50 nslookup L utilitaire nslookup se trouve en standard sur les systèmes W2K et XP, sa principale fonction étant le debug des résolutions de noms. Sans changement, toutes les requêtes émises par nslookup se font contre le serveur DNS défini dans les propriétés de TCP/IP. En quelques lignes voici les définitions des fonctions principales utilisées: help set server servername set query=x liste toutes les fonctions de nslookup change le serveur par défaut par le serveur appelé servername défini la query (question) que l on veut poser au DNS serveur X= A. Un enregistrement A représente une machine X= NS. Un enregistrement NS représente un server DNS X= MX. Un enregistrement MX représente un serveur mail Michel Regard Avril 2002 regard@ca.tc http://regard.ca.tc Page 9 de 9 DNS Michel Regard