Vous êtes sur la page 1sur 7

DNS

Laila El Aimani

Remarque: Ce cours pratique est basé sur les cours de Kurose et


Ross, disponibles au site http://www-
net.cs.umass.edu/wireshark-labs/
© 2005-21012, J.F Kurose and K.W. Ross, All Rights Reserved

DNS traduit les noms des systèmes hôtes en adresses IP, jouant ainsi un rôle essentiel
dans l'infrastructure d'Internet. Dans ce cours pratique, nous allons regarder le côté client
de DNS. Rappelons que le rôle du client dans DNS est relativement simple - un client
envoie une requête au serveur DNS local, et reçoit une réponse en retour. Cependant,
beaucoup de choses, comme vu dans le cours, sont invisibles pour les clients DNS, e.g.
les serveurs DNS hiérarchiques communiquent entre eux de manière récursive ou
itérative pour résoudre la requête DNS du client. Du point de vue du client DNS,
toutefois, le protocole est très simple - une requête est formulée pour le serveur DNS
local et une réponse est reçue à partir de ce serveur.

1. Nslookup
Dans ce TP, nous allons faire un usage intensif de l'outil nslookup, qui est disponible
dans la plupart des plates-formes Linux/Unix et Microsoft. Pour exécuter nslookup sous
Linux/Unix, vous tapez simplement la commande nslookup sur la ligne de commande.
Pour l'exécuter sous Windows, ouvrez l'invite de commande et exécutez nslookup sur la
ligne de commande.

Dans son mode le plus basique, l'outil nslookup permet à l'hôte d'exécuter l'outil pour
interroger un serveur DNS spécifié pour un enregistrement DNS. Le serveur DNS
interrogé peut être un serveur racine DNS, un serveur de domaine de haut niveau DNS,
un serveur DNS faisant autorité, ou un serveur DNS intermédiaire. Pour accomplir cette
tâche, nslookup envoie une requête DNS vers le serveur DNS spécifié, reçoit une réponse
DNS à partir de ce même serveur DNS, et affiche le résultat.

La capture d'écran ci-dessus montre les résultats de trois commandes nslookup


indépendants (affichées dans l'invite de commande de Windows). Dans cet exemple,
l'hôte client est situé sur le campus de l'Université polytechnique de Brooklyn, où le
serveur local de DNS par défaut est dns-prime.poly.edu. Lors de l'exécution nslookup, si
aucun serveur DNS n'est spécifié, alors nslookup envoie la requête au serveur DNS par
défaut, qui est dans ce cas dns-prime.poly.edu. Considérons la première commande:

nslookup www.mit.edu

Cette commande demande "s'il vous plaît envoyez-moi l'adresse IP de l'hôte


www.mit.edu". Comme le montre la capture d'écran, la réponse à cette commande fournit
deux types d'informations: (1) le nom et l'adresse IP du serveur DNS qui fournit la
réponse, et (2) la réponse elle-même, qui est le nom d'hôte et l'adresse IP de
www.mit.edu. Bien que la réponse est venue du serveur DNS local à l'Université
polytechnique, il est tout à fait possible que ce serveur DNS local ait contacté
itérativement plusieurs autres serveurs DNS pour obtenir la réponse.

Considérons maintenant la seconde commande:

nslookup –type=NS mit.edu

Dans cet exemple, nous avons fourni l'option «- type = NS» et le domaine « mit.edu» .
Cela provoque nslookup pour envoyer une requête pour un enregistrement de type NS au
serveur local de DNS par défaut. I.e., la requête demande: «s'il vous plaît envoyez -moi
les noms d'hôtes du DNS faisant autorité pour «mit.edu». (Lorsque l'option du type n'est
pas utilisée, nslookup utilise la valeur par défaut, qui consiste à interroger des
enregistrements de type A). La réponse, affichée dans la capture d'écran ci-dessus ,
indique d'abord le serveur DNS qui fournit la réponse (à savoir le serveur DNS local par
defaut) ainsi que trois serveurs DNS du MIT. Chacun de ces serveurs est en effet un
serveur DNS faisant autorité pour les hôtes sur le campus du MIT. Cependant, nslookup
indique également que la réponse est «non - autoritaire», ce qui signifie que cette réponse
est venue de la mémoire cache d'un certain serveur plutôt que à partir d'un serveur DNS
faisant autorité de MIT. Enfin, la réponse inclut également les adresses IP des serveurs
DNS faisant autorité du MIT. (Même si la requête de type NS généré par nslookup n'a
pas demandé explicitement ces adresses IP, le serveur DNS local retourne les
«gratuitement» et nslookup affiche le résultat .)

