Installer un serveur DNS |
||
|
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 6.1 (donc a priori aussi d'une
RedHat 6.1).
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.
rpm -ivh bind-8.2.1-7mdk.i586.rpm
rpm -ivh caching-nameserver-6.0-3mdk.noarch.rpm
L'installation a créé un fichier /etc/named.conf dont voici le contenu:
// generated by named-bootconf.pl
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:
options {
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;
// ici vous mettez les
adresses IP du serveur primaire et secondaire de votre FAI
// vous pouvez éventuellement
supprimer les 4 prochaines lignes
// pour savoir à
quoi ça sert voir le DNS-HOWTO
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" {
notify no;
type master;
file "mondomaine.fr";
};
L'installation a créé un répertoie /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
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
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.
#!/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
Vous devez ensuite créer les liens suivants:
ln -s /etc/rc.d/init.d/named /etc/rc.d/rc0.d/K45named
ln -s /etc/rc.d/init.d/named /etc/rc.d/rc1.d/K45named
ln -s /etc/rc.d/init.d/named /etc/rc.d/rc2.d/K45named
ln -s /etc/rc.d/init.d/named /etc/rc.d/rc3.d/S55named
ln -s /etc/rc.d/init.d/named /etc/rc.d/rc4.d/S55named
ln -s /etc/rc.d/init.d/named /etc/rc.d/rc5.d/S55named
ln -s /etc/rc.d/init.d/named /etc/rc.d/rc6.d/K45named
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.
Default Server: localhost
Address: 127.0.0.1
> set q=any
> mondomaine.fr
Server: localhost
Address: 127.0.0.1
mondomaine.fr preference = 10,
mail exchanger = mamachine.mondomaine.fr
mondomaine.fr preference = 20,
mail exchanger = mamachine.mondomaine.fr
mondomaine.fr nameserver = mamachine.mondomaine.fr
mondomaine.fr text = "mondomaine.fr
mon ch'tit domaine"
mondomaine.fr
origin = mamachine.mondomaine.fr
mail addr = root.mondomaine.fr
serial = 1997022700
refresh = 28800 (8H)
retry = 14400
(4H)
expire = 3600000
(5w6d16h)
minimum ttl = 86400 (1D)
mondomaine.fr nameserver = mamachine.mondomaine.fr
mamachine.mondomaine.fr internet address = 192.168.13.10
> mamachine
Server: localhost
Address: 127.0.0.1
mamachine.mondomaine.fr internet address = 192.168.13.10
mondomaine.fr nameserver = mamachine.mondomaine.fr
mamachine.mondomaine.fr internet address = 192.168.13.10
>exit
Si vous n'avez pas ce type de sortie, c'est que vous avez un problème au niveau de votre configuration.