Académique Documents
Professionnel Documents
Culture Documents
Utilisation du DNS
Donc, quand vous utilisez les diffrentes applications mail, news, ftp ... vous faites des
requtes vers un serveur de noms de domaine, celui de votre FAI entre autre, qui va rsoudre
votre requte, en recherchant la machine (ou alias) que vous essayez de contacter, partir des
noms de domaine attribus .
L'attribution des noms de domine (.com, .net, .org, .edu) est gr par la socit Network
Solutions pour le compte de l'Internic .
Cet organisme Internic (rs.internic.net) dispose d'une liste des domaines attribus (root-
servers.net), cette liste est rcuprable sous forme de fichier (named.ca) par
ftp://rs.internic.net/domain/named.ca :
Pour en savoir plus, visitez les sites :
Network Solutions
Internic
ICANN
Installation de Bind
Bind est le standard pour la gestion des noms de domaine et il doit etre install !
La version que je dcris est la 8.2-6 de mars 1999, mais vous pouvez vous en procurez une
plus rcente sur www.isc.org ou sur FTP
N'utilisez pas une ancienne version comme la 4 (voir le DNS-HOWTO) les fichiers et la
syntaxe y sont diffrents .
Vous devez installer les archives (packages RPM ou *.tar.gz) bind et bind-utils :
-1-
Installation et Configuration de DNS sous LINUX
vrifiez, si vous avez :
1) /etc/rc.d/rc3.d/K55named , /etc/rc.d/rc5.d/K55named
ou :
2) /etc/rc.d/rc3.d/S55named , /etc/rc.d/rc5.d/S55named
dans le premier cas vous devez remplacer K55named des rpertoires rc3.d et rc5.d par
S55named, avec la commande mv :
mv /etc/rc.d/rc3.d/K55named /etc/rc.d/rc3.d/S55named
mv /etc/rc.d/rc5.d/K55named /etc/rc.d/rc5.d/S55named
dans le second cas vous n'avez rien faire !
Sinon il faut les crer avec la commande ln -s :
Pour finalement obtenir ces scripts :
/etc/rc.d/rc0.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc0.d/K45named
/etc/rc.d/rc1.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc1.d/K45named
/etc/rc.d/rc2.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc2.d/K45named
/etc/rc.d/rc3.d/S55named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc3.d/S55named
/etc/rc.d/rc4.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc4.d/K45named
/etc/rc.d/rc5.d/S55named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc35.d/S55named
/etc/rc.d/rc6.d/K45named : ln -s /etc/rc.d/init.d/named /etc/rc.d/rc6.d/K45named
S55named et K45named sont des liens symboliques de /etc/rc.d/init.d/named .
si le niveau 4 (rc4.d) correspond l'initialisation xdm sur votre systme, alors changer
K45named en S55named , K= kill, S= start.
Vous pouvez vous aider du TkSysV pour modifier les RunLevels : Panneau de Control ou
Gestion Runlevel (kde).
Pour faire simple, vous pouvez utiliser les commandes :
chkconfig --level 235 named on
chkconfig --level 0146 named off
ou encore :
chkconfig --add named
Modifier /etc/resolv.conf :
# /etc/resolv.conf
#
search mon_domaine.fr # nom du domaine de votre rseau
nameserver 127.0.0.1 # adresse loopback (localhost)
nameserver 192.168.xxx.x # adresse IP de votre machine (le DNS primaire )
#
Si vous avez des postes Windows sur votre rseau, indiquez leur l'adresse de votre serveur de
noms de domaine :
Panneau de configuration / Rseau / (onglet) DNS .
Tester Bind :
Tapez la commande (Avec un point la fin ,c'est plus rapide !)
nslookup mon_domaine.fr.
Server: localhost
-2-
Installation et Configuration de DNS sous LINUX
Address: 127.0.0.1
Name: mon_domaine.fr
Addresses: 127.0.0.1
Essayez en tapant nslookup, l'invite (nslookup) vous tapez mon_domaine.fr (e.g Le vtre de
domaine ):
ma_machine:/ $ nslookup
Default Server: localhost
Address: 127.0.0.1
> mon_domaine.fr
Server: localhost
Address: 127.0.0.1
Name: mon_domaine.fr
Addresses: 127.0.0.1
> exit
ma_machine:/ $
Voil, Bind fonctionne, passons sa configuration :
-3-
Installation et Configuration de DNS sous LINUX
ce domaine (ici linuxpc.fr).
db.192.168.154 : Cette zone va permettre la rsolution inverse des noms de machines sur le
domaine, c'est dire renvoyer le nom de machine partir de l'adresse IP, elle doit donc
contenir galement les noms des machines sur le domaine et leurs adresses IP
correspondantes.
A propos du nom de domaine et plus particulirement du TLD (Top Level Domain), si vous
utilisez un TLD dj attribu sur internet comme, .fr, .com, .org, .net... etc. il est indispensable
d'ajouter "notify no;" dans la dfinition de zone dans votre fichier named.conf, ceci pour
viter tout conflit avec l'internet pendant que vous surfer sur le web ;-)
Le plus indiqu tant de ne pas utiliser un TLD existant mais un autre comme .home, .tux,
.pc.... etc.
Voici mes fichiers de configuration, j'y ai juste chang le nom des machines et du domaine :
Vous n'avez plus qu' faire de mme .
J'ai utilis l'alias "postmaster" comme administrateur du domaine, d'une part parcequ'il a dj
une entre dans /etc/aliases correspondant l'adresse email de "root", d'autre part parceque les
machines de ce domaine grent le courrier et les listes de diffusion .
Le fichier principal :
/etc/named.conf Commentaires </FONT
options { options : contient les options gnrales pour le systme :
directory
directory : dclare le chemin des fichiers de configuration
"/var/named";
// DNS du FAI forward first; Votre FAI (ici worldnet)
Worldnet forwarders { permet l'utilisation de ses DNS
forward first; 195.3.4.1 DNS primaire du FAI
forwarders { 195.3.4.2 DNS secondaire du FAI .
195.3.4.1
Consulter le DNS-HOWTO
-4-
Installation et Configuration de DNS sous LINUX
type master;
file
"db.192.168.154";
};
Le fichier des paramtres de la machine locale :
/var/named/named.local Commentaires </FONT
ATTENTION ! Les noms des machines sont en minuscule et les
noms des commandes en Majuscules . Le point . la fin des noms de
domaine est trs important, il indique que le nom de domaine est
@ IN SOA complet (pleinement qualifi).
orion.linuxpc.fr.
postmaster.orion.linuxpc.fr. (
1999112002 ; SOA : Source Of Authority
numro de srie
28800 ; postmaster alias, voir explication plus bas.
rafraichissement = 8 heures 1999112002 numro de srie, voir la description dans le fichier
14400 ; nouvel
essais = 4 heures suivant .
604800 ;
expiration = 7 jours Les 4 lignes suivantes indique le temps en secondes, vous trouverez
86400 ) ; temps ces temps cris sous cette forme:
de vie minimum = 24 heures
NS
8H = 8 heures = 28800 s
orion.linuxpc.fr. 4H = 4 heures = 14400 s
1 PTR localhost. 1W = une semaine = 604800 s
1D = 1 jour = 86400 s
-5-
Installation et Configuration de DNS sous LINUX
; aliases
www IN CNAME orion
ftp IN CNAME orion
mail IN CNAME orion
Une bonne ide consiste donner les droits, sur votre fichier de zone, uniquement named et
au groupe named :
chown named.named linuxpc.fr
Tester la configuration :
Name: linuxpc.fr
tapez le nom de la machine (serveur): orion Addresses: 192.168.154.1, 127.0.0.1
Le nom complet est affich avec l'adresse IP
> orion
Server: localhost
Vous pouvez essayer avec le nom d'une autre machine .
Address: 127.0.0.1
Name: orion.linuxpc.fr
Address: 192.168.154.1
>
-6-
Installation et Configuration de DNS sous LINUX
tapez set q=any pour obtenir toutes les infos sur le domaine
linuxpc.fr internet address =
puis tapez votre nom de domaine : linuxpc.fr
192.168.154.1
linuxpc.fr internet address =
puis votre nom de machine : orion 127.0.0.1
linuxpc.fr preference = 20, mail
Vous devez obtenir le mme affichage, si non il faut vrifier vos exchanger = orion.linuxpc.fr
linuxpc.fr preference = 10, mail
fichiers de configuration et lire le DNS-HOWTO. exchanger = orion.linuxpc.fr
linuxpc.fr nameserver =
vous pouvez essayez avec set q=ns orion.linuxpc.fr
linuxpc.fr
origin = orion.linuxpc.fr
tapez exit pour quitter nslookup . mail addr =
postmaster.orion.linuxpc.fr
serial = 1999112002
refresh = 28800 (8H)
retry = 14400 (4H)
expire = 604800 (1W)
minimum ttl = 86400 (1D)
linuxpc.fr nameserver =
orion.linuxpc.fr
orion.linuxpc.fr internet address
= 192.168.154.1
> orion
Server: localhost
Address: 127.0.0.1
bind-utils contient plusieurs utilitaires, vous trouverez des Authoritative answers can be found from:
unc.edu nameserver = NCNOC.NCREN.NET
explications dans le DNS-HOWTO ainsi que les requtes
unc.edu nameserver = NS2.unc.edu
utilisables avec nslookup . unc.edu nameserver = NS.unc.edu
NCNOC.NCREN.NET internet address =
192.101.21.1
NS2.unc.edu internet address =
152.2.253.100
NS.unc.edu internet address =
152.2.21.1
>
-7-
Installation et Configuration de DNS sous LINUX
Server: localhost
Address: 127.0.0.1
et vous ne rcuprez plus l'invite, dans ce cas utilisez [Ctrl] + [C] pour fermer nslookup et
vrifiez les fichiers de configuration de bind :
En dehors des erreurs de saisie, enlevez les blancs (espace) en dbut de ligne et vrifiez que
ce sont bien des tabulations et non des espaces qui sparent les noms des commandes.
Vrifier galement :
/etc/nsswitch.conf doit contenir une ligne hosts:
hosts : files dns
/etc/hosts.conf :
# /etc/hosts.conf
order hosts,bind
multi on
/etc/resolv.conf :
# /etc/resolv.conf
# local
domain linuxpc.fr # dfinit le domaine par dfaut
nameserver 127.0.0.1 # loopback
nameserver 192.168.154.1 # serveur principal
# FAI
search worldnet.fr
nameserver 195.3.4.1 # DNS primaire du FAI
nameserver 195.3.4.2 # DNS secondaire du FAI
La forme et la syntaxe que j'utilise (@ IN que j'ai toujours utilis) est certainement une
mauvaise habitude, mais cela fonctionne avec une RedHat 6.0 et Bind 8.2 : Le @ ($ORIGIN)
au dbut d'une ligne pour dfinir une zone n'est pas indispensable ( voir le DNS-HOWTO).
La syntaxe pour Bind 9.1 et Bind 9.2 est diffrente, regardez la section suivante Diffrence de
la version 9 de BIND
SOA :(Start Of Authority ou Origine de l'Autorit) doit tre suivi du nom du serveur
(machine relle et physique) et de l'adresse du responsable qui administre le domaine, ces
deux noms complets de domaine doivent se terminer par un point .
Vous avez not l'importance du point qui caractrise un nom de domaine pleinement qualifi,
si le point est absent la fin du nom de domaine alors le nom du domaine dfinit dans
named .conf (dans la zone correspondante) sera automatiquement ajouter la fin, ce qui dans
notre cas pour "NS orion.linuxpc.fr" donnerai orion.linuxpc.fr.linuxpc.fr ??? mais est
correcte avec "NS orion" et donne orion.linuxpc.fr
-8-
Installation et Configuration de DNS sous LINUX
IN C'est un mot cl (optionnel) qui indique qu'il s'agit d'une zone INternet.
MX qui indique le serveur de Mail (Xchanger) est suivi d'un nombre: c'est l'indice de
priorit .
Ce nombre indique au gestionnaire de courrier quelle machine envoyer en priorit le
courrier, dans notre cas c'est orion (le plus petit nombre) qui est prioritaire sur
orion.linuxpc.fr. : C'est la mme machine !?
Pour un rseau plus important et/ou un courrier abondant, vous pouvez dsigner plusieurs
machines :
MX 5 orion.linuxpc.fr.
MX 10 droopy.linuxpc.fr.
MX 20 cern.linuxpc.fr.
Commencez par vrifier que, dans le rpertoire /etc, vous avez bien un fichier rndc.conf et
certainement aussi un fichier rndc.key.
rndc.key contient la cl md5, galement prsente la fin du fichier rndc.conf sous la forme :
key "key" {
-9-
Installation et Configuration de DNS sous LINUX
algorithm hmac-md5;
secret
"QOnXmEIGx0RWeQ0NZ0GtLcQmSDBympnctTaCwPxTjvYYoTUcsXbQAHrZBMtt";
};
Il vous faut ajouter cette cl au dbut de votre fichier /etc/named.conf, 2 cas sont possibles :
_1) /etc/rndc.key existe, alors :
// /etc/named.conf
include "/etc/rndc.key";
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
_2) vous avez seulement /etc/rndc.conf, alors :
// /etc/named.conf
key "key" {
algorithm hmac-md5;
secret
"QOnXmEIGx0RWeQ0NZ0GtLcQmSDBympnctTaCwPxTjvYYoTUcsXbQAHrZBMtt";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { "key"; };
};
Si vous avez ajout les DNS de votre FAI, donc pour une connexion internet, remplacez
"localhost;" par "any;".
En plus de la syntaxe modifier dans vos fichiers de zone, vous devrez certainement ajouter
dans chaque fichier de zone, comme premire ligne du fichier : $TTL 3h ou $TTL 86400.
Par dfaut les fichiers named.conf et rndc.conf sont lisibles par tous, il faut corriger cela en
donnant les droits sur ces fichiers root ou named et au groupe named, par exemple:
chown root.named named.conf
ou
chown named.named named.conf
et ensuite :
chmod 640 named.conf
Vous faites la mme chose sur tous les fichiers qui contiennent la cl md5.
Sinon le principe reste identique ce que j'ai dcrit plus haut, donc je vous donne ici
simplement le contenu, sans commentaire, des diffrents fichiers de zone et du fichier de
configuration /etc/named.conf.
...ATTENTION ! J'ai effectu les tests en installant des archives Tarball et non des RPMs,
j'ignore donc si les packages RPMs fonctionnent correctement !?
Version 9.1.
Fichier de configuration:
named.conf :
/* /etc/named.conf
* generated by named-bootconf.pl
*/
include "/etc/rndc.key";
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
- 10 -
Installation et Configuration de DNS sous LINUX
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
// ISP IP Address, Worldnet Provider DNS :
forward first;
forwarders {
195.3.4.1;
195.3.4.2;
};
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { any; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "linuxpc.fr" IN {
type master;
file "linuxpc.fr";
};
zone "154.168.192.in-addr.arpa" IN {
type master;
file "db.192.168.154";
};
Fichiers de zone :
named.local:
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum ttl
IN NS localhost.
1 IN PTR localhost.
localhost.zone :
$TTL 86400
- 11 -
Installation et Configuration de DNS sous LINUX
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS @
1D IN A 127.0.0.1
linuxpc.fr :
$TTL 86400
; serveurs de noms
localhost IN A 127.0.0.1
orion IN A 192.168.154.1
mail IN A 192.168.154.1
; aliases
www IN CNAME orion
ftp IN CNAME orion
news IN CNAME orion
db.195.168.154 :
$TTL 86400
@ IN SOA orion.linuxpc.fr. postmaster.orion.linuxpc.fr. (
2002031200 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)
; serveurs de noms
@ IN NS orion.linuxpc.fr.
; adresses IP inverses
1 IN PTR orion.linuxpc.fr.
2 IN PTR droopy.linuxpc.fr.
3 IN PTR cern.linuxpc.fr.
4 IN PTR lmsoft.linuxpc.fr.
- 12 -
Installation et Configuration de DNS sous LINUX
Test de bind et de votre config DNS
Pour tester la configuration de votre DNS en remplacement de "nslookup", bien que toujours
disponible, la doc de BIND conseille l'utilisation de host:
host -a orion
host -a linuxpc.fr
host -a www.linuxpc.fr
....etc.
Version 9.2.
NB: Pour la version 9.2. j'ai utilis la forme :
NS orion.linuxpc.fr.
la place de
@ IN NS orion.linuxpc.fr.
et cela fonctionne trs bien !
Un serveur secondaire :
Vous avez un gros rseau (beaucoup de machines et/ou plusieurs domaines) et vous voulez
utiliser un serveur de nom de domaine secondaire : Pour cela, sur la machine (par exemple
droopy.linuxpc.fr) utilise comme serveur secondaire, il suffit de modifier le fichier principal
de configuration de Bind, named.conf, comme suit :
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
- 13 -
Installation et Configuration de DNS sous LINUX
file "named.local";
};
zone "linuxpc.fr" in {
notify no;
type slave;
file "linuxpc.fr";
masters { 192.168.154.1; };
};
zone "154.168.192.in-addr.arpa" in {
notify no;
type slave;
file "db.192.168.154";
masters { 192.168.154.1; };
};
PATH=/sbin:/usr/sbin:/bin:/usr/bin:
export PATH
cd /var/named
- 14 -
Installation et Configuration de DNS sous LINUX
*)
echo "La mise a jour de named.ca a ECHOUE."
echo "Voici la sortie de dig :"
echo
cat named.ca.new
exit 0
;;
esac
echo "Le fichier named.ca a t mis a jour et contient les informations suivantes :"
echo
cat named.ca.new
Personnellement je n'utilise pas ce script, je me connecte une ou deux fois par an avec la
commande :
dig @rs.internic.net . orion >/var/named/named.ca.new 2>&1
Et voil ce que je rcupre :
; <<>> DiG 8.2 <<>> @rs.internic.net . orion
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 13
;; QUERY SECTION:
;; orion, type = A, class = IN
;; AUTHORITY SECTION:
. 5d19h24m23s IN NS D.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS E.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS I.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS M.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS L.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS K.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS J.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS B.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS F.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS G.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS C.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS H.ROOT-SERVERS.NET.
. 5d19h24m23s IN NS A.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90
E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10
I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17
M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33
- 15 -
Installation et Configuration de DNS sous LINUX
L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12
K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129
J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10
B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107
F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4
C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12
H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53
A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4
logging {
channel warning {
file "/var/log/dns_warnings" versions 3 size 100k;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns {
file "/var/log/dns_logs" versions 3 size 100k;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { warning; } ;
category statistics { general_dns; } ;
category queries { general_dns; } ;
};
Ces paramtres vont permettrent de crer 2 fichiers, un "dns_warning" pour les erreurs et un
"dns_logs" pour les messages, dans le rpertoire /var/log . Chacun de ces fichiers logs
conservera 3 archives (*.0, *.1, *.2) de 100 Ko maxi
Voil il y aurait encore beaucoup dire, mais vous savez quoi ? Consultez le DNS-HOWTO .
Encore un mot au sujet des alias dans le fichier de zone du nom de domaine
(/var/named/linuxpc.fr) , ces alias par exemple "www orion" va permettre de contacter votre
serveur http (Apache) avec l'url "http://www.linuxpc.fr/" .
De l , pour passer sur le Web, il ne vous reste plus qu' installer et configuer, un systme
RAID, un routeur .....
et en informer le reste du monde . :-))
Mme sur un rseau de 2 ou 3 machines, DNS vous rendra service surtout si vous utilisez
Netscape qui dans certains cas met un temps fou pour conctacter votre serveur web Apache
local .
- 16 -
Installation et Configuration de DNS sous LINUX
- 17 -