Vous êtes sur la page 1sur 81

Bind Dns

RE52 Automne 2004

Plan
Introduction
Partie 1 : Composants DNS
Partie 2 : Mise en place dun serveur DNS
Partie 3 : Fonctions avances
Partie 4 : Les outils

Le principe des DNS


Schma de nommage hirarchique fond sur la notion
de domaine et une base de donne rpartie qui
implmente ce schma (RFC 1034 1035)
Le service DNS permet un hte qui connat le nom
dun autre hte du rseau dobtenir en sadressant un
serveur de noms ladresse IP de son homologue :

adresse IP nom FQDN (Fully Qualified Domain Name)

Le systme est mis en oeuvre par une base de donnes


distribue au niveau mondial, gr par l'interNIC et les
organismes dlgus :RIPE, NIC France (Network
Information Center), ...

Objectif de la fonction DNS


Le but premier est la cration d'un espace de noms
consquent utilisables pour rfrencer des ressources.

noms ne mentionne aucun des identificateurs rseau, adresses,


chemins, ou information similaire communment utiliss pour
l'implmentation technique
taille norme de la base de donnes et sa frquence de mise jour
suggre une maintenance distribue, avec cache local pour une
performance accrue
utilisation sur des rseaux de nature diffrente, et plusieurs familles
de protocoles
les transactions avec les serveurs de nom doivent tre indpendantes
du systme de communication utilis
Datagrammes
Circuit virtuel commut

Fonctionnement Gnral
1.

le logiciel client interroge un serveur de nom:

lutilisateur associe un nom de domaine une application ;

2.

lapplication cliente requiert la traduction du nom de


domaine auprs dun serveur de nom (DNS) : cette
opration sappelle la rsolution de nom

3.

le serveur de nom interroge dautres serveurs de nom


jusqu ce que lassociation nom de domaine / adresse IP
soit trouve

4.

le serveur de nom retourne ladresse IP au logiciel client :


le logiciel client contacte le serveur (telnetd) comme si
lutilisateur avait spcifi une adresse IP : telnet

Les correspondances Nom Adresse IP


Fichier /etc/hosts sous Linux

Fichier ASCII
Mise jour manuelle
Gestion manuelle des ressources non locales

NIS ( ou Yellow Pages )

Fichier de donnes
Crer partir du /etc/hosts du matre
Gestion manuelle des ressources non locales

Domain Name System (DNS)

Ensemble de fichiers ASCII


Organisation hirarchique et mondiale des ressources
Mmorisation des informations recueillies (cache)

