1 Nommage et adressage dans Internet Full Qualified Domain Name et URL FQDN : Full Qualified Domain Name Nom complet d'un hôte, sur l'internet, c'est-à-dire de la machine jusqu'au domaine, en passant par les sous-domaines. URL : Uniform Resource Locator Méthode d'accès à un document distant. Un lien hypertexte avec une syntaxe de la forme: <Type de connexion>://<fqdn>/[<sous-répertoire>]/.../<nom du document> Exemple: http://en.wikipedia.org/wiki/main_page - http: Hyper Text Transfert Protocol En.wikipedia.org : FQDN Wiki : arborescence de répertoires Main_Page: nom du document. 2 Question Les machines sont identifiées par leur adresse IP : comment trouver l adresse IP d un correspondant dont l on ne connaît que l URL? Grâce à un serveur de noms de domaine 3
4 Le service de noms de domaine : Le système de noms de domaines (Domain Name System), ou, est une base de données distribuée Il est utilisée par TCP/IP pour établir une correspondance entre les noms de machines et les adresses IP Pour procurer de l'information de routage du courrier électronique Le terme distribué est utilisé parce qu'aucun site de l'internet ne connaît toute l'information Le service de noms de domaine : Chaque site (département universitaire, campus, société...) maintient sa propre base de données d'informations et exécute un programme serveur Les autres systèmes (clients) sur l'internet peuvent interroger. Le fournit le protocole qui permet aux clients et aux serveurs de communiquer les uns avec les autres. L'accès au s'effectue à travers un résolveur. 5 Le service de noms de domaine : Sur les systèmes Unix, le résolveur est accédé dans un premier temps par deux fonctions de librairie : gethostbyname et gethostbyaddr Le résolveur contacte un ou plusieurs serveurs de noms pour établir cette correspondance Une application doit forcément convertir un nom de machine en adresse IP avant qu'elle puisse demander à TCP d'ouvrir une connexion ou d'envoyer un datagramme en utilisant UDP. 6
7 Le service de noms de domaine : Les protocoles TCP/IP inclus dans le noyau ne connaissent rien du. L'implémentation la plus couramment utilisé du, à la fois pour le résolveur et le serveur de noms, est appelé BIND (Berkeley Internet Name Domain Server). Le serveur est appelé named. Nslookup (souvent remplacé par dig ou host) mode «ligne de commande» (NT, XP, linux) exemple: >nslookup grominet.u-strasbg.fr Serveur : ns1.u-strasbg.fr Address: 130.79.200.1 Nom : grominet.u-strasbg.fr Address: 130.79.90.182 >nslookup 130.79.90.182 Serveur : ns1.u-strasbg.fr Address: 130.79.200.1 Nom : grominet.u-strasbg.fr Address: 130.79.90.182 8 Bases du L'espace de noms du est hiérarchique, de façon similaire au système de fichiers Unix Racine non nommée Domaines de top niveau arpa com gov edu fr zw Domaines de second niveau in-addr 140 noao tuc u-strasbg. mob 252 33 13 sun Domaines génériques mob.u-strasbg.fr sun.tuc.noao.edu Domaines géographiques 13.33.252.140.in-addr.arpa 9
10 Bases du Chaque nœud a un label comprenant jusqu'à 63 caractères La racine de l'arbre est un nœud spécial avec un label nul Quand les labels sont comparés, les minuscules et majuscules sont indifférenciés Le nom de domaine de n'importe quel noeud de l'arbre est la liste des labels, en commençant par ce noeud, et en remontant vers la racine (séparés par des «.») Chaque noeud dans l'arbre doit avoir un nom de domaine unique, mais le même label peut être utilisé a différents points de l'arbre Bases du Un nom de domaine qui se termine par un point est appelé nom de domaine absolu ou nom de domaine pleinement qualifié (FQDN - fully qualified domain name) Exemple : sun.tuc.noao.edu. Si le nom de domaine ne se termine pas par un point, on suppose que le nom a besoin d'être complété. La façon dont le nom est complété dépend du logiciel qui est utilisé. 11 Bases du Les domaines de niveaux supérieurs sont divisés en trois zones : ARPA est un domaine spécial utilisé pour les correspondances adresses vers noms Les sept domaines sur 3 caractères sont appelés domaines génériques ou organisationnels Tous les domaines sur 2 caractères sont basés sur les codes pays D autres domaines ajoutés plus récemment (.name.biz ) Aucune entité ne gère tous les labels de l'arbre 12
13 Bases du Une entité (le NIC) maintient une portion de l'arbre (les domaines de top niveaux) et délègue la responsabilité aux autres pour des zones spécifiques Une zone est un sous arbre de l'arbre administré séparément Une zone commune est un domaine de second niveau Exemple: u-strasbg.fr Beaucoup de domaines de second niveau divisent ensuite leur zones en zones plus petites Exemple ipv6.u-strasbg Bases du Une fois que l'autorité est déléguée pour une zone c'est à la personne responsable de la zone de fournir des serveurs de noms multiples pour cette zone Dès qu'un nouveau système est installé dans une zone, l'administrateur de pour la zone alloue un nom et une adresse IP au nouveau système La personne responsable d'une zone doit fournir un serveur de noms primaire pour cette zone et un ou plusieurs serveurs de noms secondaires 14 Bases du Une propriété fondamentale du est la mise en mémoire cache C'est à dire que lorsqu'un serveur de noms reçoit une information concernant une correspondance, il cache cette information : lors d'une demande ultérieure pour la même correspondance, le résultat caché peut être utilisé et des demandes supplémentaires aux autres serveurs ne sont pas nécessaires. 15
16 : Administration L AFNIC est chargée d enregistrer tous les noms des sousdomaines de.fr Pour déclarer un nouveau domaine il est nécessaire de contacter l AFNIC et de mettre au moins un primaire et un secondaire en place Lecture des noms de domaine A l inverse de l adressage IP la partie la plus spécifique se situe à gauche et la plus générale à droite : mobinet.ipv6.u-strasbg.fr 130.79.7.12 vers le plus specifique vers le plus spécifique mobinet. ipv6.u-strasbg.fr domaine français (.fr) machine mobinet domaine de l univ. de strasbourg sous-domaine l univ. de strasbourg 17 Types de serveurs de noms 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 Pour chaque zone Il y a un serveur primaire et généralement plusieurs secondaires, au moins 2 18
19 Types de serveurs de noms 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). Serveurs racine Connus, mis à jour par l InterNIC ftp://ftp.rs.internic.net/domain/named.root Chargés de gérer les domaines de top niveau (TLD, Top Level Domain) fr gov com net etc 20 This file holds the information on root name servers needed to initialize cache of Internet domain name servers (e.g. reference this file in the "cache. <file>" configuration file of BIND domain name servers). This file is made available by InterNIC under anonymous FTP as file /domain/named.root on server FTP.INTERNIC.NET last update: Nov 5, 2002 related version of root zone: 2002110501 formerly NS.INTERNIC.NET. 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 formerly NS1.ISI.EDU. 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 formerly C.PSI.NET [ ]. 3600000 NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 housed in Japan, operated by WIDE. 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 End of File Serveurs racine 21
22 Processus Demander à un racine s'il connaît des qui savent répondre pour le TLD (Top Level Domain) recherché Interroger alors l'un de ces pour trouver un qui sache répondre pour le domaine d'entreprise donné Interroger l'un de ces, pour qu'il résolve le FQDN recherché. 23 Résolution de noms BDD Serveur de noms du domaine racine BDD requête Application résolveur réponse Machine mobinet.u-strasbg.fr Serveur de noms du domaine u-strasbg.fr Serveur de noms du domaine fr BDD Serveur de noms du domaine u-strasbg.fr BDD 24
25 Exemple >nslookup Serveur par défaut : ns1.u-strasbg.fr Address: 130.79.200.1 > server g.root-servers.net Serveur par défaut : g.root-servers.net Address: 192.112.36.4 > set q=ns on s intéresse uniquement aux serveurs de noms Exemple > fr. Serveur : g.root-servers.net Address: 192.112.36.4 Réponse ne faisant pas autorité : fr nameserver = NS1.NIC.fr fr nameserver = NS3.NIC.fr fr nameserver =.INRIA.fr fr nameserver = NS2.NIC.fr fr nameserver =.PRINCETON.EDU fr nameserver = NS-EXT.VIX.COM fr nameserver = NS3.DOMAIN-REGISTRY.NL fr nameserver =.CS.WISC.EDU NS1.NIC.fr internet address = 192.93.0.1 NS3.NIC.fr internet address = 192.134.0.49.INRIA.fr internet address = 193.51.208.13 NS2.NIC.fr internet address = 192.93.0.4.PRINCETON.EDU internet address = 128.112.129.15 NS-EXT.VIX.COM internet address = 204.152.184.64 NS3.DOMAIN-REGISTRY.NL internet address = 193.176.144.6.CS.WISC.EDU internet address = 128.105.2.10 26 Exemple > server dns.inria.fr Serveur par défaut : dns.inria.fr Address: 193.51.208.13 > u-strasbg.fr. Serveur : dns.inria.fr Address: 193.51.208.13 u-strasbg.fr nameserver = ns1.u-strasbg.fr u-strasbg.fr nameserver = ns2.u-strasbg.fr u-strasbg.fr nameserver = shiva.jussieu.fr ns1.u-strasbg.fr internet address = 130.79.200.1 ns2.u-strasbg.fr internet address = 130.79.200.3 shiva.jussieu.fr internet address = 134.157.0.129 27
28 Exemple (suite) >server ns1.u-strasbg.fr Serveur par défaut : ns1.u-strasbg.fr Address: 130.79.200.1 > set q=a > www.u-strasbg.fr Serveur : ns1.u-strasbg.fr Address: 130.79.200.1 Nom : apopi.u-strasbg.fr Address: 130.79.200.12 Aliases: www.u-strasbg.fr Exemple (suite) > ls -d u-strasbg.fr [ns1.u-strasbg.fr] u-strasbg.fr. SOA ns1.u-strasbg.fr hostmaster.u-strasbg.fr. (2003021804 86400 3600 3600000 86400) u-strasbg.fr. NS ns1.u-strasbg.fr u-strasbg.fr. NS ns2.u-strasbg.fr u-strasbg.fr. NS shiva.jussieu.fr u-strasbg.fr. MX 10 bes.u-strasbg.fr birgit A 130.79.88.8 www-grtr CNAME sepia.u-strasbg.fr MX 10 ns1.u-strasbg.fr mururoa mururoa A 130.79.95.113 libuse MX 10 ns1.u-strasbg.fr SOA : Start of Authority : serveur responsable de la zone NS : serveurs de noms MX : serveurs SMTP A : adresse IP correspondante CNAME : Canonical Name : alias (la partie droite est un nom d hôte défini dans un enregistrement de type A) 29 Resolution inverse Consiste a obtenir le nom de domaine à partir de l adresse IP pour faciliter la compréhension des humains Sert dans les «logs» des applications Plus délicate que nom -> IP car le système est organisé pour la résolution de nom 30
31 Resolution inverse (suite) 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 : 130.79.7.10 10.7.79.130.in-addr.arpa résolution : in-addr.arpa -> A.ROOT-SERVERS.NET 130.in-addr.arpa -> NS.RIPE.NET 79.130.in-addr.arpa -> NS2.NIC.FR 7.79.130.in-addr.arpa -> isis.u-strasbg.fr Resolution inverse (suite). arpa in-addr 0 130 255 0 79 255 0 7 255 Steed.u-strasbg.fr 0 10 255 32 Enregistrements d un serveur de nom Types d enregistrements SOA: décrit l autorité administrative, NS : liste de serveurs de nom pour ce domaine A : correspondance nom -> adresse PTR : correspondance adresse -> nom CNAME : alias TXT : texte HINFO : description machine 33
34 Enregistrement : SOA SOA = Start of Authority u-strasbg.fr. SOA ns1.u-strasbg.fr hostmaster.u-strasbg.fr. (2002021804 86400 3600 3600000 86400) Spécifie que ce serveur de nom a autorité sur le domaine ns1.u-strasbg.fr : MNAME : principal hostmaster.u-strasbg.fr : RNAME : nom du responsable (comprendre hostmaster@u-strasbg.fr) 2003021804 : SERIAL : année, mois, jour, révision 86400 : REFRESH : intervalle de mise à jour des serveurs secondaires 3600 : RETRY : attente après échec de mise à jour d un serveur secondaire 3600000 : EXPIRE : durée de validité des infos sur les serveurs secondaires (ici 1000 heures / ~41jours) 86400 : MINIMUM : durée de validité minimum des infos dans le serveur primaire Enregistrement : NS spécifie les serveurs de nom ayant autorité sur ce domaine u-strasbg.fr IN NS isis.u-strasbg.fr. @ IN NS 131.12.2.2 @ IN NS amon.u-strasbg.fr. 35 Enregistrements : adresses et alias mobinet IN A 130.79.7.88 clarinet IN A 193.79.7.86 steed IN A 193.79.7.10 ftp IN CNAME mobinet mail IN CNAME clarinet www IN CNAME steed 36
37 Enregistrements : PTR 88.7.79.130.in-addr IN PTR mobinet.u-strasbg.fr. 86.7.79.130.in-addr IN PTR clarinet.u-strasbg.fr. 10.7.79.130.in-addr IN PTR steed.u-strasbg.fr. Enregistrement MX MX = Mail exchanger (MX Record) Permet l adressage Email sur la base du nom de domaine plutôt que sur l adresse du (des) serveur(s) de mail : dupont@microsoft.com plutôt que dupont@nt102.microsoft.com permet à l émetteur d ignorer la machine serveur de mail permet le déplacement du serveur de mail vers une autre machine permet la gestion de plusieurs serveurs de mail avec priorité dans l ordre de consultation des serveurs L enregistrement MX est consulté par les mailers (SMTP client) 38 Format des messages Header Question Answer Authority Additional the question for the name server RRs answering the question RRs pointing toward an authority RRs holding additional information (voir RFC 1035) 39
40 Exemple de fichiers de configuration : named.conf options { } directory "/var/named" zone "." { type hint file "named.ca" } zone "0.0.127.in-addr.arpa" { type master file "named.local" } zone "mon-domaine.fr" in { type master file "mon-domaine.fr" } zone "0.168.192.in-addr.arpa" in { type master file "db.192.168.0" } Exemple de fichiers de configuration : named.local @ IN SOA mon-serveur.mon-domaine.fr. mon-nom.mon-serveur.mon-domaine.fr. ( 2000101500 numéro de série 28800 rafraîchissement toutes les 8 heures 14400 nouvel essai toutes les 4 heures 604800 expiration dans 7 jours 86400 ) temps de vie minimal 24 heures NS mon-serveur.mon-domaine.fr. 1 PTR localhost. 41 Exemple de fichiers de configuration : mon-domaine.fr @ IN SOA mon-serveur.mon-domaine.fr. mon-nom.mon-serveur.mon-domaine.fr. ( 2000101500 numéro de série 28800 rafraîchissement toutes les 8 heures 14400 nouvel essai toutes les 4 heures 604800 expiration dans 7 jours 86400 ) temps de vie minimal 24 heures serveur de nom IN NS mon-serveur.mon-domaine.fr. adresses IP des machines localhost IN A 127.0.0.1 mon-serveur IN A 192.168.1.1 mon-serveur-web IN A 192.168.1.2 Alias www IN CNAME mon-serveur-web ftp IN CNAME mon-serveur-web pop IN CNAME mon-serveur Serveur smtp mon-serveur-smtp IN A 192.168.1.3 IN MX 10 mon-serveur-smtp.mon-domaine.fr. 42
43 Exemple de fichiers de configuration : db.192.168.0 @ IN SOA mon-serveur.mon-domaine.fr. mon-nom.mon-serveur.mon-domaine.fr. ( 2000101500 numéro de série 28800 rafraîchissement toutes les 8 heures 14400 nouvel essai toutes les 4 heures 604800 expiration dans 7 jours 86400 ) temps de vie minimal 24 heures serveur de nom IN NS mon-serveur.mon-domaine.fr. adresses IP inverses 1 IN PTR mon-serveur.mon-domaine.fr. 2 IN PTR mon-serveur-web.mon-domaine.fr. 3 IN PTR mon-serveur-smtp.mon-domaine.fr. Le résolveur Le résolveur est le client du système de noms de domaine Il récupère les domaines des applications et envoie une requête au serveur de noms Sous unix le resolver est configuré à travers le fichier /etc/ resolv.conf domain mon-domaine.fr nameserver 127.0.0.1 sur la zone u-strasbg.fr : search u-strasbg.fr nameserver 130.79.68.247 nameserver 130.79.200.1 44 Configuration d un resolver 45
46 Directives d un résolveur Domain : domaine dans lequel se trouve la machine locale domain u-strasbg.fr Search : indique au résolveur de rechercher en premier dans les domaines spécifiés search u-strasbg.fr ipv6.u-strasbg.fr Nameserver : adresse IP des serveurs de noms à interroger nameserver 130.79.68.247 nameserver 130.79.200.1