Résolution des noms DNS: Domain Name System hosts.txt Les

Transcription

Résolution des noms DNS: Domain Name System hosts.txt Les
20/03/2011
INTRODUCTION Problématique
• Problématique
Résolution des noms
DNS: Domain Name System
– Sur un réseau comme Internet une machine (ou service) peur être
identifiée par:
• Un nom d’hôte,
• Une adresse logique (IP).
– En générale, les utilisateurs ne connaissent que le nom des
machines ou des services avec lesquels ils veulent communiquer.
• Exemple pour serveur web: www.fstfes.ma
– Les machines n’établissent leur communication qu’a l’aide de
leurs adresses IP,
– Comment résoudre les noms de machines
en adresses IP ?
ü
INTRODUCTION
INTRODUCTION
gestion des noms sur arpanet
hosts.txt
L’ARPANET (Advanced Research Program Agency
Network) des années 80 est constitué d’une centaines
d'ordinateurs reliés en réseaux.
/etc/hosts
127.0.0.1
194.214.66.29
192.168.169.2
ü Un unique fichier hosts.txt rassemble les
correspondances entre nom d'hôte et adresse IP.
ü
localhost
routeur-fst-fes
www.fstfes.ma
Le fichier est stocké sur le SRI-NIC (Stanford
Research Institutes Network Information Center) .
ü Après chaque modification, des copies sont transférées
par ftp vers les ordinateurs du réseau.
INTRODUCTION
INTRODUCTION
Les inconvénients
§ La taille du fichier hosts.txt augmente avec le nombre
d’hôtes,
§ temps de diffusion des infos (par ftp ),
§ système centralisé (chaque poste a sa propre base
données),
§ La fréquence des mises-à-jours des tables devient
proportionnelle au nombre de machines,
§ La consommation de la bande passante,
§ correspondance statique,
§ ne contient que des infos réduites,
§ noms enregistrés sous le domaine arpa
§ collision rapide de noms
UNIX
Windows
J. Postel
P. Mockapetris
1983-84 Paul Mockapetris et Jon Postel
proposent et développent une solution à base
de BD distribuée
Domain Name System
1
20/03/2011
Domain Name Server
• Le système DNS est fondé sur un système de base de
données répartie,
Domain Name Server
• basé sur le modèle client / serveur
•
Chaque serveur est donc responsable des adresses IP
appartenant à un domaine d’adressage délimité,
• Les requêtes et les réponses sont envoyées dans
des paquets
•
Lorsqu’un serveur n’est pas en mesure de résoudre une
adresse, il existe des procédures définissant la manière
d’accéder à un serveur capable de traiter la requête,
– UDP, port 53
– ou sur TCP, port 53 pour les requêtes très grandes ,
exemple : transfert zone à partir du maître vers
l’esclave
• Le système DNS a donc été construit sur un concept
d’espaces de dénomination,
• Ces espaces de dénomination s’appuient sur la structure
hiérarchique.
• Les messages (requête ou réponse) du protocole
DNS sont définis dans le RFC1035.
L’espace Nom de domaine
• Chaque unité de donnée dans la base DNS est indexée (etiquettés) par
un nom,
• Les noms constituent un chemin dans un arbre inversé appelé : l’espace
Nom de domaine,
• Organisation similaire à un système de gestion de fichiers.
L’espace Nom de domaine
• Organisation arborescente
• Chaque noeud est identifié par un nom
• Racine appelée root, identifiée par «.»
L’espace Nom de domaine
• La racine: est le nœud unique situé au sommet de l’arbre DNS
représenté par un point appelée root domain..
• Physiquement la racine correspond à 13 serveurs racine du DNS
d'Internet géré sous l'autorité de l'ICANN(Internet Corporation for
Assigned Names and Numbers).
• http://www.root-servers.org/
L’espace Nom de domaine
• Organisation arborescente:
• Top Level Domains – TLD: Sous la racine, on trouve les domaines
de 1er niveau (organisation et pays) étiquetés com, edu, gov, int,
mil, org, net et des codes d'états ou de pays normalisés sur 2
lettres (ma pour maroc, fr pour la France).
– TLDs spéciaux
• ARPA. : gTLD "préhistorique" réutilisé pour des mécanismes spécifiques tels que le
reverse DNS ou ENUM.
• EXAMPLE., TEST., INVALID. : TLDs conventionnels pour expérimentation et
documentation (RFC 2606).
• LOCALHOST. : TLD conventionnel (mais non officiel) pour "localhost=127.0.0.1" (RFC
1912).
•
2eme niveau: on trouve des domaines gérés par des
entreprises, institutions, organismes…
• NB:
– L’organisation qui a autorité sur un domaine peut créer un ou plusieurs
sous-domaines.
– DNS supporte jusqu’à 127 niveaux de domaines.
2
20/03/2011
Les noms de domaine
Les noms de domaine
Un nom de domaine est la séquence de labels (étiquettes) depuis le
noeud de l’arbre correspondant jusqu’à la racine (.).
.
ma
• Lecture des noms de domaine
– A l’inverse de l’adressage IP la partie la plus significative si situe à
gauche de la syntaxe :
m1.fstfes.ac.ma
ac
212.217.61.5
vers le plus significatif
vers le plus significatif
fstfes
m1. fstfes. ca.ma
M1
www
Le nom FQDN de la machine: M1.fstfes.ac.ma.
domaine maroc ma
domaine de l’organisation ac
sous-domaine fstfes
Deux noeuds fils ne peuvent avoir le même nom ==> unicité d’un nom
de domaine au niveau mondial
machine m1 du domaine fstfes.ac.ma
Les noms de domaine
Les noms de domaine
• Règles de nommage:
• Le système DNS impose peu de règles de nommage
FQDN(Fully qualified Domain Name)
:
• 63 caractères au maximum par label
• Majuscules et minuscules non significatives
• Doit commencer par une lettre
• la longueur totale pour un nom de domaine étant est limitée à 255
caractères.
Exemples :
ma
serveur1.ca.ma.
Nom
d'hôte
• Nom Absolu(FQDN): Un nom complet avec "." final s'appelle un
FQDN (Fully Qualified Domain Name). Exp: serveur1.fstfes.ac.ma.
fstfes
serveur1.fstfes.ca.ma.
Nom
d'hôte
serveur1 = 192.168.0.66
serveur1 = 192.168.0.67
Suffixe DNS
zone
Le domaine
• Notion de zone
Un domaine est un sous-arbre de l’espace nom de domaine
Domaine complet
ma
Domaine ma
fstfes
ca
Suffixe DNS
FQDN
• Nom Relatif: L'absence de point final dans un nom s'interprète
comme un nom relatif à un domaine courant : exp: fstfes.ac.ma
« . » Racine
FQDN
– Le domaine est l'ensemble d'une sous arborescence
exemple : le domaine ma. rassemble toute la sous arborescence à partir
du noeud ma
– la zone est la partie descriptive pour un niveau donné :
• elle est restreinte à un noeud
• une zone est constituée de la base de données décrivant un nœud,
Domaine fstfes
fstsettat
m1
noeud m1.fstfes.ma
Des noeuds peuvent avoir les
mêmes noms dans des domaines
différents :
M1.fstfes.ma et m1.fstsettat.ma
Nœud de type :machine
3
20/03/2011
Les serveurs de noms
Terminologie: Domaine, zone, machine
• Les logiciels qui gèrent les données de l’espace nom de domaine sont
appelés des serveurs de nom (name servers),
• Les serveurs de nom enregistrent les données propres à une partie de
l’espace nom de domaine dans une zone,
• Le serveur de nom à autorité administrative sur une zone,
• Un serveur de nom peut avoir autorité sur plusieurs zone,
• Une zone contient les informations d’un domaine sauf celles qui sont
déléguées.
• Domaine
•
Un domaine est la partie de l’arborescence à partir du nœud portant son nom
•
On parle de sous domaine pour un domaine inclut dans un autre
• Exemple: domaine ma, : arborescence à partir du nœud ma
– Exemple: fstfes.ma est un sous domaine du domaine ma
• noeud
•
Un noeud contient à la fois des noms de machines et des sous-domaines,
• Zone
ca
bc
ab
ma
on
qb
– C’est la base de donnée associée à un nœud
– les bases de données associées aux zones continnent:
• Noms/Adresses des serveurs de la zone
– Exemples:
– Racine: liste des serveurs des domaines de premiers niveaux
– ma: listes des adresses des serveurs des sous-domaines de ma
• Noms/Adresses des machines de ce domaine
domaine
zone
Terminologie:
Domaine, zone, machine
• La zone représente un nœud de l’arborescence alors que le domaine
représente une sous arborescence à partir d’un nœud.
• tout nœud non-terminal (c’est à dire tout nom ne désignant pas une
machine) est appelé zone.
• ma est donc une zone,
• Le domaine fstfes.ma comprend la zone fstfes.ma.
• La distinction machine/zone est importante puisque ces 2 objets n’ont pas
du tout les mêmes propriétés :
– une zone est caractérisée par des serveurs de noms….,
– une machine est caractérisée par son adresse IP et son nom.
• Une base de données par nœud de type (zone);
Délégation
• Délégation d'un nœud père vers un nœud fils,
• un nœud peut être père de plusieurs nœuds fils,
• le lien est effectué en précisant au niveau du nœud père
où trouver la base de donnée des nœuds fils
•
but
–
–
–
–
distribuer la gestion de chaque nœud à des entités différentes,
une base de données pour chaque nœud,
l'ensemble de ces bases étant géré de façon décentralisé,
pour définir des domaines de responsabilités différentes.
• L'ensemble de ces bases de données constitue le système d'information
hiérarchique et distribué du DNS,
Délégation
Délégation
• Délégation
• Le système DNS est entièrement distribué au niveau
planétaire,
• A tout domaine est associé une responsabilité administrative,
• Une organisation responsable d’un domaine peut :
– découper le domaine en sous-domaines ,
– déléguer les sous-domaines à d’autres organisations :
• qui deviennent à leur tour responsables du (des) sous-domaine(s)
qui leurs sont délégué(s),
• peuvent, à leur tour, déléguer des sous-domaines des sousdomaines qu’elles gèrent.
4
20/03/2011
Administration
• Administration
Administration
• Administration
– NIC (Network Information Center) L’organisme
qui gère les domaines du niveau TDL.
– Des organismes régionaux
• Groupements de pays
–
–
–
–
–
APNIC : Asie - Pacifique
ARIN : Amérique du nord
LACNIC: Amérique latine et îles des caraîbes
RIPE NCC: Europe - Moyen Orient
AFRINIC : Afrique
Fonctionnement du DNS
• Le service DNS est formé de trois composants :
–Le résolveur,
–Le serveur DNS,
Fonctionnement du DNS
• Système client/serveur
• client
– resolver : interface cliente permettant d'interroger un serveur
– les machines clientes pointent généralement vers un serveur par défaut
(/etc/resolv.conf sur Unix)
• Serveur de noms
– chaque serveur gère sa propre base de données
– optimisation par des systèmes de cache et de réplication
–L’espace de dénomination du domaine.
Fonctionnement du DNS
• Au-dessus d 'IP
– service s'exécutant sur le port 53
• UDP et TCP
(TCP n'est pas réservé qu'au transfert de zone
et est utilisé si la taille de la réponse est supérieure à la
limite d 'un paquet UDP de 512 octets)
• RFC 1035
Fonctionnement du DNS
• Fonctionnement du client : le resolver
– Toute machine utilisant TCP/IP comporte un client permettant la
traduction de noms en adresses IP : le resolver, il permet de
communiquer avec les serveurs DNS
5
20/03/2011
Fonctionnement du DNS
• 2 modes d'interrogation
– récursif : le client envoie une requête à un serveur, ce dernier
Fonctionnement du dns
• Fonctionnement du serveur de noms
devant interroger tous les autres serveurs nécessaires pour renvoyer
la réponse complète au client (mode utilisé par les machines clientes
en général)
– itératif : le client envoie une requête à un serveur, ce dernier
renvoyant la réponse si il la connaît, ou le nom d'un autre serveur qu’
il suppose plus renseigné pour résoudre cette question (mode utilisé
par le resolver des serveurs en général)
Fonctionnement du dns
Types de serveurs de noms
• Serveur de noms
• Les serveurs de nom de domaine: permettent d'établir la
correspondance entre le nom de domaine et l'adresse IP des machines
d'un réseau.
• Chaque serveur de nom est déclaré dans à un serveur de nom de
domaine de niveau immédiatement supérieur,
• Ce qui permet implicitement une délégation d'autorité sur les domaines.
• Le système de nom est une architecture distribuée, où chaque entité est
responsable de la gestion de son nom de domaine.
• Il n'existe donc pas d'organisme ayant à charge la gestion de l'ensemble
des noms de domaines.
Types de serveurs de noms
• Serveur primaire
• Un serveur est dit primaire pour une Zone DNS, s’il dispose
localement (hors cache) de l'ensemble des informations de la Zone
• autorité pour un ou plusieurs domaines
• Ce serveur contient les informations relatives au domaine (dans un
fichier de zone)
• Son père: le serveur du domaine supérieurs (root server ),
• Ses fils : les serveurs de chacun de ses sous-domaine,
• Les noms qu’il gère directement.
• Source officielle des informations concernant son ou ses domaines
• Répond aux requêtes concernant sa zone d’autorité
– Retransmet des requêtes (hors son domaine)
– ou réoriente les clients vers les serveurs concernés (root)
• Transfert de la totalité de la zone aux serveurs secondaires (mise a
jour AXFR, IXFR)
• Quatre types de serveurs
– Serveur
– Serveur
– Serveur
– Serveur
maitre primaire,
maitre secondaire,
cache,
Redirecteur (forwarding)
Types de serveurs de noms
• Serveur secondaire,
• Il transfère un ensemble complet d’informations sur le domaine à
partir du serveur primaire,
• Ce transfert est appelé un transfert de fichier de zone,
• Il conserve une copie complète de toutes les informations du
domaine,
• répond aux requêtes émanant des clients comme s’il était le
serveur primaire,
• La seule différence entre un serveur primaire et un serveur
secondaire est l’inexistence de fichiers de description des zones au
niveau du serveur secondaire,
• NB: Les domaines sont généralement gérés par un serveur primaire
et un ou plusieurs serveurs secondaires. Ce qui contribue à la
robustesse du système.
6
20/03/2011
Types de serveurs de noms
Types de serveurs de noms
• Serveur cache
• N’a autorité sur aucune zone
– Source non officielle des informations
• Il s'enrichit au fur et à mesure par les données récoltées pour résoudre
les requêtes des clients
– une requête déjà demandée est résolue à partir du cache du serveur
– le cache possède alors des informations locales et non locales
• Répond à ses clients en utilisant ces informations locales
– éviter la surcharge inutile du réseau
– supprimer les délais du réseau
– amoindrir la charge des autres serveurs
• Les données du cache possèdent une durée de vie limitée(Time To Live
- ttl) afin de permettre son rafraîchissement et la prise en compte des
modifications
• Tout serveur possède en général au minimum un cache
Redirecteurs
Types de serveurs de noms
• Serveur redirecteur (forwarding)
• Il n’a autorité sur aucune zone,
Un redirecteur est un serveur DNS que d'autres serveurs DNS internes
désignent comme responsable du transfert des requêtes pour la résolution
de noms de domaines DNS externes ou hors site
Redirecteur
• Il fait suivre la requête reçue vers d'autres serveurs par une requête ellemême récursive
Requête itérative
Interroger .com
Indication de racine (.)
.com
• ces types de serveurs possèdent une liste de serveurs à interroger
– vérifie si la réponse n'est pas dans son cache
– sinon fait suivre à un des serveurs la requête
– en cas d'échec tente de résoudre lui même la demande
• enrichissement rapide d'un cache partagé (au sein d 'un
organisme pour ne pas surcharger la liaison vers l 'extérieur).
nwtraders.com
Serveur DNS
local
Computer1
41
Base données DNS
Base données DNS
• Resource Record (RR)
• Comme pour toute base de données, le serveur de
nom a un format pour ses champs, ou “ Resource
Record ”,(RFC 1035),
• L'ensemble des informations de la base de données
DNS est structuré autour des Resource Records.
– Les nœuds de l’espace sont décrits par des RR
maintenus à jour sur des serveurs autorisés : opération
manuelle,
– Le rôle des serveurs de noms est de propager ces
informations en répondant aux questions des résolveurs,
– Les données associées a chaque nom de domaine sont
enregistrées sous forme de Resource Record (RR)
7
20/03/2011
Resource Record RR
Resource Record RR
• Un enregistrement de ressource est composé de cinq champs
Nom-domaine
Poste.informatique.fst.
Nom domaine
du RR
TTL
CLASS
TYPE
RDATA
172800 (2j)
IN
A
192.168.1.10
durée de vie
en cache
Sur 32-bits
IN,
CH
A
CNAME
MX
NS
PTR
SOA.
A
CNAME
MX
PTR
SOA
Type de base RR
Type RR
A
AAAA
Description
Résout un nom d'hôte en adresse IP
adresse IPv6
PTR
Résout une adresse IP en nom d'hôte
SOA
Premier enregistrement dans tout fichier de zone,
description de la base de données d'une zone
SRV
Résout les noms des serveurs qui fournissent des services
NS
Identifie le serveur DNS associé à chaque zone
MX
Serveur de messagerie
CNAME
:
Nom-Domaine
est un nom absolu de l'espace de nommage DNS (FQDN Fully
Qualified Domain Name)
TTL
Time To Live définit la durée de vie de l'objet dans les caches.
Elle s'exprime en secondes par un entier 32bits, soit 140 ans
max.
CLASSE
vaut IN pour internet, CH pour chaos, HS pour Hesiod...
TYPE
le type de données du RR
RDATA
la valeur de l'objet. Elle dépend directement du TYPE de RR
FORMAT DES MESSAGES DNS
• Entête du message DNS
• DNS utilise une structure de message normalisé
précédée d’un en-tête. Cette structure est définie par la
RFC 883.
Rèsout un nom d'hôte en nom d'hôte (Alias)
FORMAT DES MESSAGES DNS
• Entête du message DNS:
• ID (16 bits) : N° d’identificateur généré par la station qui émet la
demande. Il est recopié dans chaque réponse et permet de faire
correspondre chaque requête à son résultat.
• QR (1 Bit) : Indique si le message est une question (Query=0) ou une
réponse (R=1)
• Opcode (4 Bits) : Ce champ précise le type de requête. Il est défini lors
de l’envoi de la demande et recopié dans toutes les réponses. Les
valeurs suivantes sont possibles :
FORMAT DES MESSAGES DNS
• Entête du message DNS:
• Indicateur AA ( Authorative Answer, 1 Bit) : Indique que le serveur de
noms qui à répondu représente une autorité pour le domaine interrogé,
• Indicateur TC (TrunCation, 1 Bit) : Indique si le message dépasse 512
octets et fait donc parti d’un message plus important,
• Indicateur RD (Recursion Desired, 1 Bit) : Signale au serveur que la
demande doit être traitée de manière récursive. Ne fonctionne que si
cette option est active sur le serveur DNS,
• Indicateur RA (Recursion Available, 1 Bit) : Indique que le serveur prend
en charge les demandes récursives,
• La zone réservée de 3 bits qui suit reste vide et sert à compléter la ligne
pour atteindre 16 Bits.
8
20/03/2011
FORMAT DES MESSAGES DNS
• Entête du message DNS:
• Rcode (Response Code, 4 Bits) : cette valeur et
positionnée dans la réponse par le serveur et indique les
erreurs éventuelles :
FORMAT DES MESSAGES DNS
• Entête du message DNS:
• Les compteurs suivant permettent de savoir comment sont découpées les
données qui suivent l’en-tête dns et qui contiennent les demandes et les
réponses.
– Compteur QD (16 Bits) : Nombre d’entrées dans la zone de demande
– Compteur AN (16 Bits) : Nombre de messages de réponse
– Compteur NS (16 Bits) : Nombre de serveurs de noms contenues
dans la zone des données d’autorité
– Compteur AR (16 Bits) : Nombre d’enregistrements pour des entrées
supplémentaires dans la zone.
FORMAT DES MESSAGES DNS
• Données dns
FORMAT DES MESSAGES DNS
• Données DNS
– Question : contient le nom de la requête et ses autres
paramètres.
– Réponse :contient les RR qui répondent directement à la requête.
– Autorité :contient les RR décrivant d'autres serveurs "autorisés".
Peut aussi contenir un RR SOA contenant les données
d'autorisation dans la section réponse.
– Additionnel: contient les RR qui peuvent aider à exploiter les RR
contenus dans les autres sections.
FORMAT DES MESSAGES DNS
• Question (Requête DNS)
• Une requête DNS est un triplet de la forme
{Nom-Domaine CLASSE QTYPE}
• QName: Nom du domaine où se trouve le RR.
• QClasse: Une valeur encodée sur 16 bits identifiant une
famille de protocoles ou une instance d'un protocole.
• QType: Query type codé sur 16 bits, spécifie quel type
de donnée sont utilisés dans le RR: A, PTR……
FORMAT DES MESSAGES DNS
• Réponse DNS
• Ttl: C'est la durée de vie des RRs (32 bits, en secondes), utilisée
par les solveurs de noms lorsqu'ils ont un cache des RRs pour
connaître la durée de validité des informations du cache (durée
limite pendant laquelle un RR peut être conservé dans un cache
local).
• Longueur: Sur 16 bits, ce champ indique la longueur des
données suivantes.
9
20/03/2011
FORMAT DES MESSAGES DNS
FORMAT DES MESSAGES DNS
• Réponse DNS
• Réponse DNS
• Données: Données identifiant la ressource, ce que l'on
met dans ce champs dépend évidemment du type de
ressources que l'on décrit.
– A : Pour la classe IN, une adresse IP sur 32 bits,
– Cname : un nom de domaine,
– Mx : une valeur de préférence sur 16 bits (la plus basse
possible) suivie d'un nom d'hôte souhaitant servir d'échangeur
de courrier pour le domaine,
– Ptr : Une adresse IP sous forme d'un nom,
– Ns : Un nom d'hôte.
• La réponse ou résolution d'une requête de base
(QTYPE=TYPE) consiste à trouver l'ensemble des RRs du
DNS qui correspondent.
Exemple:
• Requête :
• khalid.informatique.fst
• Réponse:
khalid.informatique.fst .
IN
86400 IN
A
A
192.168.1.10
57
FORMAT DES MESSAGES DNS
FORMAT DES MESSAGES DNS
FORMAT DES MESSAGES DNS
DNS sous Linux
• BIND Berkeley Internet Name Domain
– Sous UNIX, le DNS est implanté par le programme BIND,
– BIND est un système client/serveur,
– La partie serveur de BIND est le démon named,
– La partie client est appelée le résolveur:
elle génère des requêtes pour obtenir des informations relatives à un
nom.
10
20/03/2011
DNS sous Linux
• Configurer le résolveur.
DNS sous Linux
• Configuration du résolveur:
– exemple de fichier resolv.conf
– La configuration du résolveur figure dans le fichier: /etc/resolv.conf
– nameserver: c’est l’option principale, elle indiquent les adresses IP des
serveurs auxquelles le résolveur envoie ses requêtes pour obtenir des
informations (max 3 serveur),
– domain: L’entrée domain définit le nom de domaine par défaut. Le résolveur
ajoute le nom de domaine par défaut à n’importe quel nom de machine qui ne
contient pas de point,
– search: définit une liste de domaines recherchés lorsqu’un nom ne contient
pas de point,
– NB:
• Cela signifie que les entrées domain et search sont redondantes,
• Lorsqu’un nom ne contient pas de point, l’entrée domain est en premier lieu utilisée
pour compléter le nom. Si la recherche échoue, ce sont les entrées search qui sont
exploitées dans l’ordre de leurs apparitions pour tenter de compléter le nom,
• Il n’est pas recommandé d’utiliser à la fois domain et search dans une même
configuration.
DNS sous Linux
• Configuration du daemon named
DNS sous Linux
• Configuration du daemon named
– La base données du DNS est constitue de deux fichiers:
• Fichier de zone: relie les noms d’hôtes à leur adresse,
• Fichier de zone inverse: relie les adresses à leur nom d’hôte.
– named.ca: Fichier de zone racine, définit l’emplacement
des serveurs racine.
– named.conf: fichier de configuration principal, relié les
fichiers de la base données entre eux.
DNS sous Linux
• Configuration du daemon named
• named.conf : C’est le fichier de configuration lu au
démarrage. il est exploité afin de stipuler à BIND quels fichiers
de base de données il doit utiliser,
• named.ca (.root): L’objectif de ce fichier est de définir
l’emplacement des serveurs de la racine(Généralement, les configurations de
serveurs de noms possèdent déjà un tel fichier).
• localhost.rev(0.0.127): Le serveur de noms a besoin d’un autre
fichier de correspondance inverse pour le réseau loopback. Ce réseau est
utilisé par un hôte pour communiquer avec lui-même. Le numéro de ce
réseau est toujours 127.0.0 et l’adresse de l’hôte est toujours 127.0.0.1.
DNS sous Linux
• Configuration du daemon named
• Fichiers de zone
– Fichier de zone (Informatique.fst):
– Ce fichier contient la base donnée de la zone. Ce fichier
permet de convertir des noms en adresses IP,
– Fichier de zone inverse
(1.168.192):
– Ce fichier contient la base de données de la zone
“reverse” pour le domaine informatique.fst, il qui permet de
convertir les adresses IP en noms.
11
20/03/2011
Base données DNS
Base donnée DNS
• RR de type SOA
• Cinq enregistrements, ou “Resource Record”, sont
absolument fondamentaux pour faire fonctionner un serveur
de noms : SOA, NS, A, MX et PTR.
• RR type SOA
$ORIGIN
@ IN SOA
• SOA est l’acronyme de “ Start Of Authority ” et désigne le début obligé et
unique d’une zone,
• Il doit figurer dans chaque fichier de zone( directe et inverse),
• Le nom de cette zone est ici repéré par le caractère @ qui signifié la zone
courante, repérée par la ligne au dessus :
$ORIGIN informatique.fst.
informatique.fst.
ns1.informatique.fst. admin.informatique.fst . (
2007100801 ; Serial
10800 ; Refresh (3h)
3600 ; Retry (1H)
3600000 ; Expire (5w6d16h)
86400 ) ; Minimum ttl (1D)
• La ligne aurait également pu s’écrire :
informatique.fst.
Base donnée DNS
• RR de type SOA
Base donnée DNS
• RR de type SOA
• Numéro de série (serial) : Identifie la version de la zone ; quand on
modifie le fichier de zone, on incrémente ce numéro.
• Rafraîchissement (refresh) : intervalle en secondes destiné au serveur
secondaire pour rafraîchir son fichier de zone (nombre décimal entier sur
8 chiffres). Cette valeur peut être élevée si on a maintenu l'option "notify
yes" au niveau du serveur maître.
• Tentatives (retry) : intervalle en secondes avant de recontacter le
serveur principal en cas d'échec de la demande de rafraîchissement.
• Expiration (expire) : indique le temps en secondes, au bout du quel un
serveur secondaire doit éliminer toutes les informations de zone s'il n'a
pas pu contacter le serveur (cette valeur doit être élevée).
• TTL: Durée de présence d'une réponse négative dans les caches suite à
une question sur le domaine,
• Toutes les "refresh" secondes, le serveur secondaire transfère le SOA de
la zone et vérifie si le numéro de série a augmenté ; si c'est le cas le
transfert de zone a lieu.
• En cas d'échec de cette interrogation, le serveur secondaire recommence
toutes les "retry" secondes jusqu‘à atteindre le temps d'expiration (expire).
• Remarque:
– Mais si l'on a maintenu, sur le serveur primaire, l'option par défaut de
notification, le serveur maître notifiera immédiatement tout changement de
son fichier de zone au serveur secondaire,
– Attention : à chaque modification du fichier de zone, il ne faut pas oublier
d'augmenter le numéro de série et de faire une relecture par le démon du
fichier de configuration.
Base donnée DNS
• RR de type NS
• Il faut ajouter une ligne de ce type (“ Name Server ”) pour chaque serveur
de noms pour le domaine. Notez bien que rien dans la syntaxe ne permet
de distinguer le serveur principal de ses secondaires.
• Dans le fichier de zone :
IN
IN
IN
IN SOA dns1.informatique.fst. admin.informatique.fst.
• Un problème concernant cette zone devra être signalé par e-mail à
[email protected] (notez le “.” qui s’est transformé en “@”),
• Les paramètres de ce SOA sont décrits sur plusieurs lignes, regroupées
entres parenthèses. Le caractère “;” marque le début d’un commentaire,
qui s’arrête à la fin de ligne,
• Les points en fin de noms sont nécessaires.
NS
NS
NS
ns1.informatique.fst.
ns−slave1.informatique.fst.
ns−slave2.informatique.fst.
• Dans le fichier qui renseigne la zone “ reverse ”:
1.168.192.in−addr.arpa.
1.168.192.in−addr.arpa.
1.168.192.in−addr.arpa.
IN
IN
IN
NS
NS
NS
ns1.informatique.fst.
ns−slave1.informatique.fst.
ns−slave2.informatique.fst.
Base donnée DNS
• RR de type A “Address record”
• Attribue une ou plusieurs adresses à un nom, c’est donc celui
qui est potentiellement le plus fréquemment utilisé,
• Il doit y avoir un RR de type A pour chaque adresse d’une
machine.
ns1
Poste1
Poste2
IN
IN
IN
Poste2.informatique.fst.
IN
A
A
A
192.168.1.2
192.168.1.10
192.168.1.20
A
192.168.1.20
12
20/03/2011
Base donnée DNS
• RR de type PTR“ PoinTeR Record ”
• Permet de spécifier les adresses pour la résolution inverse, donc dans le
domaine spécial IN-ADDR.ARPA.
Base donnée DNS
• Le RR de type MX,“Mail eXchanger”
• Concerne les relations entre le serveur de noms et le courrier
électronique.
priorité
IN
IN
• Notez le “.” en fin de nom qui interdit la complétion (il s’agit bien du nom
FQDN).
2
10
20
IN
IN
IN
PTR
PTR
PTR
(2.1.168.192.in-addr.arpa.
ns1.informatique.fst.
poste1.informatique.fst.
poste2.informatique.fst.
IN
PTR
10
20
mail.informatique.fst.
mail2.informatique.fst.
• RR de type CNAME “ canonical name ”
• permet de distinguer le nom officiel d’une machine de ses surnoms.
www
ftp
ns1.informatique.fst. )
Base donnée DNS
MX
MX
IN
IN
CNAME
CNAME
poste1
poste1
Fichiers de configuration de DNS
• Remarque
• Il existe d’autres RR, HINFO ,TXT, WKS et KEY,
named.conf
• Le fichier named.conf est une suite de déclarations utilisant des options
imbriquées qui sont placées entre accolades, { }.
• Un fichier named.conf typique est organisé de manière semblable à
l'extrait ci-dessous :
<déclaration-1> ["<déclaration-1-nom>"] [<déclaration-1-classe>]
{
<option-1>;
...
<option-N>;
};
<déclaration-N> ["<déclaration-N-nom>"]
[<déclaration-N-classe>]
•
•
•
•
Le fichier
Le fichier
Le fichier
Le fichier
named.conf,
named.ca,
de zone directe,
de zone inverse.
named.conf
• Types courants de déclarations:
– Déclaration
– Déclaration
– Déclaration
– Déclaration
acl,
include,
options,
zone.
{
<option-1>;
...
<option-N>;
};
13
20/03/2011
named.conf
named.conf
• Déclaration acl
(liste de contrôle d'accès)
• définit des groupes d'hôtes,
• Le but est de pouvoir désigner ces groupes par leur nom et leur
appliquer des options dans d’autres déclarations,
• La syntaxe:
acl <nom_de_la_liste> {
<élément-correspondant>;
[<élément-correspondant>; ...]
};
• Déclaration include,
• Le fichier /etc/named.conf est accessible en lecture pour tous les
utilisateurs
• La déclaration include permet à des fichiers d'être inclus dans un fichier
named.conf.
• Finalité, des données de configurations critiques (telles que les clés,
keys) peuvent être placées dans un fichier séparé doté de permissions
restrictives.
• Syntaxe:
include "file_name"
named.conf
named.conf
• Déclaration option
• Déclaration option
• La déclaration options définit les options globales de configuration serveur
et établit des valeurs par défaut pour les autres déclarations.
• Syntaxe:
• Option de configuration(suite)
• allow-recursion: cette option s'applique à des demandes récursives. Par défaut,
options {
<option>;
[<option>; ...]
};
tous les hôtes sont autorisés à effectuer des demandes récursives sur le serveur de
noms,
• Blackhole: Spécifie les hôtes qui ne sont pas autorisés à interroger le serveur de
noms,
• Directory: Change le répertoire de travail named pour une valeur autre que la
valeur par défaut, /var/named/,
• forward : Contrôle le comportement de retransmission d'une directive forwarders.
– Les options suivantes sont acceptées :
• Option de configuration
• allow-query : Spécifie les hôtes autorisés à interroger ce serveur de noms.
Par défaut, tous les hôtes sont autorisés à interroger le serveur de noms.
Il est possible d'utiliser ici une liste de contrôle d'accès ou un ensemble d'adresses IP ou de
réseaux afin de n'autoriser que des hôtes particuliers à interroger le serveur de noms.
named.conf
• first : Établit que les serveurs de noms spécifiés dans la directive forwarders soient
interrogés avant que named ne tente de résoudre le nom lui même.
• only : Spécifie que named ne doit pas tenter d'effectuer lui-même une résolution de
nom dans le cas où des demandes vers les serveurs de noms spécifiés dans la
directive forwarders échouent.
named.conf
• Déclaration option
• Option de configuration
• forwarders : Spécifie une liste d'adresses IP valides correspondant aux serveurs
de noms vers lesquels les requêtes devraient être envoyées pour la résolution.
• listen-on: Spécifie l'interface réseau sur laquelle named prend note des
requêtes. Par défaut, toutes les interfaces sont utilisées.
• notify : Établit si named notifie les serveurs esclaves lorsqu'une zone est mise à
jour.
– Les options suivantes sont acceptées :
• yes : Notifie les serveurs esclaves.
• no : Ne notifie pas les serveurs esclaves.
• explicit : Notifie seulement les serveurs esclaves spécifiés dans une liste also-notify à
l'intérieur d'une déclaration de zone.
• statistics-file : Spécifie un autre emplacement des fichiers de statistiques. Par
défaut, les statistiques named sont enregistrées dans le fichier
/var/named/named.stats.
• Déclaration Les options:
• Exemple
acl " info-fst" { 127.0.0.1; 192.168.1.0/24; };
options {
directory "/etc/namedb";
forwarders {
193.252.19.3; # Les DNS de notre
193.252.19.4; # providers
};
allow-query { "info-fst";};
listen-on { 192.168.1.2; };
};
14
20/03/2011
named.conf
named.conf
• Options de déclaration de zone
• Déclaration zone
• La plupart des changements apportés au fichier /etc/named.conf
d'un serveur de noms maître ou esclave implique l'ajout, la
modification ou la suppression de déclarations de zone.
• Définit les caractéristiques d’une zone,
• Emplacement des fichiers de configuration de la zone,
• Options spécifiques à la zone.
• Syntaxe
zone <zone-nom> <zone-classe> {
<zone-options>;
[<zone-options>; ...]
};
named.conf
• Déclaration zone
• Ci-dessous se trouve un exemple de déclaration zone pour le serveur de
noms primaire hébergeant informatique.fst (192.168.1.2) :
zone " informatique.fst " IN {
type master;
file "informatique.fst.zone";
allow-update { none; };
};
–
–
–
–
Dans cette déclaration, la zone est identifiée en tant que informatique.fst,
Le type est défini comme master,
Le service named a comme instruction de lire le fichier /var/named/informatique.fst.zone,
Elle indique à named de refuser la mise à jour à tout autre hôte.
named.conf
•
[root@serveurdns /etc]# cat named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127";
};
zone " informatique.fst" IN {
type master;
file " informatique.fst";
};
zone "1.168.192.in-addr.arpa"
IN {
type master;
file "1.168.192";
};
named.conf
• Déclaration zone:
zone " informatique.fst " {
type slave;
file " informatique.fst.zone";
masters { 192.168.1.2; };
};
• Cette déclaration zone configure named sur le serveur esclave de
manière à ce qu'il cherche le serveur maître à l'adresse IP 192.168.1.2
pour y trouver les informations concernant la zone appelée
informatique.fst.
• Les informations que le serveur esclave reçoit du serveur maître sont
enregistrées dans le fichier /var/named/informatique.fst.zone.
named.ca
• zone racine (named.ca)/(named.root)
• L’objectif du fichier named.ca consiste à définir l’emplacement des
serveurs de la racine.
• Généralement, les configurations de serveurs de noms possèdent
déjà un tel fichier.
15
20/03/2011
Fichiers de zone
• Fichiers de zone
• Les Fichiers de zone contiennent des informations sur un espace de nom
particulier et sont stockés dans le répertoire de travail named qui est par
défaut /var/named/.
• Chaque fichier de zone est nommé selon les données d'options de file
dans la déclaration zone,généralement d'une manière qui se réfère au
domaine en question (exp: informatique.fst.zone).
• Chaque fichier de zone peut contenir des:
– Directives: donnent au serveur de noms l'instruction d'effectuer une certaine
Fichiers de zone
• Directives des fichiers de zone
• Les directives sont identifiées par le symbole dollar ($) suivit du nom de
la directive,
• Elles apparaissent généralement en haut du fichier de zone,
• Les directives les plus couramment utilisées sont les suivantes :
– $INCLUDE: Configure named de façon à ce qu'il inclue un autre fichier de
zone dans ce fichier de zone à l'endroit où la directive apparaît. Ce faisant, il
est possible de stocker des configurations de zone supplémentaires à l'écart
du fichier de zone principal.
tâche ou d'appliquer des paramètres spéciaux à la zone.
– $ORIGIN : Attache le nom de domaine à des enregistrements non-qualifiés,
comme ceux qui spécifient seulement l'hôte et rien de plus.
Par exemple, un fichier de zone peut contenir la ligne suivante :
$ORIGIN informatique.fst.
Tous les noms utilisés dans les enregistrement de ressources qui ne se
terminent pas par un point (.) se verront ajouter informatique.fst.
– Enregistrements de ressources RR: définissent les paramètres de la
zone, assignant des identités aux hôtes individuels.
• NB:
– Toutes les directives et enregistrements de ressources doivent être spécifiées
sur des lignes individuelles.
– Des commentaires peuvent être placés dans les fichiers de zone après les
caractères points virgules ;
Fichier de zone directe
Fichiers de zone
$ORIGIN informatique.fst.
$TTL 86400
@
IN
SOA
• Directives des fichiers de zone (suite)
– $TTL : Règle la valeur par défaut Time to Live (TTL) pour la zone. C'est le
nombre, en secondes, donné aux serveurs de noms pour dire combien
de temps les enregistrements de ressources de la zone resteront valides.
– Lorsque vous décidez d'accroître cette valeur, les serveurs de noms
distants mettent en cache ces informations de zone pendant plus
longtemps.
Cela réduit le nombre de requêtes effectuées au sujet de cette zone,
mais rallonge aussi le temps nécessaire pour proliférer les changements
des enregistrements de ressources.
– Chaque enregistrement de ressources peut contenir sa propre valeur TTL,
qui remplace alors cette directive.
;serveur dns
@
IN
IN
dns1. informatique.fst
192.168.1.2
IN
IN
MX
MX
10
20
; nom de machine
dns1
server1
server2
IN
IN
IN
A
A
A
192.168.1.2
192.168.1.5
192.168.1.6
;alias
ftp
mail
mail2
www
IN
IN
IN
IN
CNAME
CNAME
CNAME
CNAME
server1
server1
server2
server2
mail.informatique.fst.
mail2.informatique.fst.
Fichiers de résolution de noms inverse
Fichiers de résolution de noms inverse
zone "1.168.192.in-addr.arpa" IN {
type master;
file "informatique.fst.rr.zone";
allow-update { none; };
};
NS
NS
; Enregistrements MX
• Enregistrements de ressources des fichiers de zone
• Les enregistrements de ressources représentent le premier composant
d'un fichier de zone.
• Il ressemble à un fichier de zone standard, sauf que les enregistrements
de ressources PTR servent à lier les adresses IP au nom d'un domaine
pleinement qualifié.
• Ce fichier de zone serait mis en service avec une déclaration zone dans
le fichier named.conf similaire à l'extrait suivant :
dns1.informatique.fst.
admin.informatique.fst. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
$ORIGIN 1.168.192.in-addr.arpa.
$TTL
3600
1.168.192.in-addr.arpa. IN SOA dns1.informatique.fst. admin.informatique.fst. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@
IN
NS
dns1.informatique.fst.
2
5
6
IN
IN
IN
PTR
PTR
PTR
dns1
serveur1
serveur2
16
20/03/2011
localhost, localhost.rev(0.0.127)
• Le serveur de noms a besoin d’autres fichiers de correspondance directe
et inverse(localhost, localhost.rev) pour le réseau loopback.
• Ce réseau est utilisé par un hôte pour communiquer avec lui-même.
• Le numéro de ce réseau est toujours 127.0.0 et l’adresse de l’hôte est
toujours 127.0.0.1.
0.0.127.in-addr.arpa. IN SOA dns1.informatique.fst. admin.informatique.fst (
0.0.127.in-addr.arpa. NS
1998120701 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
localhost.
• NB: L’omission de ces fichiers permettra au serveur de fonctionner mais la
Utilitaires DNS
• Outils pour vérifier l'opération de résolution
de nom d’un serveur :
–Nslookup,
–Dig,
–Host,
–Ping.
recherche de 127.0.0.1, échouera car le serveur racine ne peut réaliser la
correspondance 127.0.0.1 à l’hôte local.
17