Transfert de lhosts.txt
LARPANET des annes 80 est constitu dune
centaines d'ordinateurs relis en rseaux. Un unique
fichier hosts.txt rassemble les correspondances entre
nom d'hte et adresse IP.
Le fichier est stock sur le SRI-NIC (Stanford Research
Institute's Network Information Center)
Aprs chaque modification, des copies sont transfres
par ftp vers les ordinateurs du rseau
La bande passante consomme par la distribution d'une
remise jour de cette base par cette mthode est
proportionnelle au carr du nombre d'htes sur le rseau

Exemple : Correspondance statique de


noms d'htes
NET : 10.0.0.0 : ARPANET :
NET : 128.10.0.0 : PURDUE-CS-NET :
GATEWAY : 10.0.0.77, 18.10.04 :
MIT-GW.ARPA,
MIT-GATEWAY : PDP-11 :
MOS : IP/GW, EGP :

HOST : 26.0.0.73, 10.0.0.51


SRI-NIC.ARPA, SRI-NIC, NIC :
DEC-2060 : TOPS-20 :
TCP/TELNET, TCP/SMTP
TCP/TIME, TCP/FTP
TCP/ECHO, ICMP :

HOST : 10.2.0.11 : SU-TAC.ARPA,


SU-TAC : C/30 : TAC : TCP :m

Le hosts.txt

Inconvnients :

La taille du fichier hosts.txt augmente avec le nombre dhtes


La frquence des mises jours des tables devient proportionnelle au nombre de
machines
Systme centralis: problmes en cas de pannes
Espace plat collision rapide des noms
Estimation : la consommation de bande passante est proportionnelle au carr du nombre
dhtes

Evolution dInternet

Plan
Introduction

Partie 1 : Composants DNS


Partie 2 : Mise en place dun serveur DNS
Partie 3 : Fonctions avances
Partie 4 : Les outils

Les composants du DNS


Espace de noms de domaine et les enregistrements de
ressource

qui sont les spcifications d'un espace de noms structur en


arbre et des donnes associes ces noms

Les serveurs de noms :

des programmes serveurs qui dtiennent l'information sur la


structure arborescente et les informations de domaines

Les processus de rsolution, ou RESOLVEURS

sont des programmes qui extraient l'information des serveurs de


noms en rponse aux requtes clientes

1. L'espace Nom de Domaine


Un nom de domaine dfini un chemin dans un arbre
appel l'espace nom de domaine
Chaque noeud de l'arbre est identifi par un label
Chaque noeud et chaque feuille de l'arbre contient un
ensemble d'informations ; les requtes sont des tentatives
pour extraire un type spcifique d'information dans cet
ensemble.
Une requte cite le nom du domaine d'intrt et dcrit le
type d'information dsir quant aux ressources
concernes.
La racine est appele root
L'arbre possde une profondeur maximale de 127 niveaux

1. L'espace Nom de Domaine


Un nom de domaine est la squence de labels depuis un
nud de l'arbre, jusqu' la racine. Chaque label est spar
par un point
Deux noeuds frres ne doivent pas avoir le mme nom

1. L'espace Nom de Domaine


Un domaine est un sous arbre de l'espace de
nommage
Un domaine est constitu de noms de domaine et
rfrence d'autres domaines ou sous domaines
Exemple : Le domaine fr comprend le noeud fr et tous
les nuds contenus dans le sous arbre dont la racine
est fr
Un nom de domaine est un index dans la base DNS:

www.utbm.fr pointe vers une adresse IP


utbm.fr pointe vers des informations de routage de mail et
ventuellement des informations de sous domaines
fr pointe vers des informations structurelles de sous domaines

1. L'espace Nom de Domaine

Domaine racine
Le systme DNS impose peu de rgles sur les labels

< 63 caractres, non respect de la casse

Le 1er niveau (ou TLD (Top Level Domain)) de l'espace


DNS

6 domaines racines prdfinis l'origine (rfc 1032 Nov 87)


com : organisations commerciales
edu : organisations concernant l'ducation
gov : organisations gouvernementales
mil : organisations militaires
net : organisations gnrique ou en rapport directe avec les rseaux
org : organisations ne faisant pas parties des autres

arpa : domaine temporaire


fr, uk, us, de, be, ca, ... : organisations nationales

Le 1er et 2eme niveau (Second Level Domain) marque


une hirarchie de valeurs

Reprsentation
A l'inverse de l'adressage IP, la partie la plus significative se
situe gauche
Chaque nom de domaine est reprsent, en interne, de la faon
suivante :

sun2. ethernet1. utbm.fr


domaine franais (.fr)
domaine de lorganisation Utbm
sous-domaine Utbm

Comme un nom de domaine se termine toujours sur la racine de


machine
sun2
label , le dernier
champ
estdu
0 domaine ethernet1. utbm.fr

La Dlgation de domaine
Le systme DNS est entirement bas sur la
dcentralisation de sa propre administration
Le systme sous jacent est la dlgation de
domaine
A tout domaine est associ une responsabilit
administrative
Une organisation responsable d'un domaine
peut
dcouper le domaine en sous domaine
dlguer des sous domaines d'autres
organisations
Le domaine parent contient un pointeur vers le
sous domaine dlgu

La Dlgation
Une organisation responsable dun domaine peut

dcouper le domaine en sous domaines


dlguer les sous domaines dautres organisations :
qui deviennent leur tour responsables du (des) sous domaine(s)
qui leurs sont dlgu(s)
peuvent, leur tour, dlguer des sous domaines des sous
domaines quelles grent

Le domaine parent contient alors seulement un pointeur


vers le sous domaine dlgu;
Exemple :

utbm.fr est dlgu lorganisation utbm


Utbm gre donc les donnes propres ce domaine.
utbm.fr (en thorie seulement) pourrait tre gr par lorganisation
responsable du domaine .fr (NIC France) qui grerait alors les donnes
de utbm.fr

2. Les serveurs de nom


Programmes serveurs qui dtiennent l'information sur la
structure arborescente et les informations de domaines.
Ils enregistrent les donnes propres une partie de
l'espace nom de domaine dans une zone distribue
Le serveur de nom

a autorit administrative sur cette zone

peut avoir autorit sur plusieurs zones


Une zone contient les informations d'un domaine sauf
celles qui sont dlgues
Spcialiss dans la recherche de donnes lintrieur de
lespace de nommage rsolution de noms

Serveurs de noms et zones

Un serveur de nom charge les


informations dune zone et non pas
celles dun domaine qui contient plus
dinformations que ncessaire

Dcoupage de noms
La base de donnes de domaines est divises selon deux
mthodes : en classes, et par "dcoupage" de l'espace des noms
de domaines.
Les donnes dcrivant une zone se divisent en quatre parties
majeures :

Les donnes autorises pour tous les noeuds dans la zone.


Des donnes dfinissant le noeud de plus haut niveau de la zone
(peuvent tre considres comme faisant part des donnes autorises).
Des donnes dcrivant les sous zones dlgues, c'est--dire, les
points de coupure dans les tages infrieurs de la zone.
Les donnes permettant l'accs aux serveurs de noms traitant les souszones dlgues (appeles souvent "glue data").

Toutes ces donnes sont exprimes sous forme de RR, et donc une
zone peut tre entirement dcrite comme un ensemble de RR

Type de serveurs de noms


Serveur matre de noms primaire

maintient la base de donnes de la seule zone dont il


a l'autorit administrative
Acquiert les donnes de la zone partir dun fichier
local de donnes drivant la zone

Serveur matre de noms secondaire

obtient les donnes de la zone via un serveur de nom


qui a l'autorit administrative
interrogation rgulire du serveur de noms primaire

La redondance permet de palier d'ventuelles


dfaillances d'un serveur
Un serveur de noms peut tre primaire sur une
(des) zone(s) et secondaire pour d'autres

3. Processus de rsolution : le rsolveur


Les resolvers sont les processus clients qui contactent
les serveurs de nom

Interroge les serveurs de noms


Interprte les rponses
Renvoi de linformation au programme demandeur

Pour rsoudre un nom en une adresse IP, une


application invoque une procdure de bibliothque
appele Rsolveur avec la fonction gethostbyname
recevant un nom de serveur rsoudre Envoi dun
paquet UDP contenant l@ IP
Le serveur de nom interroge galement dautres
serveurs de nom, lorsquil na pas autorit sur la zone
requise (fonctionnement itratif ou rcursif)
Si le serveur de nom est en dehors du domaine requis, il
peut tre amen contacter un serveur racine ( ne pas
confondre avec un domaine racine)

Processus de rsolution : le rsolveur

Rsolution des noms en adresse


Elle seffectue de manire descendante, du serveur Racine vers un
serveur dans les feuilles de larborescence.

Mode rcursif

le serveur prend son tour le rle de rsolveur et ne peut


retourner qu'un message d'erreur ou une rponse valide, mais
jamais de rfrence. Ce service est optionnel dans un serveur de
noms, ce dernier pouvant de plus choisir de restreindre les
possibilits de clients grant le mode rcursif.
Utile dans plusieurs situations :
une implmentation simplifie d'un rsolveur qui ne sait exploiter
d'autres rponses qu'une rponse directe la question.
une requte qui doit passer travers d'autres protocoles ou autres
"frontires" et doit pouvoir tre envoye un serveur jouant le rle
d'intermdiaire.
un rseau dans lequel intervient une politique de cache commun
plutt qu'un cache individuel par client.

Rsolution des noms en adresse


Mode non rcursif :

Rponse sur la base de ses informations locales :

Rpond du mieux possible avec ce quil sait dj


La rponse contient une erreur, la rponse demande, ou donne
la rfrence d'un autre serveur plus "susceptible" de disposer de
l'information demande

Tous les serveurs de noms se doivent d'implmenter le


mode non-rcursif.
Utilisation de la mtrique du temps RTT pour choisir le
serveur racine le plus appropri

Rsolution des noms en adresse


Mode Recursif

Mode Itratif

Rsolution inverse
Comment obtenir le nom de domaine partir de l'adresse IP ?

Il faut faire une recherche exhaustive


car les serveurs DNS sont organiss
pour la rsolution des noms
Solution : utiliser les adresses IP
comme des noms de domaines
particuliers
Chaque adresse IP est
considre comme faisant partie
du domaine in-addr.arpa
les noms des noeuds
correspondent aux octets de
l'adresse IP, en ordre inverse
Exemple : l'IP 192.158.41.55
donne le domaine
55.41.158.192.in-addr.arpa

Les rgles 4me niveau


correspond un NS connaissant
le nom de domaine associ
cette adresse IP
requtes sont de type PTR
("pointeur").

Dure de vie
Les serveurs ne peuvent garder ternellement trace
des donnes dans leur mmoire cache
Exploitation dun Time To Live (TTL) pour les donnes
de chaque zone
Aprs coulement abandon des donnes en mmoire

Serveurs racine
Les serveurs racine connaissent les serveurs de
nom ayant autorit sur tous les domaines racine
Les serveurs racine connaissent au moins les
serveurs de noms pouvant rsoudre le premier
niveau (.com, .edu, .fr, etc.)
Pierre angulaire du systme DNS : si les
serveurs racine sont inoperationnels ==> plus de
communication sur lInternet
actuellement jusqu 14 parpills sur la plante
chaque serveur racine reoit environ 100000
requtes / heure

Introduction
Partie 1 : Composants DNS

Partie 2 : Mise en place dun serveur DNS

Mise en place dun serveur DNS : Bind


LISC (Internet Software Consortium) dveloppe et
maintient des codes source BIND, tlchargeables
gratuitement ftp://ftp.isc.org
Version de Bind 8.2.3 et Bind 9.1.3 sous Unix

Elments de scurisation : Liste daccs pour les requtes et les


transferts de zone
Maj dynamiques (Dynamic update) : autorise des agents
mettre jour les donnes de la zone par lenvoi de message
Notification de zone (Notify) : indique que le numro de srie a
t modifi
Transfert incrmental de la zone : permet un serveur esclave
de ne demander que les changements dans la zone

Mise en place dun serveur DNS


Les donnes dun serveur DNS sont enregistres dans
plusieurs fichiers (fichiers de donnes de la zone)

Le fichier de zone est le fichier qui stocke la correspondance


Nom/Adresses IP(et vice versa) des machines appartenant au
rseau de la zone correspondante

Un fichier pour la rsolution directe (forward mapping)


Un fichier pour la rsolution inverse (reverse mapping)
Le nom de chaque fichier est stock dans le fichier de
configuration /etc/named.conf

Enregistrements de ressources
On associe chaque domaine un ensemble
denregistrements de ressources (ressources records ou
RR ) qui se compose de :

Owner : Nom_de_domaine qui dsigne le domaine auquel


sapplique lenregistrement (cl de recherche principale pour
satisfaire les requtes) :

TTL : Dure_de_Vie : indique la stabilit de lenregistrement

Classe : identifie le protocole ; IN pour internet, CH chaotique

Type : indique le type denregistrement dont il sagit, encode


sur16 bits spcifiant le type de ressource dcrit par cet
enregistrement.

Structures des fichiers d'une zone


Chaque information est dfinie par un type
d'enregistrement

SOA : Serveur principal dune zone : informations sur la partie de


l'arborescence gre par le serveur,
NS : liste des serveurs de nom pour ce domaine
A : correspondance nom adresse IP (@ IP dun hte)
A6 : correspondance nom adresse Ipv6
AAAA : correspondance nom adresse Ipv6 (obsolte)
PTR : correspondance adresse IP nom
CNAME : alias ou nom canonique
TXT : texte
HINFO : description de la machine (UC et SE en ASCII)
MX : serveur de mail pour le domaine relais de messagerie
RR : permettent d'tendre les types d'informations.

Le type d'enregistrement SOA ( Start Of Authority )


Cest le premier enregistrement dans le fichier de base de
donnes de zone
Permet de dfinir :
Sur quelle zone le serveur a autorit
Le nom de la machine serveur matre primaire de la zone
Quelle est l'adresse de courrier de l'administrateur du
domaine
Puis des informations destinations des serveurs
esclaves
Dans l'exemple suivant :

la zone est ens.utbm.fr


Le nom de la machine serveur matre est dnsserver.ens.utbm.fr

Exemple
ens.utbm.fr. IN SOA dnsserver.ens.utbm.fr. root.utbm.fr. (
2004011201 ; serial // incrment par ladministrateur chaque
modification. Permet de dtecter si un rechargement est
ncessaire
86400 ; rafrachissement (1 jour)
21600 ; nouvel essai (6 h)
3600000 ; (5 weeks 6 days 16 hours) // combien de temps les
autres serveurs sont autoriss garder une copie de ces
donnes
3600 ; TTL minimum (1h)
)

Le type d'enregistrement NS
spcifie les serveurs de nom ayant autorit sur ce
domaine
Il est possible de dfinir plusieurs NS pour un mme
domaine
Ex :
ens.utbm.fr. IN
ens.utbm.fr. IN

NS
NS

dnsserver.ens.utbm.fr
dnsserver_Bis.ens.utbm.fr

Enregistrement dadresses et dalias


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Enregistrement Ptr
Cest linverse de lenregistrement A. Les PTR qui se
trouvent dans la zone de recherche inverse permettent
de mettre en correspondance des adresses IP aux noms
dhtes.

Recherche des serveurs racines


ftp.rs.internic.net fichier domain/named.root

Le fichier de configuration
Les paramtres dinitialisation
du daemon named du
systme de noms de domaine
du package BIND sont dcrits
dans /etc/named.conf.
le rpertoire /var/named/ : le
rpertoire de travail de named
qui stocke les fichiers de
zone, de statistiques et les
fichiers de cache.

Fichier configuration de bind

Dmarrage dun serveur primaire


Identit Root car utilisation dun port rserv
fichier de configuration /etc/named.conf
Excution de #/usr/sbin/in.named
Le dmarrage du serveur secondaire ne requiert les
donnes que par transfert de zone
DB.CACHE

DB.127.0.0

DB.serveur.maitre

Le DNS et le courrier lectronique


Fichier HOSTS.TXT rfrence une adresse IP
Propose de dsigner des htes de secours
Permet de reprsenter des destinations de courrier par
des noms spcifiques relatifs leurs zones
Une adresse de messagerie peut reprsenter plusieurs
serveurs de messagerie
La mise en oeuvre des caractristiques tendues de
routage se fait par lenregistrement MX

Remplace MD (Mail Destination) @ finale


Remplace MF (Mail Forwarder) @ alternative

Le type d'enregistrement MX
MX = Mail eXchanger traite le message ou le passe un
agent de transport (X400, Exchange)
Permet ladressage Email sur la base du nom de
domaine plutt que sur ladresse du (des) serveur(s) de
mail : toto@ens.utbm.fr plutt que toto@mail.utbm.fr
(nom du serveur de mail : mail )
Permet lmetteur dignorer le nom de la machine
serveur de mail
Permet le dplacement du serveur de mail vers une
autre machine
Permet la gestion de plusieurs serveurs de mail avec
priorit dans lordre de consultation des serveurs
Lenregistrement MX est consult par les mailer (client
SMTP)
Tient compte des priorits

Le type d'enregistrement MX
MX reprsente un hte appel changeur de message
MX contient une valeur de prfrence qui indique la priorit de
lchangeur
Lensemble des valeurs de prfrence de tous les changeurs pour
une destination donn indique lordre dans lequel un routeur doit
utiliser les changeurs
Ex

utbm.com IN MX 0 ens.utbm.fr
utbm.com IN MX 10 rech.utbm.fr
utbm.com IN MX 10 adm.utbm.fr

Critres :

Disponibilit
Dimension
Connectivit
Gestion

Donnes caches : les serveurs racines


Utiliser un serveur de nom
machine elle-mme serveur de nom : 127.0.0.1
machine non serveur de nom : spcifier un ou plusieurs
serveur de nom : adresses IP obligatoirement.
ventuellement son domaine.
sous UNIX : fichier /etc/resolv
sous NT, W95 : administration TCP/IP
Administrer un serveur de nom
plateformes UNIX, NT
mmoire importante : mini 16/32 MB pour le service.
impratif : ne pas swapper
oprationnelle 24/24
laisser passer le port 53 sur UDP et TCP
Debugging : Nslookup

Donnes caches : les serveurs racines


;
; Cache file:
.
IN
NS
A.ROOT-SERVERS.NET. IN
.
IN
NS
B.ROOT-SERVERS.NET. IN
.
IN
NS
C.ROOT-SERVERS.NET. IN
.
IN
NS
D.ROOT-SERVERS.NET. IN
.
IN
NS
E.ROOT-SERVERS.NET. IN
.
IN
NS
F.ROOT-SERVERS.NET. IN
.
IN
NS
G.ROOT-SERVERS.NET. IN
.
IN
NS
H.ROOT-SERVERS.NET. IN
.
IN
NS
I.ROOT-SERVERS.NET. IN

A.ROOT-SERVERS.NET.
A
198.41.0.4
B.ROOT-SERVERS.NET.
A
128.9.0.107
C.ROOT-SERVERS.NET.
A
192.33.4.12
D.ROOT-SERVERS.NET.
A
128.8.10.90
E.ROOT-SERVERS.NET.
A
192.203.230.10
F.ROOT-SERVERS.NET.
A
39.13.229.241
G.ROOT-SERVERS.NET.
A
192.112.36.4
H.ROOT-SERVERS.NET.
A
128.63.2.53
I.ROOT-SERVERS.NET.
A
192.36.148.17

Les Requtes
Transportes par UDP ou sur via des connexions TCP.
La rponse du serveur de nom peut soit rpondre la question
pose par la requte, rediriger le requrant vers un autre serveur de
noms, ou signaler une condition d'erreur.
Les requtes et rponses DNS sont transportes dans un message
de format standardis. Le format de message dfinit une en-tte
contenant un certain nombre de champs fixes toujours prsents, et
quatre sections pour transporter les paramtres et les RR.
Les quatre sections sont :

Question contient le nom de la requte et ses autres paramtres.


Rponse contient les RR qui rpondent directement la requte.
Autorisation contient les RR dcrivant d'autres serveurs "autoriss".
Peut aussi contenir un RR SOA contenant les donnes d'autorisation
dans la section rponse.
Additionnel contient les RR qui peuvent aider exploiter les RR
contenus dans les autres sections.

Les formats
UDP :

Les datagrammes sont limits 512 octets (valeur reprsentant


les donnes sans l'entte Udp et Ip). Les datagrammes plus
long doivent tre tronqu l'aide du champ Tc.
L'utilisation d'Udp n'est pas recommand pour les transfert de
zone, mais uniquement pour les requtes standards

TCP :

Le port serveur utilis pour l'envoi des datagrammes en Tcp est


53. Le datagramme inclus alors un champ de deux octets
nomm "longueur", qui permet de spcifier la longueur total des
donnes indpendamment de la fragmentation. La longueur est
calcul sans les 2 octets de ce mme champ.

Format : Entte
Tc :message tronqu.
Rd : demande de rcursivit
Rcode : demande le type de rponse 0 Pas d'erreur
1 - Erreur de format dans la requte
2 - Problme sur serveur
3 - Le nom n'existe pas
4 - Non implment
5 - Refus

id : Cod sur 16 bits, doit tre recopi lors de la


rponse permettant l'application de dpart de
pouvoir identifier le datagramme de retour

Qr : Sur un 1 bit, ce champ permet d'indiquer s'il


s'agit d'une requte (0) ou d'une rponse (1).

Opcode :
0 - Requte standard (Query)
1 - Requte inverse (Iquery)
2 - Status d'une requte serveur

Qdcount spcifie le nombre dentre


dans la section question

Ancount Rponse
Nscount Authorit
Arcount Additionnel

Format : Ressource Record

Donnes : identifie la ressource


A : Pour la classe IN, une adresse IP sur
32 bits.
Cname : un nom de domaine.
Mx : une valeur de prfrence sur 16 bits
(la plus basse possible) suivie d'un nom
d'hte souhaitant servir d'changeur de
courrier pour le domaine de l'owner.
Ptr : Une adresse IP sous forme d'un nom
Ns : Un nom d'hte.

Nom:
Nom Nom du domaine o se trouve le RR. Ce
champ est implicite lorsqu'un RR est en dessous
d'un autre, auquel cas le champ owner est le mme
que celui de la ligne prcdente.

Type : spcifie quel type de donne sont utiliss


dans le RR.

Classe: identifiant une famille de protocoles ou


une instance d'un protocole

Soa : Plusieurs champs

Requtes et Rponse Serveurs de


noms

La requte contient des champs QTYPE, QCLASS, et


QNAME, qui dcrivent le(s) type(s) et la ou les classes
de l'information souhaite, et quel nom de domaine cette
information concerne.
Mode non rcursif :

Rponse sur la base de ses informations locales :


La rponse contient une erreur, la rponse demande, ou donne la
rfrence d'un autre serveur plus "susceptible" de disposer de
l'information demande

Tous les serveurs de noms se doivent d'implmenter le


mode non-rcursif.

Format : Entte
Tc :message tronqu.
Rd : demande de rcursivit
Rcode : demande le type de rponse 0 Pas d'erreur
1 - Erreur de format dans la requte
2 - Problme sur serveur
3 - Le nom n'existe pas
4 - Non implment
5 - Refus

id : Cod sur 16 bits, doit tre recopi lors de la


rponse permettant l'application de dpart de
pouvoir identifier le datagramme de retour

Qr : Sur un 1 bit, ce champ permet d'indiquer s'il


s'agit d'une requte (0) ou d'une rponse (1).

Opcode :
0 - Requte standard (Query)
1 - Requte inverse (Iquery)
2 - Status d'une requte serveur

Qdcount spcifie le nombre dentre


dans la section question

Ancount Rponse
Nscount Authorit
Arcount Additionnel

Format : Ressource Record

Donnes : identifie la ressource


A : Pour la classe IN, une adresse IP sur
32 bits.
Cname : un nom de domaine.
Mx : une valeur de prfrence sur 16 bits
(la plus basse possible) suivie d'un nom
d'hte souhaitant servir d'changeur de
courrier pour le domaine de l'owner.
Ptr : Une adresse IP sous forme d'un nom
Ns : Un nom d'hte.

Nom:
Nom Nom du domaine o se trouve le RR. Ce
champ est implicite lorsqu'un RR est en dessous
d'un autre, auquel cas le champ owner est le mme
que celui de la ligne prcdente.

Type : spcifie quel type de donne sont utiliss


dans le RR.

Classe: identifiant une famille de protocoles ou


une instance d'un protocole

Soa : Plusieurs champs

Requtes et Rponse Serveurs de


noms

La requte contient des champs QTYPE, QCLASS, et


QNAME, qui dcrivent le(s) type(s) et la ou les classes
de l'information souhaite, et quel nom de domaine cette
information concerne.
Mode non rcursif :

Rponse sur la base de ses informations locales :


La rponse contient une erreur, la rponse demande, ou donne la
rfrence d'un autre serveur plus "susceptible" de disposer de
l'information demande

Tous les serveurs de noms se doivent d'implmenter le


mode non-rcursif.

Les Requtes
Exemple de requte o l'on
souhaite connatre le nom du
serveur de courrier s'occupant
de frameip.com :

Voici la rponse

Les Requtes standards


contient un nom de domaine cible (QNAME), un type de
requte (QTYPE), et une classe de requte (QCLASS) et
recherche les RR correspondants.
Le champ QTYPE peut contenir :

<tout type> demande la correspondance sur ce type. (ex., A, PTR).


AXFR QTYPE spcial pour transfert de zone.
MAILB demande la correspondance pour toutes les RR de
botes aux lettres (ex. MB et MG).
* demande la correspondance sur tous les types de RR.

le champ QCLASS peut contenir :

<toute classe>demande la correspondance sur cette classe


uniquement (e., IN, CH).
* demande la correspondance sur toutes les classes de RR.

Requte standard : Exemple


un agent de courrier tentant d'envoyer un message dans la bote
aux lettres toto@Utbm.fr peut demander son rsolveur des
informations sur le serveur de courrier de Utbm.fr, constituant pour
cela la requte QNAME=Utbm.fr, QTYPE=MX, QCLASS=IN.
La section rponse renvoye serait dans ce cas :
Utbm.fr.

MX
MX

10 VENERA.Utbm.fr.
10 VAXA.Utbm.fr.

et la section additionnelle :
VAXA.Utbm.fr.
A
10.2.0.27
A
128.9.0.33
VENERA.Utbm.fr A
10.1.0.52
A
128.9.0.32

Requte Inverse
Une requte Dns inverse a la particularit d'avoir le champ Question
vide, et de contenir une entre dans le champ Answer. Pour que le
serveur Dns comprenne le sens de la requte, le champ Opcode des
en-ttes du message Dns doit tre la valeur Iquery

Pour rpondre aux requtes inverses en vitant des recherches


exhaustives dans tous les domaines, un domaine spcial appel inaddr.arpa a t cr

Plan
Introduction
Partie 1 : Composants DNS
Partie 2 : Mise en place dun serveur DNS

Partie 3 : Fonctions avances


Partie 4 : Les outils

Fonctions avances des DNS : ACL


Permet de contrler les accs la DNS
Directive acl dans le fichier named.conf
acl "nom_acl" { liste d'adresses; };
nom_acl revient alors la liste explicite d'adresses
4 listes d'adresses sont prdfinies :
any : toutes les adresses IP
none : aucune adresses IP

localhost : chacune des adresses IP de la machine locale


localnets : obtenu en combinant les adresses IP des
cartes rseaux de la machine courante et les masques
rseaux correspondants

Fonctions avances : Mise jour dynamique


DHCP peut attribuer des IP automatiquement
Quel nom utilis pour communiquer avec ces machines ?
Les versions 8 et 9 de Bind permettent des updater de
faire des mises jour dynamiques sur le serveur DNS
Possibilit d'ajouter ou de supprimer
Des enregistrements
Des enregistrements de ressources de mme nom,
classe ou type
Tous les enregistrements associs un nom

Fonctions avances : Mise jour dynamique


Incrmentation automatique du numro de srie
chaque mise jour
Permet de mettre jour les serveurs esclaves
Mais si un transfert de zone est trop long et les mises
jour trop frquentes ?
Incrmentation a lieu au bout de 5 minutes ou de 100
mises jour, en fonction de la premire des deux limites
atteinte

Fonctions avances : Mise jour dynamique


La mise jour des fichiers de zone chaque
fois qu'une mise jour est faite peut tre une
opration coteuse
Le temps de modifier toutes les donnes peut
tre long
Utilisation d'un journal
Toutes les modifications sont faites dans un
fichier de journalisation
Modification est immdiate dans la zone en
mmoire
A intervalle de temps rgulier (environ 1h), les
modifications seront crites sur le disque

Le fichier de journalisation
Avec Bind 8
Construit en ajoutant .log au nom du fichier de zone
Supprimer toutes les heures (si aucune mise jour
n'a lieu)
Avec Bind 9
C'est le fichier de zone termin par .jnl
Ne disparat jamais
Si le fichier journal existe au dmarrage, ses donnes
sont incorpors au fichier de zone

Contrle d'accs pour les mises jour dynamique


Par dfaut, la mise jour dynamique sur un serveur
matre est refuse
Il faut ajouter une structure allowupdate dans la zone
concerne
Ex: allow-update { liste d'adresses IP; };
A partir de la version 9.1.0, les serveurs esclaves font
suivre les mises jour au serveur matre
Le serveur matre doit donc accepter toutes les mises
jour venant des serveurs esclaves
Les mises jour qui proviennent de n'importe quelle
source peut donc tre valide

Mise jour authentifie ou non


Protection par IP n'est pas sre
Spcifier les MAJ qui peuvent tre retransmises par
ladresse de lexpditeur :
Allow-update-forwarding
Utilisation de TSIG : Transaction SIGnature
Mise jour signe par le demandeur initial
Avec BIND 8, dans la dfinition d'une zone
allow-update { key dhcp-server.toto.fr.; };
Pas la possibilit de faire des restrictions sur les Ips
Avec BIND 9
Mcanisme plus fin
Utilisation de la sous directive de zone : update-policy

Le Forwarding (retransmission)
Certains serveurs peuvent s'occuper de transmettre
toutes les requtes DNS vers l'extrieur (firewall)
Ces machines s'appellent des forwarders
Objectif : transmettent toutes les requtes DNS
d'autres serveurs
Peuvent possder une importante mmoire cache de
requte DNS
Si un serveur utilise un forwarder, son fonctionnement
diffre

Connaissance de la rponse la requte : il rpond


Sinon envoie de la requte au forwarder et attente avant de
reprendre un fonctionnement normal
Requtes rcursives sont envoyes au forwarder, dans tous les
autres cas, requtes itratives

Les points de vue


Dans Bind 9, introduction des points de vue
view "internal" { };
Permet de ne faire voire que certaines informations, en
fonction du client
Structure view, qu'aprs la structure options
La sous structure match clients dfinis les clients
concerns par un point de vue
Dfinition d'une vue pour les machines 192.168.XXX
view "internal" {
match-clients 192.168.XXX;
zone "toto.com" { ... };
};

Configuration du dmon named


*named.conf : ce fichier indique les fonctions de named
et les noms des fichiers de configuration
*named.root : ce fichier contient les adresses IP des
serveurs du domaine racine
*named.local : permet de rsoudre ladresse de boucle
locale
named.hosts : qualifi de zone file, contient les noms
DNS et les adresses IP correspondantes des htes dun
domaine
named.rev : qualifi de zone file, contient les donnes
inverses et permet de connatre le nom dune machine
partir de son adresse IP

Plan
Introduction
Partie 1 : Composants DNS
Partie 2 : Mise en place dun serveur DNS
Partie 3 : Fonctions avances

Partie 4 : Les outils

Les outils
Nslookup permet de gnrer des requtes

Ne dialogue quavec un seul serveur la fois


Utilise chacune des directives Nameserver du fichier .conf
Essai des serveurs jusqu abandon de la requte
En cas de succs aucun autre tentative

Les temps dattente corresponde un resolveur interrogeant un seul serveur


Effectue des transferts de zone
Ne teste pas le numro de srie de SOA

Nslookup Exemple
Id identifie une rponse
Rcode : code de rponse
Header flag : requte ou
rponse

Auth answer : autorit

Le NSlookup
/*
* exemple de programme
* quivalent nslookup */
#include <stdio.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
void
erreur( void )
{
switch ( h_errno ) {
case HOST_NOT_FOUND :
puts("L'hte indiqu est inconnu.");break;
case NO_ADDRESS :
puts("Le nom est valide mais ne possde
pas d'adresse IP.");
break;
case NO_RECOVERY :
puts("Une erreur fatale du serveur de
noms est apparue.");
break;
case TRY_AGAIN : puts("Try again"); }
exit(1);

int
main(int argc, char *argv[])
{
struct hostent *infos;
struct in_addr addr;
unsigned long *tempo;
if (inet_aton(argv[1], &addr) != 0 ) {
infos = gethostbyaddr(
(char *)( &(addr.s_addr)),sizeof(addr.s_addr),AF_INET);
if ( ! infos )
erreur();
printf("\nnom:%s",infos -> h_name);
} else {
infos = gethostbyname(argv[1]);
if ( ! infos )
erreur();
tempo = (unsigned long int *)(infos -> h_addr);
addr.s_addr = *tempo;
printf("\nip:%s",inet_ntoa(addr));
}
printf("\nbye...\n");
}

La scurit
Deux familles de
pare-feux pour
utilisation avec DNS

Filtrage de paquets
@dresse +port
Configuration explicite

Passerelles
applicatives de type
TCP

La scurit : Forwarders

Vous aimerez peut-être aussi