Вы находитесь на странице: 1из 19

SERVEUR DNS

Objectif
Installer et configurer le serveur DNS bind9 et modifier soit le fichier de
configuration dhcp, soit le fichier resolv.conf du serveur ou du client ;

Dclarer un alias pour chacun des services fournis par le serveur ;

Rediriger le serveur DNS sur celui du lyce afin de lui permettre de


rsoudre les noms de l'ensemble des machines du lyce (et indirectement de la
totalit des machines d'Internet) ;

Intgrer un nouveau rseau et de nouvelles machines dans les zones directe et


inverses du DNS.

Etape 1 : Mise en place et vrifications


Prparation du matriel et du cblage, physiques et virtuels
Machine hte

Raccorder eth0 au rseau du lyce via le commutateur physique ;

Dsactiver eth1 qui ne sera pas utilis pour ce TP ;

Configurer eth0 en dhcp ;

Vrifier que vous recevez une adresse IP et que vous avez accs au rseau
du lyce.

Machines virtuelles
Vous aurez besoin de deux serveurs debian que vous dupliquerez
partir du serveur modle et configurerez de la faon suivante :

srv-dns :

Nom : srv-dns

2 interfaces rseau :

eth0 : lie eth0 de la machine physique, configure en dhcp ;

eth1 : lie au rseau interne Reseau-1 , configure en static


avec l'adresse 192.168.124.1/24.

client-dns

Nom : client-dns

1 interface rseau :

eth0 : lie au rseau interne Reseau-1 , configure en static


avec l'adresse 192.168.124.20/24.

Sur Serveur-Dns

Vrifier par :
ping unserveurdulyce
que le fonctionnement vers le rseau du lyce est correct

Vrifier par :
ping 192.168.124.20
que les configurations et le lien entre vos deux machines sont
corrects.

tape 2 : Installation et configuration


Installation du serveur DNS

Installer le paquet bind9 ;


Visualisez le contenu du rpertoire de configuration de bind9 :
/etc/bind/ ;
Il y a plusieurs fichiers dont les quatre fichiers de configuration du service :

named.conf qu'il ne faut jamais modifier. Il dfinit le nom des trois fichiers
contenant la configuration

named.conf.options dans lequel on configurera les options ;

named.conf.local dans lequel on dclarera les zones locales ;

named.conf.default-zones qui contient la dclaration des zones pour


atteindre la machine locale (localhost 127.0.0.1) et les adresses des 13
serveurs root ;
Il contient galement les fichiers de configuration des default-zones
dclares dans le fichier named.conf.local-zones. Ces fichiers de zone sont de
la forme db.xxxx .

On ajoutera au cours de ce TP un fichier de zone directe et des fichiers


de zone inverse dans lesquels seront dclares les nom, IP et alias des
machines de l'entreprise.

Configuration du service DNS sur Serveur DNS .


Pour raliser ce TP vous allez imaginer que vous tes dans l'entreprise
albert . Cette entreprise comporte deux rseaux (192.168.124.0/24 et
172.20.0.0/16) et dans chacun de ces deux rseaux se trouvent, en plus de
votre serveur dns et du client dns plusieurs autres machines.
Au niveau DNS cette entreprise comporte donc une zone directe, son domaine
dns, nomm albert.local qui contient l'ensemble des machines l'usage
interne de l'entreprise et deux zones inverses (une pour chacun des rseaux).

DFINIR LA ZONE DIRECTE

Dans un premier temps nous n'allons configurer que la zone directe de


l'entreprise et la zone inverse du rseau 192.168.124.0/24.

ditez le fichier de dclaration des zones locales :


#nano /etc/bind/named.conf.local

Ajoutez-y les lignes suivantes :


zone "albert.local" {
type master;
file "/etc/bind/albert.directe";
};
zone "124.168.192.in-addr.arpa" {
type master;
file "/etc/bind/reseau-albert-1.inverse";
};
On dfini ainsi deux zones locales :

Une zone directe nomme albert.local qui fera autorit (SOA) lors
de la rsolution directe du nom d'une machine du domaine albert.local et
fournira son adresse IP. Notez que le nom de la zone n'est pas libre,
c'est obligatoirement le nom du domaine o on veut rsoudre les
noms.

