L'opération de résolution consiste à faire la correspondance entre un nom de domaine et son adresse IP. Pour effectuer ces opérations de résolution on utilise un service Internet particulier appelé Domain Name System ou DNS. Ce service fonctionne sur le même mode qu'un annuaire téléphonique dans lequel les chiffres du numéro de téléphone sont remplacés par les chiffres de l'adresse IP et le nom d'abonné est remplacé par le nom de domaine.
La commande historique host effectue l'opération de recherche de l'adresse IP correspondant à un nom d'hôte réseau enregistré sur le service DNS et vice versa :
Résolution d'un nom d'hôte.
$ host www.nic.fr www.nic.fr is an alias for rigolo.nic.fr. rigolo.nic.fr has address 192.134.4.20
Résolution d'une adresse IP.
$ host 192.134.4.20 20.4.134.192.in-addr.arpa domain name pointer rigolo.nic.fr.
Il existe une autre commande historique qui donne davantage d'informations sur les jeux de questions/réponses DNS : nslookup. Cette commande est disponible sur les systèmes Micro$oft ; elle est accessible à partir d'un shell. Dans l'univers Unix/Linux, cette commande est abandonnée au profit de la commande dig qui offre davantage d'options et des messages d'erreurs plus rigoureux. Voici un exemple d'exécution à partir du même exemple que ci-dessus.
Exemple de requête DNS de type A qui renvoie l'adresse IP correspondant à un nom d'hôte.
$ dig www.nic.fr ; <<>> DiG 9.4.2 <<>> www.nic.fr ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 355 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 7, ADDITIONAL: 9 ;; QUESTION SECTION:;www.nic.fr. IN A ;; ANSWER SECTION:
www.nic.fr. 163437 IN CNAME rigolo.nic.fr. rigolo.nic.fr. 163437 IN A 192.134.4.20 ;; AUTHORITY SECTION:
nic.fr. 70358 IN NS ns2.nic.fr. nic.fr. 70358 IN NS ns1.nic.fr. nic.fr. 70358 IN NS ns1.oleane.net. nic.fr. 70358 IN NS dns.inria.fr. nic.fr. 70358 IN NS ns-sec.ripe.net. nic.fr. 70358 IN NS ns0.oleane.net. nic.fr. 70358 IN NS ns3.nic.fr. ;; ADDITIONAL SECTION:
dns.inria.fr. 23315 IN A 193.51.208.13 ns0.oleane.net. 133065 IN A 194.2.0.30 ns1.nic.fr. 153582 IN A 192.93.0.1 ns1.nic.fr. 153582 IN AAAA 2001:660:3005:1::1:1 ns2.nic.fr. 153582 IN A 192.93.0.4 ns2.nic.fr. 153582 IN AAAA 2001:660:3005:1::1:2 ns3.nic.fr. 70358 IN A 192.134.0.49 ns3.nic.fr. 70358 IN AAAA 2001:660:3006:1::1:1 ns-sec.ripe.net. 169587 IN A 193.0.0.196 ;; Query time: 22 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 3 17:27:29 2008 ;; MSG SIZE rcvd: 395
Exemple de requête DNS de type PTR qui renvoie le nom d'hôte correspondant à une adresse IP.
$ dig -x 192.134.4.20 ; <<>> DiG 9.4.2 <<>> -x 192.134.4.20 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22357 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 6 ;; QUESTION SECTION:;20.4.134.192.in-addr.arpa. IN PTR ;; ANSWER SECTION:
20.4.134.192.in-addr.arpa. 163116 IN PTR rigolo.nic.fr. ;; AUTHORITY SECTION:
4.134.192.in-addr.arpa. 163116 IN NS ns2.nic.fr. 4.134.192.in-addr.arpa. 163116 IN NS ns3.nic.fr. 4.134.192.in-addr.arpa. 163116 IN NS ns1.nic.fr. ;; ADDITIONAL SECTION:
ns3.nic.fr. 70037 IN A 192.134.0.49 ns3.nic.fr. 70037 IN AAAA 2001:660:3006:1::1:1 ns1.nic.fr. 153261 IN A 192.93.0.1 ns1.nic.fr. 153261 IN AAAA 2001:660:3005:1::1:1 ns2.nic.fr. 153261 IN A 192.93.0.4 ns2.nic.fr. 153261 IN AAAA 2001:660:3005:1::1:2 ;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 3 17:32:50 2008 ;; MSG SIZE rcvd: 256
Ces exemples montrent que la commande dig donne des informations très complètes sur l'état des requêtes.
|
Le champ QUESTION reprend le terme de la requête émise. |
|
|
Le champ ANSWER donne la réponse à la requête. |
|
|
Le champ AUTHORITY donne la liste des serveurs de noms qui ont autortité sur les enregistrements DNS. Ce sont les seuls serveurs aptes à fournir une réponse aux requêtes sur le domaine concerné. |
|
|
Le champ ADDITIONAL donne les adresses IP des serveurs DNS de référence du domaine. |
|
|
Le champ Query time donne le temps de traitement de la requête. La valeur obtenue permet de déduire si le serveur interrogé a déjà la réponse en mémoire cache ou non. |
|
|
Le champ SERVER identifie le serveur qui a pris la requête DNS en charge. |
Pour obtenir la syntaxe de toutes les options disponibles, il faut accéder aux pages de manuels Unix :
via la console avec les commandes man host
et man dig.
via l'interface graphique avec le centre d'aide KDE : → → .
Pour aller plus loin dans l'étude du fonctionnement du service de noms de domaines, il est conseillé de lire le support Services DNS et DHCP.
Vous êtes ici :