Cours DNS 1ère année.
Réponse AJAX

C'est quoi le DNS ?

DNS signifie Domain Name System, c'est le mécanisme qui met en relation un nom de domaine (par exemple bts-sio.com) avec une adresse IP.

L'idée est qu'un nom de domaine est plus facile à retenir qu'une adresse IP. Dans un logiciel (navigateur, client FTP, etc.), l'utilisateur tape le nom de domaine. La première chose faite par le logiciel est de convertir ce nom en adresse IP, car seules les adresses IP peuvent circuler sur Internet.

Le DNS côté client

Le premier fichier interrogé pour la résolution DNS

Dans Windows, le premier fichier interrogé pour la résolution des noms de domaine est :
C:\WINDOWS\system32\drivers\etc\hosts

Par exemple, voici le fichier hosts sur mon ordinateur :

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Ceci est un exemple de fichier HOSTS utilisé par Microsoft TCP/IP
# pour Windows.
#
# Ce fichier contient les correspondances des adresses IP aux noms d'hôtes.
# Chaque entrée doit être sur une ligne propre. L'adresse IP doit être placée
# dans la première colonne, suivie par le nom d'hôte correspondant. L'adresse
# IP et le nom d'hôte doivent être séparés par au moins un espace.
#
# De plus, des commentaires (tels que celui-ci) peuvent être insérés sur des
# lignes propres ou après le nom d'ordinateur. Ils sont indiqué par le
# symbole '#'.
#
# Par exemple :
#
#      102.54.94.97     rhino.acme.com          # serveur source
#       38.25.63.10     x.acme.com              # hôte client x

127.0.0.1	localhost
127.0.0.1	local.cours.sebastien-pastore.com
127.0.0.1	local.epg.sebastien-pastore.com
127.0.0.1	local.films.sebastien-pastore.com

Vous remarquez que ça ne correspond pas au fichier par défaut. Par exemple, la valeur 127.0.0.1 local.cours.sebastien-pastore.com me permet d'accéder à la version de développement de mon site quand je rajoute local. devant son FQDN.

Ensuite, on interroge le cache DNS local

Les données renvoyées par les serveurs DNS sont stockées dans une cache de notre ordinateur. On peut consulter ce cache et le vider, grâce à des commandes MS-DOS.

Par exemple, pour consulter le cache DNS :

C:\>ipconfig /displaydns

Configuration IP de Windows

         mail.google.com
         ----------------------------------------
         Nom d'enregistrement. : mail.google.com
         Type d'enregistrement : 5
         Durée de vie  . . . . : 47
         Longueur de données . : 4
         Section . . . . . . . : Réponse
         Enregistrement CNAME  : googlemail.l.google.com


         local.cours.sebastien-pastore.com
         ----------------------------------------
         Nom d'enregistrement. : local.cours.sebastien-pastore.com
         Type d'enregistrement : 1
         Durée de vie  . . . . : 598938
         Longueur de données . : 4
         Section . . . . . . . : Réponse
         Enregistrement (hôte) : 127.0.0.1

         localhost
         ----------------------------------------
         Nom d'enregistrement. : localhost
         Type d'enregistrement : 1
         Durée de vie  . . . . : 598938
         Longueur de données . : 4
         Section . . . . . . . : Réponse
         Enregistrement (hôte) : 127.0.0.1

         etc.

Pour vider le cache DNS :

C:\>ipconfig /flushdns

Configuration IP de Windows

Cache de résolution DNS vidé.

Ensuite, on interroge les serveurs DNS

Un client dispose d'un ou plusieurs serveurs DNS à contacter lorsqu'il a besoin de résoudre un nom de domaine. Les adresses de ces serveurs sont visibles grâce à la commande IPCONFIG /ALL :

C:\>ipconfig /all

Configuration IP de Windows

        Nom de l'hôte . . . . . . . . . . : pentiume5300
        Suffixe DNS principal . . . . . . :
        Type de noud . . . . . . . . . . : Hybride
        Routage IP activé . . . . . . . . : Non
        Proxy WINS activé . . . . . . . . : Non
        Liste de recherche du suffixe DNS : home

Carte Ethernet Connexion au réseau local:

        Suffixe DNS propre à la connexion : home
        Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
        Adresse physique . . . . . . . . .: 00-25-22-3A-2B-ED
        DHCP activé. . . . . . . . . . . : Oui
        Configuration automatique activée . . . . : Oui
        Adresse IP. . . . . . . . . . . . : 192.168.1.13
        Masque de sous-réseau . . . . . . : 255.255.255.0
        Passerelle par défaut . . . . . . : 192.168.1.1
        Serveur DHCP. . . . . . . . . . . : 192.168.1.1
        Serveurs DNS . . . . . . . . . .  : 192.168.1.1
        Bail obtenu . . . . . . . . . . . : lundi 9 janvier 2012 14:34:09
        Bail expirant . . . . . . . . . . : mardi 10 janvier 2012 14:34:09

Un client connait en général plusieurs serveur DNS (ce qui n'est pas le cas dans la capture ci-dessus, tirée d'une LiveBox). Cela est utile lorsque le premier serveur DNS ne peut pas répondre (soit qu'il est indisponible, soit qu'il ne connait pas la réponse). Le client interroge alors un des serveurs DNS suivants.

Un client peut interroger comme serveur DNS, en général :

Les commandes MS-DOS pour manipuler les DNS

On a déjà vu les commandes suivantes :

La commande qui permet de lancer une résolution DNS est : nslookup :

C:\>nslookup google.fr

Serveur :  livebox.home
Address:  192.168.1.1

Réponse ne faisant pas autorité :
Nom :    google.fr
Address:  173.194.67.94

La commande nslookup permet également d'interroger un serveur DNS précis, ou de demander les autres résultats que veux correspondant au type "A" (on va voir les types dans le paragraphe sur les serveurs). Par exemple, si je veux savoir quels sont les serveurs de messageries associés à bts-sio.com :

C:\nslookup
Serveur par dÚfaut :  livebox.home
Address:  192.168.1.1

> set type=MX
> bts-sio.com
Serveur :  livebox.home
Address:  192.168.1.1

Réponse ne faisant pas autorité :
bts-sio.com     MX preference = 10, mail exchanger = aspmx.l.google.com
bts-sio.com     MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
> exit

La commande équivalente sous Linux est : dig, par exemple : dig www.google.fr aaaa

Exercice


( ! ) Notice: Undefined index: cookie_user_id in C:\wamp64\www\spastore_cours\htdocs\cours\SI5\1. DNS\DNS debutant.php on line 161
Call Stack
#TimeMemoryFunctionLocation
10.0292435104{main}( )...\DNS debutant.php:0
Erreur MySQL : Erreur de syntaxe prs de '' la ligne 1 dans la requête :
select usr_name from user where usr_id =