Une zone inverse 124.168.192.in-addr.arpa qui fera autorit lors


de la rsolution des adresses IP commenant par 192.168.124 et fournira le
nom de la machine possdant cette adresse. Notez que le nom de la zone
n'est pas libre, c'est obligatoirement les octets formant la partie
rseau des adresse IP, suivi de in-addr.arpa .

Pour chacune de ces zones on indique le type de zone (master) et le nom


du fichier texte qui contiendra les paramtres de cette zone et la base de
donnes. Notez que le nom du fichier est libre et qu'on aurait aussi
bien pu l'appeler dugenou.toto . La seule contrainte est qu'ensuite
vous remplissiez ce fichier.

Notez bien la faon d'crire le nom de la zone inverse enrenversant les


octets de la partie rseau des adresse IP.

Enregistrez ce fichier.
ditez un nouveau fichier nomm /etc/bind/albert.directe puisque dans
le fichier prcdent il a t nomm ainsi.
Nota :

Dans les fichiers de configuration DNS, les commentaires sont


prcds par un ; et nom par un # comme dans les autres fichiers.
Les commentaires ne sont bien sr pas indispensables, mais souhaitables
dans un but de documentation.

Dans ces fichiers il faut faire trs attention la ponctuation par des
points. Dans tous les noms de machines, le point indique que le nom de
domaine est dj indiqu derrire le nom de la machine. Si ce point est
absent le systme va de lui mme ajouter le nom du domaine au nom de la
machine.
La mauvaise gestion des points est la principale cause de dysfonctionnement
de vos fichiers de configuration.

Exemple :

serveur sans le point indique serveur.albert.local

serveur.albert.local. La prsence du point DE FIN indique que le


domaine est inscrit dans la chane de caractres.
AVEC POINT : PAS D'AJOUT DU DOMAINE LA FIN
SANS POINT : AJOUT AUTOMATIQUE DU DOMAINE A LA FIN

localhost. indique que le nom du localhost contient dj le nom de la


zone.

serveur.albert.local sans le point de fin serait complt


automatiquement par le nom du domaine, soit
serveur.albert.local.alber.local ce qui bien sr serait faux.
o

Ce fichier doit contenir le contenu suivant :


; Dfinition de la zone directe albert.local
; Paramtres de configuration de la zone

; Dure de vie en secondes des enregistrements dans le cache DNS.


$TTL 604800
;
; Cette machine (localhost) fait autorit (SOA) sur cette
; zone (@ = nom de la zone dfinie). Le gestionnaire de
; la zone est le root de la machine locale.
@ IN SOA localhost. root.localhost. (
1 ; Numro de version de ce fichier.
604800 ; Paramtres ncessaires la
86400 ; rplication entre les serveurs
2419200 ; DNS matre et esclaves. Inutiles
604800 ) ; ici mais obligatoires.
;
; Ce serveur (localhost) est le serveur de nom (NS) du domaine dfini (@)
@ IN NS localhost.
;
; Dbut des donnes de la base de donnes DNS. Remarquez le format :
; Nom machine IN A Adresse IP de la machine.
srv-dns IN A 192.168.124.1
client-dns IN A 192.168.124.20
autre-serveur IN A 192.168.124.5
; Etc. On indique chaque machine sous cette forme
; raison d'une ligne par machine. Chaque machine ne doit
; apparatre qu'une seule fois. Chaque adresse IP ne doit

; tre prsente qu'une seule fois.

Enregistrez ce fichier

DFINIR LA ZONE INVERSE

Mme manipulation pour la zone inverse


#nano /etc/bind/reseau-albert-1.inverse

Ce fichier doit contenir le contenu suivant :


$TTL 604800
@ IN SOA localhost. root.localhost. (
1
604800
86400
2419200
604800 )
@ IN NS localhost.
;
; Dbut des donnes de la base de donnes DNS. Remarquez le format :
; Fin de l'adresse IP IN PTR Nom de la machine
1 IN PTR srv-dns.albert.local.
20 IN PTR client-dns.albert.local.
5 IN PTR autre-serveur.albert.local.

; Etc...

