Dernière modif 27 novembre 2004
On suppose que votre machine linux, se nomme mamachine et a
pour adresse IP 192.168.13.10 (sur votre domaine privé et non
attribuée par le FAI) et votre domaine privé mondomaine.fr.
Les arborescences présentées (notamment au niveau du
démarrage automatique) sont celles d'une Mandrake (donc a
priori aussi d'une RedHat).
Je ne rentrerai pas dans les détails des fichiers de
configuration pour cela vous avez le DNS-Howto
(section linux puis HOW-TO) qui constitue une bonne introduction. Cette
page n'a pas pour objet de se substituer à ce dernier document,
elle réalise une synthèse pour installer un serveur de
DNS
rapidement, pour des explications détaillées voir le
HOWTO. Elle est surtout destinée à un poste isolé
voire à un petit réseau connecté de manière
non permanente à internet.
Note: Si vous ne connaissez pas les adresses IP des serveurs
DNS de votre FAI, en cas d'attribution automatique de ces adresses par
exemple, il suffit de vous connecter puis de lire les adresses au
niveau
des lignes nameserver.
// generated by named-bootconf.pl
// secret must be the same as in /etc/rndc.conf
key "key" {
algorithm hmac-md5;
secret
"c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};
controls {
inet 127.0.0.1 allow { any; } keys { "key"; };
};
options {
pid-file
"/var/run/named/named.pid";
directory "/var/named";
/*
* If there is a
firewall between you and nameservers you want
* 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;
};
//
// a caching only nameserver config
//
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
On va le modifier pour lire:
// secret must be the same as in /etc/rndc.conf
key "key" {
algorithm hmac-md5;
secret
"c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};
controls {
inet 127.0.0.1 allow { any; } keys { "key"; };
};
options {
pid-file
"/var/run/named/named.pid";
directory "/var/named";
/*
* If there is a
firewall between you and nameservers you want
* 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;
// on va mettre ici
l'adresses IP des serveurs DNS de vos FAI, votre serveur relaiera les
requêtes à ceux-ci
// s'il n'est pas capable
de les résoudre
forward first;
forwarders {
194.149.160.9;
194.149.160.1;
};
};
//
// a caching only nameserver config
//
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "mondomaine.fr" {
type master;
file "mondomaine.fr";
};
L'installation a créé un répertoire /var/named contenant named.local
@
IN SOA localhost.
root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS
localhost.
1 IN PTR localhost.
On le modifiera pour lire:
@
IN SOA
mamachine.mondomaine.fr. root.mamachine.mondomaine.fr. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS
mamachine.mondomaine.fr.
1 IN PTR localhost.
On créera sous /var/named un fichier mondomaine.fr contenant:
@
IN SOA
mamachine.mondomaine.fr. root.mondomaine.fr. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
TXT
"mondomaine.fr mon ch'tit domaine"
NS mamachine
NS
mamachine.mondomaine.fr.
MX
10 mamachine
MX
20 mamachine.mondomaine.fr.
localhost
A
127.0.0.1
mamachine
A
192.168.13.10
Donner ce fichier à named du groupe named
chown named:named mondomaine.fr
Pour info MX correspond au serveur SMTP donc à votre machine si vous y faites tourner sendmail.
Maintenant dans le fichier /etc/nsswitch.conf on doit avoir à la ligne hosts:
hosts: files dns
Le DNS-HOWTO demande la création d'un fichier /etc/host.conf contenant
order hosts,bind
multi on
Je ne sais pas si c'est absolument nécessaire, ça me paraît redondant par rapport à nsswitch.conf, mais au cas où.
Pour terminer le /etc/resolv.conf:
search mondomaine.fr
nameserver 127.0.0.1
nameserver 194.149.160.9
nameserver 194.149.160.1
Les deux dernières adresses IP sont évidemment celles de votre FAI favori. A noter que dans le cas d'une connexion intermittente par ppp avec attribution automatique des adresses IP des serveurs DNS, vous pouvez ne pas modifier les deux dernières lignes, elles seront automatiquement renseignées lors de la connexion.
Par défaut l'install de bind et named génère automatiquement les fichiers de démarrage, à tout hasard en voici le détail. Vous trouverez sous /etc/rc.d/init.d un fichier named qui a le contenu suivant:
#!/bin/sh
#
# named
This shell script takes care of starting and stopping
#
named (BIND DNS server).
#
# chkconfig: 345 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/sbin/named ] || exit 0
[ -f /etc/named.conf ] || exit 0
# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting named: "
daemon named
echo
touch
/var/lock/subsys/named
;;
stop)
# Stop daemons.
echo -n "Shutting down
named: "
killproc named
rm -f
/var/lock/subsys/named
echo
;;
status)
/usr/sbin/ndc status
exit $?
;;
restart)
/usr/sbin/ndc restart
exit $?
;;
reload)
/usr/sbin/ndc reload
exit $?
;;
probe)
# named knows how to
reload intelligently; we don't want linuxconf
# to offer to restart
every time
/usr/sbin/ndc reload
>/dev/null 2>&1 || echo start
exit 0
;;
*)
echo "Usage: named
{start|stop|status|restart}"
exit 1
esac
exit 0
Le serveur DNS est lancé automatiquement à
l'état de marche 3, 4 et 5. Il faudra néanmoins le lancer
juste après son installation en tapant
/etc/rc.d/init.d/named start
Pour relancer named (après une modification de fichier), vous devez taper:
/etc/rc.d/init.d/named restart
Les autres arguments étant start, stop, status et restart.
host -a mamachine
Trying "mamachine.mondomaine.fr"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33741
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1,
ADDITIONAL: 0
;; QUESTION SECTION:
;mamachine.mondomaine.fr.
IN ANY
;; ANSWER SECTION:
mamachine.mondomaine.fr.
86400 IN
A 192.168.25.75
;; AUTHORITY SECTION:
mondomaine.fr.
86400 IN
NS mamachine.mondomaine.fr.
Received 65 bytes from 127.0.0.1#53 in 15 ms
Tapez ensuite:
host -a mondomaine.fr
Trying "mondomaine.fr"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47095
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0,
ADDITIONAL: 1
;; QUESTION SECTION:
;mondomaine.fr.
IN ANY
;; ANSWER SECTION:
mondomaine.fr.
86400 IN
SOA mamachine.mondomaine.fr.
root.mondomaine.fr.
1997022700 28800 14400 3600000 86400
mondomaine.fr.
86400 IN
TXT "mondomaine.fr mon ch'tit domaine"
mondomaine.fr.
86400 IN
NS mamachine.mondomaine.fr.
mondomaine.fr.
86400 IN
MX 10 mamachine.mondomaine.fr.
mondomaine.fr.
86400 IN
MX 20 mamachine.mondomaine.fr.
;; ADDITIONAL SECTION:
mamachine.mondomaine.fr.
86400 IN
A 192.168.25.75
Received 179 bytes from 127.0.0.1#53 in 21 ms
Une fois connecté, d'une machine cliente ou du serveur tapez
host -a www.shom.fr
Trying "www.shom.fr."
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12287
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUESTION SECTION:
;www.shom.fr.
IN ANY
;; ANSWER SECTION:
www.shom.fr.
217813 IN CNAME
cyclone.shom.fr.
;; AUTHORITY SECTION:
shom.fr.
330241 IN
NS neree.shom.fr.
shom.fr.
330241 IN
NS resone.univ-rennes1.fr.
shom.fr.
330241 IN
NS dns.univ-lyon1.fr.
;; ADDITIONAL SECTION:
dns.univ-lyon1.fr. 317766
IN A
134.214.100.6
neree.shom.fr.
330241 IN
A 194.57.228.65
resone.univ-rennes1.fr. 300271
IN A
129.20.254.1
Received 182 bytes from 192.168.25.75#53 in 157 ms
Le ping devrait marcher aussi.
A partir d'un poste windows pour tester votre serveur dans une fenêtre d'invite de commande tapez
nslookup
Au prompt, taper le nom de machine à tester
>www.shom.fr
Serveur: Unknown
Address: 192.168.26.75
Réponse de source secondaire :
Nom: cyclone.shom.fr
Address: 194.57.228.1
Aliases: www.shom.fr
Tapez CTRL+C pour sortir du prompt
www.asterix A 192.168.13.11
www.idefix A
192.168.13.11
Relancez le serveur en tapant:
/etc/rc.d/init.d/named restart
Pour tester d'un client tapez dans un shell :
ping www.asterix.mondomaine.fr
Ca devrait marcher.
[Retour page d'accueil FUNIX] | [Retour haut de la page] |