DNS : Domaine Name System - Les machines utilisent les adresses IP pour communiquer. - Les humaines ont du mal à manipuler et à retenir des adresses IP. Ils retiennent plus facilement des noms de machines. - Les DNS joue le rôle d annuaire qui permet d associer une adresse IP à une machine.
Caractéristiques de DNS Base de données répartie : chaque organisme gère son propre annuaire Base de données redondante : l annuaire d un organisme figure dans au moins deux DNS (DNS primaire et secondaire) Organisation hiérarchique, chaque annuaire est rattaché à un annuaire parent
Structure hiérarchique La structure hiérarchique de la base se représente sous la forme d un arbre Correspond exactement à la notion d arborescence dans un système de fichiers. Ici, la séparation utilisé est le point. Un domaine est un sous-arbre Un domaine est un nom unique, il ne peut pas en avoir deux du même nom.
Organisation hiérarchique des domaines. com edu gov fr net org info arpa in-addr google gouv univ-artois 0-255 news mail iut-lens 0-225 0-225 0-255
Nom de machine Le nom d une machine s écrit du plus spécifique au moins spécifique (de gauche à droite) = ordre inverse du système de fichiers On retrouve la notion de chemin absolu (FQDN) et relatif. Un chemin absolu se termine par un point.
Annuaire inversé Le DNS permet aussi de retrouver un nom de machine à partir de son adresse IP en utilisant le domaine in-addr.arpa et en cherchant un record de type PTR Comme les noms vont du plus spécifique au moins spécifique, cela nécessite d inverser l adresse IP Par exemple, pour rechercher le nom de 192.134.4.240, on recherchera 240.4.134.492.inaddr.arpa.
Les serveurs racine Un certain nombre de serveurs permettent de répondre aux questions sur le domaine même (A.ROOT-SERVERS.NET à M.ROOT- SERVERS.NET) Ils connaissent les adresses des serveurs DNS pour tous les domaines de niveau 1 Ils servent de point de départ pour les recherches qui ne figurent pas déjà dans un cache.
Les domaines de niveau 1 Les instituts US :.com : commercial.edu : education.gov : gouvernemental.net : internet.mil : militaire
Les données d un DNS Un DNS contient différents types d informations Les unités d info sont les Ressources Record (RR)
Les types de record (1) SOA (Start Of Authority) Informations globales sur une zone de DNS NS (Name Server) indique un serveur DNS qui a autorité pour un domaine A (Address) fournit l adresse IP d une machine CNAME (Cannonical Name) donne le nom canonique d une machine
Les types de record (2) MX (Mail exchanger) identifie un relais de messagerie pour un domaine TXT (Text) permet d associer un commentaire à une entrée WKS (Well Known Services) liste de services fournis (rare) HINFO (Host Info) information sur la machine (modèle, système) (rare) PTR (Pointer) associe un nom à une adresse IP
DNS primaire et secondaire Les données concernant un domaine sont stockés dans un DNS dit primaire (ou maître) Un deuxième DNS (secondaire ou esclave) conserve une copie des données du serveur primaire (en cas de panne) Ces deux serveurs ont autorité pour répondre aux questions concernant leur domaine.
Cache Quand un serveur DNS transmet a un client une réponse qu il a obtenu en interrogent un autre serveur, il la conserve dans un cache. Si la même requête lui parvient plus tard, il utilisera les données dans son cache mais signalera que les données sont «non authoritative».
TTL (Time To Live) Les données dans la cache d un serveur doivent expirer au bout d un certain temps. Cette durée est données par le TTL qui est un paramètre positionnée sur le serveur primaire du domaine.
Les clients DNS : le resolver Sous UNIX, le client DNS est une simple librairie de fonctions (man resolver) utilisée par chaque application Le fichier de configuration principal est /etc/resolv.conf
/etc/resolv.conf Ce fichier contient essentiellement Le domaine par défaut à rajouter aux noms de machine qui ne sont pas absolus (directive search) La liste des serveurs DNS à contacter pour obtenir une réponse (les serveurs de cette liste sont essayés un par un jusqu à obtenir une réponse.)
Les commandes Dig (affichage complexe affiche le TTL) host
Deux types de requêtes DNS : Il existes deux types : Les requêtes itératives Le serveur consulté ne renvoie la réponse que si il la connaît (soit parce qu il a autorité pour le domaine, soit parce qu elle est dans son cache). Sinon, il se contente d indiquer un autre serveur plus proche de la réponse à la question. Les requêtes récursives Le serveur doit se débrouiller pour consulter les autres DNS et répondre à la question.
Remarques sur les requêtes itératives Si l un des serveurs «.», «.au» ou «.gov.au» avait eu la réponse dans son cache, il l aurait renvoyé directement Les requêtes itératives font travailler le client et minimisent la charge des serveurs DNS consultés
Remarques sur les requêtes récursives Le client est plus simple à programmer et n a pas besoin d un accès à tous les DNS (firewall) Normalement un serveur DNS n utilise pas de requête récursive pour répondre aux questions qu on lui pose. Les serveurs DNS : BIND
Les serveurs DNS : BIND BIND (Berkeley Internet Domain) est le serveur DNS le plus courant. Le démon qui répond aux requêtes s appelle named Les RR sont décrits par des lignes de la forme [name][ttl][classe] record-type record-data La seule classe à utiliser est IN (pour Internet)
Zone file Les RR sont regroupés dans les fichiers définissant une zone. On retrouvera par exemple une zone par sous-domaine. Chaque zone commence par un SOA record. Le principal fichier de configuration contient une description des zones (/etc/named.conf)
Le record SOA domain. IN SOA DNSprimaire.emailresponsable ( ) 20011101 ; numéro de série (strictement croissant) 10800 ; délai de rafraîchissement pour les esclaves 3600 ; délai pour réessayer si le maître est injoignable 604800 ; délai d expiration si le serveur est toujours injoignable 86400 ; «minimum» TTL (par défaut dans BIND)
Exemple de SOA linux.bogus. IN SOA ns.linux.bogus. root.linux.bogus( ) 1 ; serial 8H ; refresh 2H ; retry 4W ; expire 10 ; min TTL
Reste du fichier Linux.bogus. IN NS terminator IN NS robocop robocop IN A 192.249.249.2 terminator IN A 192.249.249.3 schwarzy IN CNAME terminator
Reverse zone 249.249.192.in-addr.arpa.IN SOA ns.linux.bogus. root.linux.bogus( ) IN NS terminator.linux..bogus IN NS robocop.linux.bogus 2 IN PTR robocop.linux.bogus 3 IN PTR terminator.linux.bogus
/etc/named.conf options { directory "/var/named" } forwarders { IP DNS à utiliser } zone ". " { type hint ; file «named.ca»} ; zone "linux.bogus"{ type master file "named.linux.bogus"} ; zone "249.249.192.in-addr.arpa" { type.master.file "named.249.249.192.in-addr.arpa"} ;