Enregistrez ce fichier

Relancez le dmon DNS


/etc/init.d/bind9 restart

Visualisez la fin du fichier /var/log/syslog

Cherchez la prsence de messages d'erreurs, concernant votre serveur


DNS, puis ventuellement cherchez o vous vous tes tromp(e).

Vrifier que le dmon DNS est bien dans la liste des processus. Notez que
le dmon s'appelle named et non bind9 .
ps -Al | grep named

Pour tester vous allez utiliser une nouvelle commande dig - installez le
paquet dnsutils (merci Nirojan) - qui permet d'interroger le serveur DNS en
lui demandant d'afficher tous les enregistrements de sa base de donnes pour
une zone. Lancez la commande :
dig @127.0.0.1 nom.local axfr
dig : nom de la commande ;
@127.0.0.1 : adresse du serveur DNS interrog ;
nom.local : nom de la zone consulte ;
axfr : type de la demande formule au serveur concernant
cette zone. axfr Lister tous les enregistrements de cette
zone .
Avec cette commande vous devriez donc voir la liste des machines
dclares dans la zone directe.

Lancez ensuite la commande :


dig @127.0.0.1 124.168.192.in-addr.arpa axfr

Vous devriez alors voir la liste des machines dclares dans la zone
inverse.

Mthode de vrifications : lancez les commandes


named-checkzone albert.local /etc/bind/albert.directe

doit rpondre OK
named-checkconf /etc/bind/named.conf.options

Etape 3 : Modifiez la mthode de


rsolution des noms sur le serveur
Comme eth0 du serveur est rgle pour obtenir sa configuration du
serveur DHCP du lyce, celui-ci lui fournit, en plus de l'adresse IP, les
paramtres pour la rsolution des noms par le serveur DNS du lyce (voir
le cours DHCP). Ceci ne convient pas pour ce TP puisque votre serveur
devra utiliser son propre service DNS. Il va falloir modifier le fichier de
configuration du client DHCP du serveur DNS.

Regardez les paramtres que vous a fourni le serveur DHCP en visualisant


le contenu du fichier resolv.conf . Il est inutile de le modifier car il serait
remis dans cet tat rgulirement par le serveur DHCP chaque
renouvellement de bail.

Ip du serveur de DNS :
Nom de domaine DNS :

ditez le fichier /etc/dhcp/dhclient.conf qui configure les informations


changes entre le serveur DHCP (celui du lyce) et le client DHCP (votre
serveur). Il va falloir indiquer que la machine locale (127.0.0.1) est le serveur
DNS prfr et que le domaine de recherche est albert.local .

Cherchez dans ce fichier les lignes suivantes :


#supersede domain-name "fugue.com home.vix.com";
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, hostname,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;

