6 1 ERE PARTIE : LES PRINCIPES DE BASE DE DNS 1- Le concept DNS Chaque fois que nous voulons utiliser un service Web (Internet), on fait des recherches ou on accède directement à ce service en se servant d un nom convivial, comme par exemple www.laposte.net. En effet, un nom convivial est plus facile à retenir. Cependant, les ordinateurs utilisent des adresses numériques pour communiquer sur un réseau. Pour faciliter l'utilisation des ressources réseau, le service de noms DNS fournit une méthode qui établit la correspondance entre le nom convivial d'un ordinateur ou d'un service et son adresse numérique (adresse IP). a) Définition DNS (Domain Name System, système de noms de domaine) est un système de noms pour les ordinateurs et les services réseau organisé selon une hiérarchie de domaines. Le système DNS est utilisé dans les réseaux TCP/IP tel qu'internet pour localiser des ordinateurs (trouver leur adresse IP) et des services à l'aide de noms conviviaux b) Notion de domaine DNS Le système de nom de domaine (DNS) a été initialement défini dans les RFC (Request for Comments, demandes de commentaires) 1034 et 1035. Ces documents spécifient les éléments communs à toutes les implémentations des logiciels DNS, qui comprennent entre autres : qui définit une structure hiérarchique des domaines permettant d'organiser les noms. Qui associent (mappent) les noms de domaines DNS à un. type spécifique d information (serveur, adr IP, Alias, ) qui traitent les requêtes de noms portant sur des enregistrements Un espace de noms de domaines DNS : Des enregistrements de ressources : Des serveurs DNS : de ressources (réponses et stockage). Des clients DNS : également appelés solveurs, qui demandent aux serveurs de rechercher et de convertir les noms en un type d'enregistrement de ressource spécifié dans la requête. L'espace de noms de domaines DNS, illustré dans la figure ci-dessous, repose sur le concept d'arborescence des domaines nommés. Chaque niveau de l'arborescence représente une branche ou une feuille de cet arbre : Une branche : est un niveau dans lequel plusieurs noms sont utilisés pour identifier un ensemble de ressources nommées. (Sous la branche, il y a encore d autres ressources) Une feuille : représente un nom unique utilisé une seule fois à ce niveau pour identifier une ressource spécifique. (racine) Domaine racine com us gov net fr edu Domaines de premier niveau ou TLD (Top Level Domain) Site d accueil de l académie : www.ac-aix-marseille.fr Académie-Aix-Marseille ----- Nom de Domaine de second niveau Examens ---- Nom de sous domaine créé par l académie d Aix-Marseille Exam-BTS ---- Nom DNS attribué à l ordinateur Georges ESQUIROL Page 1
La plupart des noms de domaines DNS comporte deux étiquettes (label) ou plus (ex : [Académie-Aix- Marseille][.][fr]), chacune indiquant un niveau de l'arborescence. Les points sont utilisés pour séparer les étiquettes. Voici les termes utilisés pour décrire les noms de domaines DNS par leur fonction dans l'espace de noms : - La racine du domaine : Il s'agit de la cime de l'arborescence, représentant un niveau non nommé. Elle est parfois affichée sous la forme de deux guillemets vides (""), indiquant une valeur nulle. Lorsqu'elle est utilisée dans un nom de domaine DNS, elle est indiquée par un point (.) à droite pour indiquer que le nom est situé à la racine ou niveau supérieur de la hiérarchie du domaine. Le nom de domaine DNS est alors considéré comme un nom de domaine complet (FQDN, Fully Qualified Domain Name) et désigne un emplacement exact de l'arborescence des noms. Ex : «www2.lyc-aubanel.ac-aix-marseille.fr.» Racine du domaine - Domaine de premier niveau (TLD Top Level Domain): Nom de deux ou trois lettres utilisé pour indiquer un pays/une région ou le type d'organisation utilisant un nom. Domaines génériques : Existant depuis l origine :.com.edu.gov.int.mil.net.org (gtld, generic TLD) Nouveaux gtld : (novembre 2000) Domaines nationaux : (cctld, country code).aero.biz.museum.name.info.coop.pro Correspondant aux codes nationaux définis par la norme ISO 3166.fr.us.de etc. - Domaine de second niveau : Noms de domaines inscrits au nom d'un individu ou d'une organisation pour une utilisation sur Internet. Ces noms sont toujours associés à un domaine de premier niveau approprié, selon le type d'organisation ou l'emplacement géographique dans lequel un nom est utilisé. La demande de nom de domaine se dépose auprès d'un organisme international (l'internic) ou de l'un des sous-organismes appelés «registrars» (pour la France il s'agit de l'afnic). - Sous-domaine : Noms supplémentaires pouvant être créés par une organisation et associés au nom de domaine de second niveau inscrit. Toute organisation peut développer sa propre arborescence en fonction des services offerts ou de la localisation géographique. - Nom d'hôte ou de ressource : Nom qui représente une feuille (extrémité) de l'arborescence DNS des noms et identifie une ressource spécifique. Généralement, l'étiquette la plus à gauche d'un nom de domaine DNS identifie un ordinateur spécifique du réseau. Pour DNS, un nom de domaine complet composé de plusieurs niveaux se présente de la manière suivante : «Exam-BTS.examens.ac-aix-marseille.fr.» et se lit de gauche à droite : 1 Exam-BTS Nom d hôte (car + à gauche => feuille ou extrémité) 2 examens, Nom de domaine qui correspond à un sous-domaine dans lequel se trouve l hôte 3 ac-aix-marseille, Nom de domaine qui correspond au domaine parent constituant la racine du sous-domaine examens. 4 fr, domaine de premier niveau associé à la zone géographique France constitue la racine du domaine ac-aix-marseille. 5 Le point à droite (.) utilisé pour qualifier le nom de domaine DNS complet (FQDN) sur le niveau racine de l'arborescence des espaces de noms DNS Georges ESQUIROL Page 2
c) DNS et Internet Le système de nom de domaine (DNS) offre un service de mappage nom-adresse pour les ordinateurs sur Internet. Avant l'introduction de DNS en 1987, la correspondance (mappage) entre les noms d'ordinateurs et les adresses IP était principalement réalisée au moyen d'un fichier statique partagé, appelé fichier Hosts. À l'origine, le réseau Internet était peu étendu et permettait d'utiliser un seul fichier administré de façon centralisé. Périodiquement, chaque site Internet mettait ensuite à jour sa propre copie du fichier. À mesure que le nombre d'ordinateurs sur le réseau Internet a augmenté, il devenait impossible de travailler avec une autorité centralisée gérant un seul fichier Hosts pour tous les hôtes Internet. Le fichier est vite devenu de plus en plus volumineux, rendant ainsi plus difficiles sa gestion et sa distribution à tous les sites. La norme DNS a été développée afin de fournir une solution de remplacement des fichiers Hosts. 2-Fonctionnement des requêtes DNS Lorsqu'un client DNS a besoin de rechercher un nom utilisé dans un programme, il interroge les serveurs DNS pour résoudre ce nom. Chaque message de requête envoyé par le client contient trois informations, qui définissent une question à laquelle le serveur doit répondre. Les requêtes DNS peuvent être résolues de différentes manières : Un client peut parfois répondre localement à une requête en utilisant les informations mises en cache obtenues en réponse à une requête précédente. Le serveur DNS peut utiliser son propre cache des informations d'enregistrement de ressource pour répondre à une requête. Un serveur DNS peut également interroger ou contacter d'autres serveurs DNS au nom du client effectuant la requête de manière à complètement résoudre le nom, puis renvoyer une réponse au client. Ce processus est désigné par le terme récursivité. Le client lui-même peut essayer de contacter d'autres serveurs DNS pour résoudre un nom. Dans ce cas, il utilise des requêtes supplémentaires distinctes reposant sur des réponses de référence obtenues à partir des serveurs. Ce processus est désigné par le terme d itération. D'une manière générale, la requête DNS est un processus en deux parties : 1. Une requête de nom est formulée au niveau de l ordinateur client et transmise au solveur (ou résolveur), qui est le service Client DNS, en vue d'être résolue. 2. Lorsque la requête ne peut pas être résolue localement, les serveurs DNS nécessaires pour résoudre le nom peuvent être interrogés. 2.1. La récursivité Le principe de la récursivité est basé sur le fait que si un serveur DNS (serveur1) ne peut pas répondre à un client DNS, alors il devient lui-même client est s adresse à un autre serveur DNS (serveur2). Cette opération peut alors se répéter plusieurs fois jusqu à ce qu un serveur DNS (serveur N) puisse enfin répondre. Ce serveur DNS (serveur N) répond alors au serveur DNS qui la sollicité (serveur N-1), qui répond lui-même à un autre serveur et ainsi de suite jusqu à ce que la réponse parvienne au premier serveur DNS (serveur 1) qui peut alors répondre au client DNS. client fr. asso.fr. mdm.asso.fr. 1 2 3 6 5 4 A indique le type de réponse, ici une adresse d hôte Georges ESQUIROL Page 3
2.2. L itération Une requête itérative formulée par un client indique au serveur DNS que le client attend que ce dernier lui fournisse immédiatement la meilleure réponse possible, sans contacter d'autres serveurs DNS. L'itération est le type de résolution de nom utilisé entre les clients et les serveurs DNS dans les cas suivants : Le client demande l'utilisation de la récursivité, mais celle-ci est désactivée sur le serveur DNS. Le client ne demande pas l'utilisation de la récursivité lors de l'interrogation du serveur DNS. Dans le mode itératif, le «résolveur» ou «solveur» du client prend en charge la recherche de bout en bout, en s'adressant aux serveurs proposés à l'issue de chaque requête, jusqu'à obtenir la réponse souhaitée. client fr asso.fr mdm.asso.fr 1 www.mdm.asso.fr? NS(asso.fr, 27.1.3.5) 2 NS indique le type de réponse fournie, Ici une référence à un autre serveur 3 NS(mdm.asso.fr, 19.5.7.3) 4 5 6 A indique le type de réponse, ici une adresse d hôte 2.3. La mise en cache Lorsque les serveurs DNS traitent les requêtes clientes à l'aide de la récursivité ou de l'itération, ils acquièrent de nombreuses informations sur l'espace de noms DNS. Ces informations sont ensuite mises en cache par le serveur (c est à dire mémorisée temporairement). La mise en cache permet d'accélérer la résolution DNS pour les requêtes ultérieures portant sur des noms très utilisés, tout en réduisant de manière significative le trafic des requêtes DNS sur le réseau. Lorsque les informations sont mises en cache, une valeur «Durée de vie» (TTL, Time-To-Live) s'applique alors à tous les enregistrements de ressources mis en cache. Tant que la durée de vie d'un enregistrement de ressource mis en cache n'arrive pas à expiration, un serveur DNS peut continuer à mettre en cache et à utiliser l'enregistrement de ressource pour répondre aux requêtes de ses clients Généralement, la valeur de la durée de vie minimale est configurée par défaut à 3 600 secondes (1 heure). Cette valeur peut être modifiée. Georges ESQUIROL Page 4
3- Rôles du client et du serveur Rôle du client Pour chaque requête, le résolveur (ou solveur) du client interroge d'abord son cache, et si la référence ne s'y trouve pas, il lance un cycle de recherche : il envoie pour cela au premier serveur DNS de sa liste (configuration IP) une requête de résolution de nom, accompagnée du nom d'hôte à traduire en adresse. Plusieurs cas de figure sont alors possibles : 1 Si la réponse est une référence (adresse d un autre serveur de noms), il met à jour son cache avec cette adresse et renvoie une requête au serveur qui lui est proposé. 2 S'il n'y a pas de réponse au-delà d'un certain délai (time out de cinq secondes en général), il renvoie la requête au serveur suivant, tant qu il en reste sur la liste. 3 S'il n'y a plus de serveur dans la liste, il recommence un nouveau cycle de recherche sur l ensemble des serveurs, avec un délai d attente supérieur. 4 Au bout de trois cycles de recherche sans réponse, le résolveur émet un message d'erreur temporaire. Rôle du serveur Un serveur de noms peut, comme on l a vu, jouer à la fois le rôle de client ou de serveur. Le serveur reçoit des requêtes de résolution et envoie une réponse qui peut être : Une réponse d'erreur faisant autorité indiquant que le nom n'existe pas. Une indication temporaire d'erreur (serveur inaccessible par exemple). Une combinaison : => des enregistrements de ressources (Ressource Record ou RR) qui répondent à la question, avec indication si les données sont extraites d'une zone ou d'un cache. => d'une référence à un serveur de noms qui gère une zone plus "proche" du nom demandé que le serveur qui a été contacté. La réponse peut toujours être générée à partir des seules données locales, correspondant à la zone partagée (nous ne nous intéresserons pas ici à sa structure interne, mais à son contenu identique au fichier de configuration) et à la zone de cache, alimentée par le résultat des recherches précédentes. Georges ESQUIROL Page 5
4- Les outils utiles pour DNS Windows 2008 offre un certain nombre d'utilitaires pour l'administration, la surveillance et la résolution des problèmes des serveurs et des clients DNS : La console DNS qui fait partie des Outils d'administration. Des fonctionnalités de journalisation comme le journal du serveur DNS qui peut être consulté à l'aide de l'observateur d'événements. Des fichiers journaux peuvent également être utilisés temporairement en tant qu'option de débogage avancée pour l'enregistrement et le suivi d'événements sélectionnés du service. Des utilitaires d'analyse des performances, notamment des compteurs de statistiques pour mesurer et surveiller l'activité des serveurs DNS à l'aide du Moniteur système. On peut également profiter d utilitaires fonctionnant en mode de ligne de commande tels que : Nslookup (Name System Look Up): c est un outil permettant d'interroger un serveur de noms afin d'obtenir les informations concernant un domaine ou un hôte et permet ainsi de diagnostiquer les éventuels problèmes de configuration du DNS. Invoqué sans argument, la commande nslookup affiche le nom et l'adresse IP du serveur de noms primaire et affiche une invite de commande pour l'interrogation. Il suffit de taper le nom d'un domaine à l'invite afin d'en afficher les caractéristiques. Il est également possible de demander les informations sur un hôte en indiquant son nom à la suite de la commande nslookup ou biend utiliser la clause set (set type=soa qui permet d'afficher les informations du champ SOA (Start Of Authority) ou encore set type=ns qui permet de recueillir les informations concernant le serveur de noms associé au domaine). Ne pas oublier de taper exit pour sortir de la commande nslookup. Ipconfig : Cette commande permet, grâce à l option «/all» d'afficher les adresses IP des serveurs DNS configurés sur le poste de travail. Georges ESQUIROL Page 6
2 EME PARTIE : NETBIOS Netbios est un protocole de transfert de fichiers co-développé par IBM et Sytec au début des années 1980. En 2005, il est utilisé principalement par Microsoft. C est une interface qui permet d établir des sessions entre différents ordinateurs d un réseau. NetBIOS n'est pas un protocole en soi. C'est une interface logicielle et un mode de nommage. Il est à la base de tout le fonctionnement d'un réseau Microsoft, qu'il s'agisse d'un groupe de travail ou d'un domaine. Il comprend le nommage des machines, le nommage des groupes de travail, ou des domaines, mais aussi l'identification d'un serveur comme contrôleur de domaine ou comme simple station, il fait fonctionner ce qu'on appelle le voisinage réseau. Il a été fortement décrié pour la charge induite sur les réseaux, mais c'est aussi un système puissant et fonctionnel dès lors qu'il est paramétré avec soin sur un système stable et bien protégé. NetBIOS est le système de nommage des réseaux SMB (Server Message Block) SMB est un protocole permettant le partage de ressources (fichiers et imprimantes) sur des réseaux locaux sous Windows. On peut le comparer grossièrement à DNS pour le nommage Internet. NetBios utilise les ports suivants: 135 Service de localisation utilisé par les appels de procédure à distance. 137 netbios-ns - NETBIOS Name Service (NBNS) 138 netbios-dgm - NETBIOS Datagram Service 139 netbios-ssn - NETBIOS Session Service 445 (versions récentes de Windows : 2000, XP, Vista) Netbios Name Service (port udp 137) Ce service (NBNS) sert à allouer un nom d ordinateur à une adresse IP. Ce nom est limité à 15 caractères, plus un caractère renseignant sur le type de machine. Netbios Datagram Service (port udp 138) Ce service permet d échanger des messages en mode non connecté. Netbios Session Service (port tcp 139) Ce service permet d échanger des messages en mode connecté. Commande utile : nbtstat (voir les options dans l invite de commande) 3 EME PARTIE : FICHIER «HOSTS» Le fichier «hosts» (ou lmhosts) est un fichier utilisé par le système d'exploitation d'un ordinateur lors de l'accès à Internet. Son rôle est d'associer des noms d'hôtes à des adresses IP. Il permet ainsi au système de connaître l'adresse IP associée au nom de domaine sans avoir recours à une requête DNS. Lors de l'accès à une ressource réseau par nom de domaine, ce fichier est consulté avant l'accès au serveur DNS Sous Windows, ce fichier se trouve sous C:\WINDOWS\system32\drivers\etc. Chaque ligne de ce fichier est composée de l adresse IP est du nom de domaine correspondant. Exemple : 207.46.19.254 www.microsoft.com Cette technologie, l'ancêtre d'internet et du DNS, nécessite des mises à jour régulières du fichier et par conséquent ne peut être utilisée que pour les réseaux locaux de faible taille, ainsi que dans certains cas particuliers, comme par exemple pour le filtrage web. Par exemple, si l on veut bloquer l accès au site www.google.fr il suffit de l associer à l adresse IP 127.0.0.1 Le fichier «hosts» aura donc la ligne : 127.0.0.1 www.google.fr. Georges ESQUIROL Page 7