Maintenant, considérons la troisième commande:

nslookup www.aiit.or.kr bitsy.mit.edu

Dans cet exemple, nous indiquons que nous voulons que la requête soit envoyée au
serveur DNS bitsy.mit.edu plutôt que le serveur DNS par défaut (dns-prime.poly.edu).
Ainsi, l'opération de requête et de réponse a lieu directement entre notre hôte qui
interroge et bitsy.mit.edu. Dans cet exemple, le serveur DNS bitsy.mit.edu fournit
l'adresse IP de www.aiit.or.kr, qui est un serveur Web à l'Institut supérieur de technologie
de l'information (en Corée).

Maintenant que nous avons survolé quelques exemples, vous vous interrogez peut être
sur la syntaxe générale des commandes nslookup. La syntaxe est:

nslookup –option1 –option2 host-to-find dns-server

En général, nslookup peut être exécuté avec zéro, un, deux ou plusieurs options. Et
comme nous l'avons vu dans les exemples ci-dessus, le serveur DNS est facultatif et, si il
n'est pas fourni, la requête est envoyée au serveur DNS par défaut (serveur local).

Maintenant que nous avons donné un aperçu de nslookup, il est temps de tester la
commande vous-même. Procédez comme suit (et notez les résultats):

1. Exécutez nslookup pour obtenir l'adresse IP d'un serveur Web en Asie. Quelle est
l'adresse IP de ce serveur?
2. Exécutez nslookup pour déterminer les serveurs DNS faisant autorité pour une
université en Europe.
3. Exécutez nslookup afin que l'un des serveurs DNS obtenus à la question 2 est
interrogé pour les serveurs de messagerie pour Yahoo! Mail. Quelle est son
adresse IP?
2. ipconfig

ipconfig (pour Windows) et ifconfig (pour Linux / Unix) sont parmi les petits utilitaires
les plus utiles à votre hôte, en particulier pour les problèmes de débogage de réseaux. Ici,
nous allons décrire uniquement ipconfig, même si la commande ifconfig Linux / Unix est
très similaire. ipconfig peut être utilisée pour montrer vos informations TCP/IP, y
compris votre adresse, les adresses des serveurs DNS, type de carte et ainsi de suite. Par
exemple, vous pouvez avoir toutes ces informations sur votre hôte en entrant simplement

ipconfig \all

dans l'invite de commande, comme indiqué dans la capture d'écran suivante.

ipconfig est également très utile pour gérer les informations de DNS stockées dans votre
hôte. Nous avons appris en cours qu'un hôte peut mettre en cache les enregistrements
DNS qu'il a récemment obtenus. Pour voir ces documents en cache, après l'invite C: \>
fournir la commande suivante:

ipconfig /displaydns

Chaque entrée indique la durée de vie (TTL) en secondes. Pour vider le cache, entrez
ipconfig /flushdns
L'action de vider le cache DNS supprime toutes les entrées et recharge les entrées du
fichier hosts.

3. Traçage de DNS avec Wireshark