Dcommentez les deux premires lignes (enlevez le #) et modifiez-les


ainsi que les suivantes de faon obtenir :
supersede domain-name "albert.local";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;

La premire ligne indique le nom de la zone DNS directe ;


La seconde ligne force votre serveur (127.0.0.1) tre son propre serveur DNS
prfr ;

Les quatre lignes suivantes indiquent les informations qui doivent tre
demandes au serveur DHCP. On y enlve la demande de la liste des serveur
DNS et du domaine de recherche puisque nous voulons d'autres valeurs. De ce
fait le serveur du lyce ne sera plus le serveur DNS de votre serveur et vous ne
pouvez plus chercher par dfaut des machines dans
nomdomainelyce .local .

Sauvegardez le fichier modifi et relancez le dmon rseau ;


Visualisez nouveau le contenu de /etc/resolv.conf et contrlez que les
modifications ont bien t prises en compte. Vous devriez voir :
nameserver 127.0.0.1
search albert.local
domain albert.local

Note : si vous n'arrivez pas une situation pour laquelle le fichier resolv.conf est
correctement modifi au dmarrage :

1 vrifiez bien vos fichier de configuration


2 installer le paquet resolvconf car celui-ci n'est peut-tre pas prsent
dans votre version de dbian

Vrifier le fonctionnement du service sur votre serveur dns


Vous allez utiliser les deux commandes host et nslookup pour demander
votre serveur de vous donner soit l'adresse IP d'une machine soit le nom
correspondant une machine.

host srv-dns doit vous rpondre 192.168.124.1 ;

nslookup srv-dns doit vous rpondre la mme chose ;

host 192.168.124.1 doit vous rpondre srv-dns.albert.local ;

nslookup 192.168.124.1 doit vous rpondre la mme chose ;

Vous devriez ainsi arriver rsoudre correctement les noms et adresses des trois
machines que vous avez dclares dans vos fichiers de zones. Si a ne marche
pas cherchez l'erreur.

Modifiez la mthode de rsolution des noms sur le client client-dns


Comme le client est actuellement en adressage fixe (inet static) la
mthode prcdente ne lui est pas applicable. Si vous regardez le contenu
du fichier /etc/resolv.conf il est vide. Il faut donc diter le fichier de
configuration /etc/network/interfaces pour indiquer le nom de la zone
ainsi que l'adresse IP du serveur DNS.

ditez le fichier /etc/network/interfaces du client et ajoutez la


configuration de eth0 , aprs la ligne netmask :
dns-search albert.local
dns-nameservers 192.168.124.1

Enregistrez le fichier et relancer le dmon networking . Si vous regardez


le fichier /etc/resolv.conf , vous devez y voir les paramtres DNS corrects.

Note : si vous n'arrivez pas une situation pour laquelle le fichier resolv.conf est
correctement modifi au dmarrage :

1 vrifiez bien vos fichier de configuration


2 installer le paquet resolvconf car celui-ci n'est peut-tre pas prsent
dans votre version de dbian
Vrifiez le fonctionnement du client client-dns

Avec les commandes host , et nslookup vous devez obtenir les


mmes rsultats que sur le serveur.
Si a ne marche cherchez l'erreur.

tape 4 : Dclaration des alias


Explications :

Dans un rseau, il est plus facile d'accder aux services (dhcp, dns, ntp, www,
ftp, etc.) par le nom du service que par le nom de la machine qui rend ce service.
Cela permet ainsi de dplacer un service d'une machine sur une autre sans
perturber les utilisateursou une machine d'offrir plusieurs services sous des
noms diffrents alors que c'est le mme serveur qui les fournit. C'est le rle des
alias.

Dans le fichier de zone directe du DNS on trouve la dclaration des noms des
machines sous la forme
nom-machine IN A adresse-IP

Une fois ces dclarations faites, on peut prciser autant d'alias qu'on le souhaite,
en rfrence une de ces machines, sous la forme :
alias IN CNAME nom-machine

Il n'y a pas de correspondance aux alias dans la zone inverse. De ce fait, la


rsolution inverse donnera toujours le nom de la machine, mme si cette
machine a plusieurs alias.

Imaginez que votre votre serveur dns remplisse galement les rles de
serveur http et de serveur ftp . On veut donc y accder ces services
par leur nom :

dns.albert.local

www.albert.local

ftp.albert.local

Toutefois c'est toujours la mme machine srv-dns , donc la mme adresse


IP qui sera appele.

Manipulations :
On va donc crer trois alias sur la machines srv-dns .

ditez le fichier de zone directe et ajoutez :


dns IN CNAME srv-dns
www IN CNAME srv-dns
ftp IN CNAME srv-dns

Incrmenter le numro de version. Vous devez penser le faire chaque


fois que vous apporter une modification un fichier de zone inverse
ou de zone directe.

Sauvegardez le fichier

Relancez le dmon dns

Vrifier que le dmon DNS s'excute bien sur la machine

Vrifier dans le fichier de log qu'il n'y a pas d'erreurs

Depuis le serveur aussi bien que depuis le client, vrifiez que vous pouvez
rsoudre les adresses :

dns

dns.albert.local

www

www.albert.local

ftp

ftp.albert.local.
L'adresse obtenue en rponse doit tre toujours la mme, celle de votre
serveur. Vrifiez galement que la rsolution inverse n'a pas t altre par
ces changements.

tape 5 : Redirection du service DNS


