Fonctionnement et utilité des DNS serveurs

Transcription

Fonctionnement et utilité des DNS serveurs
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
h.root-servers.net
c.root-servers.net
g.root-servers.net
f.root-servers.net
b.root-servers.net
j.root-servers.net
internet address = 198.41.0.4
internet address = 128.63.2.53
internet address = 192.33.4.12
internet address = 192.112.36.4
internet address = 192.5.5.241
internet address = 128.9.0.107
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
[email protected]
http://regard.ca.tc
Page 9 de 9
DNS
Michel Regard