Domain Name Service (DNS) FOSSOUO Xavier (AUF) Xavier.fossouo@auf.org
PLAN Introduction Nommage avec /etc/hosts Principe du découpage en domaines Configuration de BIND Création d’une zone Outils de débuggage (dig, nslookup) Déclaration d’une zone en esclave Enregistrement sur le TLD DNS inverse Autres RR: CNAME, MX, TXT, AAAA
Introduction, le besoin nommer une machine sur le réseau en effectuant une correspondance entre le nom choisi et le numéro IP (résolution de nom) trouver le nom d ’une machine à partir de son numéro IP (résolution inverse) identifier un groupe de machines ayant des ressources réseau communes (relais de messagerie, …)
Introduction (suite) Quelques exemples simples : nom de domaine : afnic.asso.fr nom de machine : ftp.afnic.asso.fr adresse ip 192.134.4.13 nom de machine : relay1.afnic.asso.fr adresse ip 192.134.4.17 nom de machine : www.afnic.asso.fr adresse ip 192.134.4.11 nom de machine : www.nic.fr adresse ip 192.134.4.11 adresse IP : 192.134.4.11 www.afnic.asso.fr www.nic.fr Une information dans le DNS indique vers quelle machine diriger le courrier électronique : Jean.Dupont@afnic.asso.fr relay1.afnic.asso.fr adresse ip 192.134.4.17
Introduction (suite) Jusqu’en 1984 : fichier hosts.txt => /etc/hosts inadapté à grande échelle temps de diffusion des infos (par ftp !) système centralisé quelques centaines de machines dans les années 70 plusieurs millions aujourd’hui correspondance statique ne contient que des infos réduites noms enregistrés sous le domaine arpa => collision rapide de noms
Introduction (suite) Après 1984 : Domain Name System Paul Mockapetris - RFC 882 883 puis 1034 1035 système hiérarchisé et distribué modèle en arborescence (similaire à l’arborescence d’un système de fichiers avec ses répertoires) gestion décentralisée des bases de données => chaque site est maître de ses données informations complémentaires : relais de messagerie, … correspondance dynamique limite les risques de collisions de noms
Introduction (fin) RFC’s Documentation Livres 1032, 1033, 1034, 1035, 1101, 1122, 1123, 1183, 1713, 1794, 1912, 1995, 1996, 2010, 2136, 2137, 2181, 2308, 2535-2541 Documentation http://www.dns.net/dnsrd/ (RFC, drafts, FAQ, …) http://www.nic.fr/Guides/DNS.html http://www.nic.fr/Formation/ Livres DNS and BIND (Paul Albitz & Cricket Liu)
Les noms de domaine Un nom de domaine est est la séquence de labels depuis le noeud de l’arbre correspondant jusqu’à la racine org auf m1 M1.auf.org Deux noeuds fils ne peuvent avoir le même nom ==> unicité d’un nom de domaine au niveau mondial
Le domaine Un domaine est un sous-arbre de l’espace nom de domaine org refer auf m1 Domaine complet Domaine org Domaine AUF noeud m1.auf.org Des noeuds peuvent avoir les mêmes noms dans des domaines différents : ns.auf.org et ns.refer.org
Concepts, résumé et extension Un domaine est un sous-arbre de l’espace Nom de domaine Un domaine est constitué de noms de domaine et d’ autres domaines Un domaine intérieur à un autre domaine est appelé un sous domaine Une Zone : est la partie descriptive pour un niveau donnée. Exemple : le domaine org comprend le noeud org et tous les nœuds contenus dans tous les sous-domaines de org Un nom de domaine est un index dans la base DNS; exemple : m1.auf.org pointe vers une adresse IP Auf.org pointe vers des informations de routage de mail et éventuellement des informations de sous-domaines org pointe vers des informations structurelles de sous-domaines Les machines sont reliées entre elles dans un même domaine logiquement et non par adressage. Exemple : 10 machines d’un même domaine appartiennent à 10 réseaux différents et recouvrent 6 pays différents.
Hiérarchie des domaines Le système DNS impose peu de règles de nommage : noms < 63 caractères majuscules et minuscules non significatives pas de signification imposée pour les labels
Hiérarchie des domaines (suite) Le premier niveau de l’espace DNS fait exception à la règle : 7 domaines racines prédéfinis : com : organisations commerciales ; ibm.com edu : organisations concernant l’education ; mit.edu gov : organisations gouvernementales ; nsf.gov mil : organisations militaires ; army.mil net : organisations réseau Internet ; worldnet.net org : organisations non commerciales ; eff.org int : organisations internationales ; nato.int arpa : domaine reservé à la résolution de nom inversée organisations nationales : cm, fr, uk, de, it, us, au, ca, se, etc.
Hiérarchie des domaines (suite) Nouveaux domaines racine en cours de normalisation: firm, store, web, arts, rec, info, nom Certaines organisations nationales peuvent être gérées administrativement par un consortium : RIPE Les divisions en sous-domaines existent dans certains pays et pas dans d’autres : edu.au, com.au, etc. co.uk, ac.uk, etc. ca.ab, ca.on, ca.gb pas de division du .fr, .cm
Lecture des noms de domaine A l’inverse de l’adressage IP la partie la plus significative si situe à gauche de la syntaxe : www.cm.refer.org 195.24.200.202 vers le plus significatif vers le plus significatif www. cm. refer.org domaine org (.org) domaine de l’organisation REFER sous-domaine refer machine www du domaine cm.refer.org
BIND (The Berkeley Internet Name Domain) BIND est un serveur de nom pour Unix Implémente le Domain Name System (DNS): RFC 1034 et 1035 Une partie serveur: implémentée par la commande /usr/sbin/named Une partie client: bibliothèque C statique et dynamique (libresolv.a et libresolv.so) avec laquelle sont liées statiquement ou dynamiquement toutes les applications utilisant le DNS.
BIND (suite) BIND permet la résolution de noms: établir la correspondance entre un nom de machine et une adresse IP et réciproquement. En général, toutes les applications utilisant les services de l’Internet utilisent le DNS: les appels systèmes des mécanismes de communication n’utilisent que des adresses IP alors que les applications utilisent essentiellement les noms. Ex: Netscape http://www.cm.refer.org =>requête au DNS pour trouver l’adresse de www.cm.refer.org Réception d’une demande de connexion par telnet =>requête au DNS par le serveur telnetd pour connaître le nom de la machine appelante.
$ telnet m1.centralweb.fr client Telnet $ telnet m1.centralweb.fr serveur DNS Demande de résolution m1.centralwebfr ???? Réponse 193.148.37.201 Telnetd
Types de serveurs de nom Serveur de nom primaire : maintient la base de données de la zone dont il a l’autorité administrative Serveur de nom secondaire : obtient les données de la zone via un autre serveur de nom qui a également l’autorité administrative interroge périodiquement le serveur de nom primaire et met à jour les données Il y a un serveur primaire et généralement plusieurs secondaires La redondance permet la défaillance éventuelle du primaire et du (des) secondaire(s) Un serveur de nom peut être primaire pour une (des) zone(s) et secondaire pour d’autre(s).
Types de serveurs de noms (suite) Serveur cache: Il récupère dans un fichier la liste des serveurs qui ont autorité sur la zone. Il n’a pas lui même autorité sur la zone. Un même processus named peut être à la fois serveur primaire, secondaire, stub ou cache d’une ou plusieurs zones.
Configuration de BIND Cette configuration passe par trois étapes essentielles: Configuration du résolveur BIND Configuration du serveur de nom BIND (named) Construction des fichiers de zone
Configuration du résolveur Le résolveur c’est le client DNS. Il interroge les serveurs DNS pour obtenir les informations. Configuration du résolveur: /etc/resolv.conf
Configuration du résolveur (suite) Les principales valeurs acceptées par le fichier /etc/resolv.conf: - nameserver adresse: adresse des serveurs de noms (max=3) domain nom: domaine par défaut search domain: domaines de recherche
Configuration de named Plusieurs fichiers sont utilisés: named.conf: paramètres généraux de named et définition des pointeurs vers les bases de données du domaine utilisées par ce serveur. Ces pointeurs sont soit des fichiers ou des serveurs distants.
Configuration de named (suite) named.ca: pointeurs sur les serveurs du domaine racine (ou named.root, root.cache,…). named.local: résolution locale des adresses loopback named.hosts: fichier de zone qui fait correspondre nom de machine et adresse IP named.rev: fichier de zone inverse qui fait correspondre adresse IP et nom de machines; PS: utiliser des noms significatifs à la place de named.hosts et named.rev
/etc/named.conf Ce fichier remplace /etc/named.boot pour les version 8 de BIND. Un script de conversion (named-bootconf) est fourni pour convertir un fichier /etc/named.boot en /etc/named.conf
named.conf (serveur primaire et cache) Options { directory « /var/named »; //répertoire des données }; // cache des serveurs de la racine zone «.» in { type hint; file «root.cache»; // zone primaire du reverse loopback zone «0.0.127.in-addr.arpa» { type master; file «named.local»;
named.conf (serveur cache esclave) options { directory «/usr/local/bind/data»; //rép. des //données }; zone «.» { // cache des serveurs de la racine type hint ; file «root.cache»; zone «0.0.127.in-addr.arpa» { type master; file «named.local »;
/etc/root.cache (ou named.ca) Fichier des serveurs de la racine permet de démarrer la résolution d ’une requête si le serveur n’a aucune information contient la liste des serveurs de nom et leur numéro IP primaire : A.ROOT-SERVERS.NET. une quinzaine de serveurs secondaires à travers le monde peut être générer de la façon suivante : dig @a.root-servers.net . ns > root.cache
/etc/root.cache (ou named.ca) ;; Cache file: . IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. IN A 198.41.0.4 . IN NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. IN A 128.9.0.107 . IN NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. IN A 192.33.4.12 . IN NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. IN A 128.8.10.90 . IN NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. IN A 192.203.230.10 . IN NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. IN A 39.13.229.241 . IN NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. IN A 192.112.36.4 . IN NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. IN A 128.63.2.53 . IN NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. IN A 192.36.148.17
/etc/named.local @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS localhost. 1 IN PTR localhost.
Les Resource Records (RR) Le RR est un enregistrement dans la base de données du DNS Un RR par ligne Zone IN SOA … Informations relatives à une zone. Zone IN NS serveur indique le nom d’un serveur pour une zone Nom IN A adresse indique l’adresse IP d’une machine Nom IN MX pref relais indique que la mail destiné à Nom doit être envoyé à la machine relais avec une préférence pref. Alias IN CNAME Nom Alias pour une machine Adresse IN PTR Nom Nom correspondant à une adresse IP
Le RR SOA (Start Of Authority) Nom IN SOA Origine Responsable Information Nom: nom de la zone Origine: nom du serveur primaire de la zone Responsable: adresse électronique de la personne qui gère cette zone. Attention, le @ est remplacé par un point. Information: 5 valeurs, respectivement
Le RR SOA (suite) 1. N° de version de ce fichier 2. Temps de rafraichissement: fréquence à laquelle un secondaire interroge un primaire pour savoir si la base a été modifiée. 3. Réessai: fréquence des ré-essai en cas d’échec d’un refresh. 4. Expiration: temps maximum pendant lequel un secondaire garde une info qui n’a pas pu être rafraîchie. 5. Durée de vie: (time to live) pour les RR de cette zone dans les caches des serveurs DNS qui n’ont pas autorité sur cette zone.
Le RR SOA: un exemple (fin) ; Database file cm.refer.org.db for cm.refer.org zone. ; cm.refer.org IN SOA ns.cm.refer.org fossouo.cm.refer.org. ( 64 ; serial number 3600 ; refresh 600 ; retry 86400 ; expire 3600 ) ; minimum TTL
L’Enregistrement NS spécifie les serveurs de nom ayant autorité sur ce domaine ; cm.refer.org. IN NS ns.cm.refer.org. cm.refer.org. IN NS aupelf.refer.org. @ IN NS ns2.cm.refer.org.
Enregistrements A ; Spécifie les adresses des machines: cm.refer.org. IN A 195.24.200.194 aupelf.refer.org. IN A 193.104.62.2 $ORIGIN cm.refer.org. ns IN A 195.24.200.194 ns2 IN A 195.24.200.195 www IN A 195.24.200.202 routeur IN A 195.24.200.193 modem1 IN A 195.24.200.206
Création d’une zone Les grandes étapes Installer le fichier /etc/named.conf Créer le fichier de zone ( dans /var/named, /var/cache/bind, …) Relancer le serveur DNS (named, bind,…)
TP1 Créer une zone Tester la zone (dig, nslookup)
Création d’une zone esclave Dans /etc/named.conf zone «inria.fr» { // zone secondaire type slave; file «db.inria.fr»; masters {192.1.1.1 ; }; }; Relancer named
TP2 Créer des zones esclaves (se faire serveur secondaire de son voisin)
Enregistrements CNAME (alias) ; spéciifie les alias pour un nom ftp IN CNAME ns mail IN CNAME ns pop IN CNAME ns smtp IN CNAME ns
L’Enregistrement MX MX = Mail eXchanger Permet l’adressage Email sur la base du nom de domaine plutôt que sur l’adresse du (des) serveur(s) de mail : fossouo@cm.refer.org plutôt que fossouo@smtp.cm.refer.org L’enregistrement MX est consulté par les mailers (SMTP client) Tient compte des priorités; exemple cm.refer.org. IN MX 5 smtp.cm.refer.org. cm.refer.org. IN MX 10 smtp.fr.refer.org.
Résolution inverse Consiste a obtenir le nom de domaine à partir de l’adresse IP pour faciliter la compréhension des humains pour des raisons de sécurité Plus délicate que nom -> IP car le système DNS est organisé pour la résolution de nom
Résolution inverse (suite) Solution: utiliser les adresses comme des noms : le domaine in-addr.arpa les noms des noeuds correspondent aux octets de l’adresse IP en ordre inverse le domaine in-addr.arpa a 256 sous-domaines, chacun de ces sous-domaines a 256 sous-domaines, chacun de ces sous-domaines a, à son tour, 256 sous-domaines, le 4ème niveau correspond à un NS connaissant le nom de domaine associé à cette adresse IP
Résolution inverse (suite) arpa in-addr 255 195 24 200 194 ns.cm.refer.org
Résolution inverse (fin) le nom de domaine associé à la résolution inverse est noté selon l’adresse IP inversée : car la résolution d’un nom de domaine se fait de droite à gauche exemple : 194.200.24.195.in-addr.arpa résolution : in-addr.arpa -> A.ROOT-SERVER.NET 195.in-addr.arpa -> NS.RIPE.NET 24.195.in-addr.arpa -> NS.RIPE.NET 200.24.195.in-addr.arpa -> ??? 194.200.24.195.in-addr.arpa -> set type=PTR ns.cm.refer.org
TP3 Créer la zone inverse des zones précédemment créées.
Enregistrement d’une zone Network Solutions : .com, .net, .org http://www.networksolutions.com APNIC : Asie Pacifique NIC http://www.apnic.net IANA : .us (rfc 1480), .edu, .gouv (Etats-Unis), http://www.isi.edu/in-notes/usdnr/ Une liste des autres NIC européens et mondiaux : http://www.nic.fr/Guides/AutresNics/
BIBLIOGRAPHIE TCP/IP Administration de réseau, Craig Hunt, O’Reilly, 2e édition BIND, Roland Dirlewanger, juin 1999 http://www.centralweb.fr http://transfer.refer.org