1/25 Administration Système & Réseau Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS Dynamic Host Configuration Protocol L3 STRI 2005 Philippe Latu philippe.latu(at)linux-france.org $Id: admin.reseau.dns-dhcp.mgp 722 2005-11-10 15:53:34Z latu $
2/25 Pourquoi un système de résolution des noms? Communications sur l Internet basées sur les adresses IP Communications «humaines» basées sur des noms (ex. fichiers) Besoin d un mécanisme pour faire correspondre des adresses IP avec des noms d hôtes => service DNS Base de données hiérarchique distribuée Service Internet => couche application RFCs 1034 et 1035 en 1987
3/25 La notion de nom est récurrente Fichiers dans un système de fichiers Processus dans un système d exploitation Pages Web sur l Internet Imprimantes sur le réseau Découplage entre nom et localisation DNS fournit un niveau d adressage indirect entre un nom d hôte et sa localisation géographique Conception du système de résolution des noms Espace des noms «à plat» ou hiérarchique Approche centralisée ou distribuée
4/25 À l origine de l Internet Fichier texte unique HOSTS.TXT Gestion par une structure unique (SRI) Demandes de modification par E-mail Publications périodiques via FTP Avec le développement de l Internet Structure centralisée unique saturée Duplication de certains noms d hôtes Différentes versions du fichier HOSTS.TXT en circulation Besoin d un nouveau service Internet Évolutif et adaptable avec la croissance de l Internet Puissance de «calcul» décentralisée Administration décentralisée
5/25 Fonctionnalités du service DNS Espace des noms de domaines = arborescence hiérarchique Arborescence indépendante de la topolgie réseau et ou de la géographie Architecture de stockage distribuée Zones affectées à des serveurs de noms dans l arborescence hiérachique Serveurs de sauvegarde pour la redondance et la disponibilité Administration répartie suivant la hiérarchie des noms Rôle le plus simple : client DNS ou resolver Protocole client/serveur communicant sur le port n 53 Protocole UDP utilisé par les clients Protocole TCP préconisé pour les échanges entre serveurs
6/25 Hiérarchie des noms de domaines Arborescence limitée à 128 niveaux Un domaine est un sous-ensemble de l arborescence Aucune possibilité de doublon hôte : cooper, domaine : ups-tlse, gtld : fr Fully Qualified Domain Name : cooper.ups-tlse.fr
7/25 Conventions sur les noms de domaines Top Level Domains (TLD).com,.net,.org,.edu,.mil,.gov,.int,.biz Geographical Top Level Domains (gtld).de,.fr,.uk,.jp,.au Cas particulier de la zone.arpa Adressage inverse Correspondance entre adresse IP et nom de domaine
8/25 Hiérarchie des serveurs Serveurs «distribués» dans l arborescence hiérarchique Un serveur ne maintient qu un sous-ensemble de l arborescence On parle d autorité sur une zone : Authoritative Name Server Chaque serveur contient tous les enregsitrements d hôtes dans «sa» zone Enregistrement = Resource Record (RR) Chaque serveur a besoin de connaître les autres serveurs responsables des autres parties de l arborescence Chaque serveur connaît la liste des Root Servers Chaque Root Server connaît tous les TLDs et gtlds Un serveur racine peut ne pas connaître le serveur qui a autorité sur une zone Un serveur racine peut connaître un serveur intermédiaire à contacter pour connaître le serveur qui a autorité sur une zone
7/25 Serveurs racine : Root Servers
10/25 Gestion de cache Un serveur conserve les résultats des requêtes en mémoire cache Optimisation de la charge des serveurs des niveaux supérieurs Les enregistrements (RRs) ont une durée de vie (TTL) fixée par le gestionnaire de la zone TTL élevé : moins de trafic, informations périmées TTL petit : plus de trafic, informations à jour Même les requêtes non résolues sont conservées en cache Negative caching RFC 2308 Optimisation de la charge des serveurs Risques de dénis de services importants (M$!) 1. Un intrus «provoque» un echec en demandant un RR inconnu pour une zone connue, 2. Tous les clients émettant une nouvelle requête pour cette zone obtiennent une réponse né gative! Attention au TTL minimum des RRs!
11/25 Exemple de requête DNS Requête du poste Asterix : Adresse IP du site www.stri.net? Asterix contacte le serveur local Cooper.ups-tlse.fr Cooper.ups-tlse.fr contacte un serveur racine : J.ROOT-SERVERS.NET J.ROOT-SERVERS.NET contacte un serveur du domaine.net : G.GTLD-SERVERS.NET G.GTLD-SERVERS.NET contacte le serveur qui a autorité sur la zone stri.net : full1.gandi.net Cooper.ups-tlse.fr renvoie la réponse vers Asterix Gestion du cache Cooper.ups-tlse.fr conserve la réponse dans son cache Cooper.ups-tlse.fr répond directement à toute nouvelle requê te DNS www.stri.net
12/25 2 types de requête DNS Requête récursive : Le serveur de noms contacté prend en charge la totalité de la requête et renvoie la réponse (cf. exemple ci-avant) Fonctionnement normal pour les hôtes du réseau de confiance Interdire la récursion pour les requêtes issues du réseau public Configurer le serveur en utilisant les vues : voir «BIND 9 Administrator Reference Manual» ; section «view Statement Definition and Usage» Requête itérative : Le serveur de noms contacté répond en donnant le nom du serveur à contacter Utile pour la mise au point de la configuration du service de noms de domaines Identification du point de «rupture» dans la chaîne de résolution des noms
13/25 Exemple de requête DNS itérative Requête du poste Asterix : Adresse IP du site www.stri.net? Asterix contacte successivement les serveurs de noms en fonction des réponses obtenues à chaque requête Voir option +trace de la commande dig
14/25 Base de données Un enregistrement ou Resource Record (RR) contient une classe, un type et une valeur 2 classes principales Internet (IN), Chaosnet (CH) Principaux types de la classe Internet A : adresse IPv4 A6 ou AAAA : adresse IPv6 NS : Name server ie. serveur de noms de domaines CNAME : Canonical name ie. alias de nom d hôte HINFO TXT : informations sur le système de l hôte (ne pas utiliser!) MX : Mail exchange ie. nom de l hôte qui prend en charge le courrier électronique PTR : Pointer ie. adressage inversé : adresse IP vers nom d hôte
15/25 Base de données (suite) Principaux types de la classe Internet (suite) SOA : Start Of Authority ie. déclaration de zone Type complexe avec de nombreux champs Utiliser systématiquement un patron de fichier de déclaration de zone Voir section «Types of Resource Records and When to Use Them» du «BIND 9 Administrator Reference Manual» Types de la classe Chaosnet version.bind : indique le numéro de version du logiciel du serveur de noms authors.bind : liste les auteurs du logiciel de serveur de noms Il est vivement conseillé de «masquer» les valeurs Chaosnet
16/25 Distribution de la base de données Notion de zone espace contigu de l espace des noms de domaines séparé par des points. Chaque zone comprend plusieurs serveurs redondants Primary Master Serveur primaire administré manuellement contenant les enregistrements originaux Slave Servers ou Secondary Servers Serveurs redondants administrés automatiquement par «transferts (des enregistrements) de zone» Stealth Server ou Hidden Primary Serveur ayant autorité sur une zone mais non déclaré dans la liste publique des serveurs de noms Serveur de dépôt de référence non exposé sur le réseau public
17/25 Cas particulier du serveur cache-only Serveur sans déclaration de zone ; donc sans autorité Optimise le trafic sur l hôte qui utilise le cache mais surcharge les serveurs racine Configuration du client DNS : resolver Bibliothèque partagée traitant les appels gethostbyname() Tout client doit connaître au moins une adresse IP de serveur de noms Configuration manuelle via édition du fichier /etc/resolv.conf Configuration automatique via un service : DHCP ou PPP nowhere:~# cat /etc/resolv.conf search linux-land.stri.net nameserver 192.168.1.1 nameserver 192.168.3.1
18/25 Configuration du service DNS Logiciel de référence BIND (Berkeley Internet Name Domain) Internet Support Consortium http://www.isc.org Paquets Debian GNU/Linux bind9-host : commande host associée à BIND 9.x bind9 : logiciel serveur bind9-doc : documentation officielle : «BIND 9 Administrator Reference Manual» dnsutils : clients fournis avec BIND : commande dig Organisation des fichiers de configuration Le paquet Debian bind9 fournit une configuration complète cache-only Par défaut, le répertoire /etc/bind/ contient les fichiers de configuration du service Par défaut, le répertoire /var/cache/bind/ contient les fichiers de zones contenant les RRs
19/25 Documentation & patrons de configuration Éviter de se «disperser» dans l étude des documents Google est notre ami! mais trop d information tue l information Rester concentré sur la documentation officielle Pour la syntaxe de configuration du service BIND 9 Administrator Reference Manual Fourni avec le paquet bind9-doc Pour la syntaxe de déclaration de zone et des RRs DNS-HOWTO http://www.tldp.org/howto/dns-howto.html Pour une configuration complète plus robuste Secure BIND Template http://www.cymru.com/documents/secure-bind-template.html Particulièrement intéressant pour l utilisation des vues Bon courage pour les travaux pratiques! http://www.linux-france.org/prj/inetdoc/cours/admin.reseau.dns
20/25 Dynamic Host Configuration Protocol Objectif : obtenir automatiquement tous les paramètres de configuration réseau Adresse IP Adresse de diffusion Masque réseau Passerelle par défaut Domaine DNS Adresse IP du serveur de noms Dynamic Host Configuration Protocol (DHCP) Service Internet => couche application RFCs 2131 et 2132 en 1997 Communications sur les ports UDP 67 (client) et 68 (serveur)
21/25 Dynamic Host Configuration Protocol 3 générations de protocoles Reverse Address Resolution Protocol (RARP) RFC903 en 1984 puis RFC1931 en 1996 Protocole entre couche liaison et réseau Fonction limitée à un objectif simple : Obtenir une adresse IP à partir d une adresse MAC Bootstrap Protocol (BOOTP) RFC951 en 1985 puis RFC1497 et RFC 1542 en 1993 Protocole de couche application sur UDP Initialement destiné à la configuration réseau des hôtes sans dispositif de stockage Dynamic Host Configuration Protocol (DHCP) Protocole de couche application sur UDP ; comme BOOTP Format des messages échangés identique à BOOTP Innovation principale : affectation dynamique des paramètres et gestion centralisée distribuée Notion de bail de location des paramètres pour une durée limitée
22/25 Dynamic Host Configuration Protocol Configuration du service DHCP Logiciel de référence Dynamic Host Configuration Protocol (DHCP) Internet Support Consortium http://www.isc.org Paquets Debian GNU/Linux dhcp3-common, dhcp3-client, dhcp3-server netbase : utilisation du client intégrée directement dans la configuration des interfaces Organisation des fichiers de configuration Clients et Serveurs stockent les informations de bail dans le répertoire /var/lib/dhcp3/ Côté client, le fichier /etc/network/interfaces contient les directives d utilisation du service DHCP iface eth0 inet dhcp Côté serveur, on utilise un fichier de configuration unique : /etc/dhcp3/dhcpd.conf
23/25 Dynamic Host Configuration Protocol Relations DNS & DHCP Le nom d hôte sert de lien entre les 2 services Côté serveur DNS : RR de l hôte rubis $ORIGIN lan.stri. rubis A 192.168.1.4 Côté serveur DHCP : option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name "lan.stri"; option domain-name-servers 192.168.1.1; host rubis { fixed-address rubis.lan.stri; hardware ethernet a8:dc:59:9d:29:c6; }
24/25 Dynamic Host Configuration Protocol Documentation & patrons de configuration Éviter de se «disperser» dans l étude des documents Rester concentré sur la documentation officielle Pour la syntaxe de configuration du service Documentation sur la configuration des interfaces réseau : man interfaces Documentation du paquet Debian dhcp3-server Pages de manuels : man dhcpd.conf Patron de fichier : /usr/share/doc/dhcp3-server/examples/dhcpd.conf
25/25 Synthèse DNS + DHCP Domain Name System Configuration statique Comment gérer les entités mobiles? Passer à un service DNS dynamique ou à un annuaire LDAP... Contrôle des flux et de la congestion Passer au protocole TCP... Sécurité Comment garantir l intégrité des informations? Comment authentifier client et serveur? Utiliser DNSSEC... Vunérabilité des 13 serveurs racine Dynamic Host Configuration Protocol Configuration statique Comment gérer les entités mobiles? Sécurité Comment authentifier client et serveur?