Maintenant que nous nous sommes familiarisés avec nslookup et ipconfig, nous sommes
prêts à passer aux choses sérieuses. Essayons d'abord de capturer les paquets DNS qui
sont générés par la navigation ordinaire sur le Web.

 Utilisez ipconfig pour vider le cache DNS de votre hôte.


 Démarrez votre navigateur et vider le cache de votre navigateur. (Avec
Internet Explorer, allez dans le menu Outils et sélectionnez Options Internet,
puis dans l'onglet Général, sélectionnez Supprimer les fichiers.)
 Démarrez Wireshark et entrez "ip.addr == votre_adresse_IP" dans le filtre,
(vous obtenez votre_adresse_IP avec ipconfig). Ce filtre supprime tous les
paquets qui ne proviennent pas / ne sont pas destinés à votre hôte.
 Lancer la capture de paquets Wireshark.
 Avec votre navigateur, visitez la page Web: http://www.ietf.org
 Arrêter la capture de paquets

Si vous êtes incapable d'exécuter Wireshark sur une connexion réseau, vous pouvez
télécharger un fichier de trace de paquets qui ont été capturés en suivant les étapes ci-
dessus1. Répondez aux questions suivantes en justifiant vos réponses; vous devez
indiquer le paquet (s) (en utilisant une capture d'écran par exemple) que vous avez utilisé
pour répondre à la question demandée. Annoter vos figures/impressions2 to explain your
answer. Pour imprimer un paquet, utilisez la commande File-> Print, choisissez «Selected
packet only», puis choisissez «Packet summary line», et sélectionnez la quantité
minimale de détail de paquet dont vous avez besoin pour répondre à la question.

4. Localiser la requête DNS et les messages de réponse. Sont its envoyés sur UDP
ou TCP?
5. Quel est le port de la destination dans la requête DNS? Quel est le port de la
source dans la réponse DNS?
6. À quelle adresse IP la requête DNS est elle envoyée? Utilisez ipconfig pour
déterminer l'adresse IP de votre serveur DNS local. Ces deux adresses IP sont les
mêmes?
7. Examinez la requête DNS. Quel est le "Type" de la requête DNS? Est-ce que la
requête contient des «réponses»?

1
Télécharger le fichier zip http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip et extraire le
fichier dns-éthérée-trace-1. Une fois que vous avez téléchargé la trace, vous pouvez la charger dans
Wireshark et voir la trace à l'aide du menu déroulant Fichier->Ouvrir, puis en sélectionnant le fichier dns-
éthérée-trace-1 trace.
2
Si vous rendez une copie électronique, ce serait bien si vous pouviez mettre en évidence les parties de la
trace qui vous ont aidé à répondre aux questions.
8. Examiner la réponse DNS. Combien de "réponses" sont fournies? Qu'est-ce que
contient chacune de ces réponses?
9. Considérons le paquet TCP SYN envoyé par votre hôte. Est-ce que l'adresse IP
de destination de ce paquet correspond à l'une des adresses IP fournies dans la
réponse DNS?
10. Cette page Web contient des images. Avant de récupérer chaque image, est ce que
votre hôte émet de nouvelles requêtes DNS?
Maintenant, nous allons jouer avec nslookup3.
 Commencer la capture.
 Faire un nslookup sur www.mit.edu
 Arrêter la capture.
Vous devez avoir un trace comme celle-ci:

Nous remarquons dans la capture d'écran ci-dessus que nslookup a effectivement envoyé
trois requêtes DNS et a reçu trois réponses DNS. Pour ce TP, en répondant aux questions
suivantes, ignorer les deux premières séries de requêtes / réponses, car elles sont
spécifiques à nslookup et ne sont pas générés par les applications standard d'Internet.
Vous devriez plutôt vous concentrer sur la dernière requête/réponse.

3
Si vous êtes incapable d'exécuter Wireshark et capturer un fichier de trace, utilisez le fichier de trace dns-éthérée-
trace-2 dans le fichier zip fourni en classe.
11. Quel est le port de destination pour la requête DNS? Quel est le port de la source
pour la réponse DNS?
12. À quelle adresse IP la requête DNS est elle envoyée? Est-ce l'adresse IP de votre
serveur DNS local par défaut?
13. Examinez la requête DNS. Quel est le "Type" de cette requête DNS? Est-ce que la
requête contient des «réponses»?
14. Examinez le message de réponse de DNS. Combien de "réponses" sont fournies?
Qu'est-ce que contient chacune de ces réponses?
15. Fournir une capture d'écran.

Maintenant, répétez l'expérience précédente, en utilisant la commande:

nslookup –type=NS mit.edu

Répondre aux questions4 suivantes:

16. À quelle adresse IP la requête DNS est elle envoyée? Est-ce l'adresse IP de votre
serveur DNS local par défaut?
17. Examinez la requête DNS. Quel est le "Type" de cette requête DNS? Est-ce que la
requête contient des «réponses»?
18. Examiner le message de réponse de DNS. Quels sont les serveurs de noms MIT
fournis par la réponse? Est-ce que cette réponse fournit également les adresses IP
des serveurs MIT?
19. Fournir une capture d'écran.

Maintenant, répétez l'expérience précédente, en utilisant la commande:

nslookup www.aiit.or.kr bitsy.mit.edu

Répondre aux questions5:

20. À quelle adresse IP la requête DNS est elle envoyée? Est-ce l'adresse IP de votre
serveur local DNS par défaut? Sinon, A quoi correspond l'adresse IP en question?
21. Examinez la requête DNS. Quel est le "Type" de cette requête DNS? Est-ce que la
requête contient des «réponses»?
22. Examinez le message de réponse de DNS. Combien de "réponses" sont fournies?
Qu'est-ce que contient chacune de ces réponses?
23. Fournir une capture d'écran.

4
Si vous êtes incapable d'exécuter Wireshark et capturer un fichier de trace, utilisez le fichier de trace dns-
éthérée-trace-3
5
Si vous êtes incapable d'exécuter Wireshark et capturer un fichier de trace, utilisez le fichier de trace dns-éthérée-
trace-4

Vous aimerez peut-être aussi