sur le DNS du lyce
Dans la configuration actuelle, votre serveur DNS ne sait rsoudre que les
noms contenus dans ses propres bases de donnes (directe et inverse) et les
noms publics par l'intermdiaire des serveurs root .
Si vous tapez :
host www.free.fr
comme votre serveur dns n'est pas SOA de la zone free.fr il interroge un des
root puis le serveur DNS de la zone free.fr et arrive rsoudre
l'adresse.
Par contre, si vous tapez :
host unserveur.nomdomainelyce.local
Il rpond que cette machine est inconnue puisqu'il n'est pas SOA de
nomdomainelyce.local et que les serveurs root ne connaissent pas
non plus cette zone.
Il est donc ncessaire de configurer votre serveur DNS pour qu'il interroge
le service DNS du lyce (172.16.10.4IP du DNS du lyce) lorsque le nom
de la machine n'est pas dans sa base de donnes. Cela permettra, en plus, de
rcuprer le rsultat de la recherche d'un serveur public dans le cache du
serveur DNS du lyce, si elle s'y trouve, et de ne pas ainsi dranger les
serveurs root .

ditez le fichier /etc/bind/named.conf.options


D commentez les 3 lignes forwarders et modifiez-les pour obtenir :
forwarders {
172.16.10.4IP du DNS du lyce;
};

Ajouter une ligne :


dnssec-enable no;

Modifier la ligne
dnssec-validation auto;
pour obtenir
dsnsec-validation no;

Enregistrez ce fichier.
Dans le fichier named.conf.local, dans chaque paragraphe de zone ajouter
l'appel la fonction forwarders : ajouter la ligne forwarders{}; avant }.

Enregistrez ce fichier.

Relancez le dmon dns

Essayer, avec host ou nslookup , depuis le serveur et depuis le client, de


rsoudre :

trouve les nom du domaine du lyce (du sous rseau sio)


trouver le nom d'un serveur du lyce (serveur DNS par exemple...)
lancez des host ou nslookup pou :
o
unserveurdulyce. nomdomainelyce.local
o
172.16.10.4???IP du DNS du lyce ?????

tape 6 : A vous de jouer


Explications :

Pour le moment vous n'avez cr que la zone directe de l'entreprise et la


zone inverse pour le rseau 192.168.124/0. Cerseau utilis le Rseau
Interne 1 de virtualbox. Il faudra utiliser le rseau interne 2 pour le sous
rseau 172.20.0.0, ainsi que d'autres interfaces virtuelles.

En fonction de ce que vous venez de faire vous allez devoir crer la zone
inverse pour les rseau 172.20.0.0/16 et y inscrire les machines :

srv-cdp IP=172.20.0.50. Il assurera le services ntp et kerberos

srv-dcs IP=172.20.0.60. Il assurera le services pop3 , imap et


smtp

srv-3 IP=172.20.1.50. Il assurera le services proxy et firewall

Ces machines seront inscrites dans la zone directe sous leur nom et auront
un alias sur chacun de leurs service.

Elles seront galement inscrites sous leur nom dans la zone inverse de leur
rseau.

Attention : si le rseau 172.20.0.0/16 possde un masque sur 16 bits alors les


deux premiers octets indiquent le rseau et les deux suivants la machine.
Une zone DNS inverse porte un nom form partir de la partie rseau des
adresses IP. Son nom sera donc form avec les deux premiers octets, crits
l'envers puisqu'il s'agit d'une zone inverse.
Les enregistrements au sein du fichier de zone reprsentant une machine, ils sont
form avec les deux octets de la partie composant des adresses IP.
Par exemple la machine 145.25.230.78/16 appartiendra la zone :
25.145.in-addr.arpa
et son enregistrement sera de la forme :
78.230 IN PTR ...

Vrifier le fonctionnement depuis le client en essayant :

un dig sur l'ensemble de la zone directe, vous devez voir toutes les
machines et les alias de l'ensemble de l'entreprise :

un dig sur la zone inverse du rseau 172.20.0.0/16, ou vous devez voir


l'ensemble des machines dfinies dans cette tape ;

Bien sr un dig sur la zone 192.168.124.0/24 doit toujours vous donner


l'ensemble des machines de ce rseau ;

Un host ou un nslookup sur n'importe quelle machine, alias ou


adresse IP doit vous donner le bon rsultat.

Оценить