"One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness BIND them"
DNS (pour Domain Name System) est un service qui permet de traduire les noms de domaine internet en adresse IP.
BIND (pour Berkley Internet Name Daemon ou Domain) est le serveur DNS le plus utilisé sur le net, spécialement sur les systèmes de type UNIX et est devenu un standard.
Installer bind et bind-tools :
# emerge -a bind
# emerge -a bind-tools
ajouter le démon au démarrage, il s'appelle named, puis le lancer :
# rc-update add named default
# rc-service named start
Si ce n'est pas le cas, attribuer un nom à votre machine en éditant /etc/conf.d/hostname (ici, gentoo-server) :
hostname="gentoo-server" |
ajouter les lignes suivantes au fichier /etc/conf.d/net avec un nom de domaine pour l'interface réseau (ici, vm.lan et enp0s3):
dns_servers="127.0.0.1" dns_domain_enp0s3="vm.lan" |
éditer /etc/hosts :
127.0.0 .1 | gentoo-server.vm.lan | gentoo-server |
éditer /etc/bind/named.conf :
! Attention, (presque) chaque ligne doit finir par un ' ;'
ajouter votre réseau au groupe 'trusted', l'adresse IP de la machine dans les options et modifier le chemin du fichier pid
acl "trusted" { 127.0.0.0/8; 192.168.0.0/24; ← votre réseau }; options { directory "/var/bind"; pid-file "/var/run/named/named.pid"; ← chemin complet listen-on-v6 { none; }; listen-on port 53 { 127.0.0.1; 192.168.0.160; }; ← IP allow-query { trusted; }; allow-query-cache { trusted; }; allow-transfer { none; }; allow-update { none; }; |
dé-commenter la section 'forwarders' et modifier les dns si besoin
forwarders { | ||
192.168.0.1; | // Ma box | |
// | 124.124.124.124; | // Your ISP NS |
4.2.2.1; | // Level3 Public DNS | |
4.2.2.2; | // Level3 Public DNS | |
8.8.8.8; | // Google Open DNS | |
8.8.4.4; | // Google Open DNS | |
}; |
logging { channel default_log { file "/var/log/named/named.log" versions 5 size 50M; print-time yes; print-severity yes; print-category yes; }; category default { default_log; }; category general { default_log; }; }; include "/etc/bind/rndc.key"; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1/32; } keys { "rndc-key"; }; }; |
ajouter la zone locale, il faudra également créer le fichier (ici, 'vm.lan.internal')
view "internal" { match-clients { 192.168.0.0/24; localhost; }; recursion yes; zone "vm.lan" { type master; file "pri/vm.lan.internal"; }; }; |
création du fichier log.
# mkdir -p /var/log/named/
# chmod 770 /var/log/named/
# touch /var/log/named/named.log
# chmod 660 /var/log/named/named.log
# chown -R named /var/log/named/
# chgrp -R named /var/log/named/
création du fichier /var/bind/pri/vm.lan.internal
# cd /var/bind/pri
# touch vm.lan.interal
;vm.lan.internal $TTL 2d @ IN SOA gentoo-server.vm.lan. root.vm.lan. ( |
2018061701 | ; serial |
3h | ; refresh |
1h | ; retry |
1w | ; expiry |
1d ) | ; minimum |
@ | IN NS | gentoo-server.vm.lan. |
Gentoo-server | IN A | 192.168.0.160 |
box | IN A | 192.168.0.1 |
C-3PO | IN A | 192.168.0.2 |
R2-D2 | IN A | 192.168.0.5 |
vérification des fichiers de configuration et redémarrage du service
éditer le fichier /etc/bind/named.conf et ajouter l'adresse IP du serveur esclave :
allow-transfer { 192.168.0.153; ← }; |
puis le fichier /var/bind/pri/vm.lan.internal, mettre à jour le 'serial' et ajouter une entrée pour le serveur esclave :
>$TTL 2d @ IN SOA gentoo-server.vm.lan. root.vm.lan. ( |
2018062301 | ; serial ← (à mettre à jour) |
3h | ; refresh |
1h | ; retry |
1w | ; expiry |
1d ) | ; minimum |
@ | IN NS | gentoo-server.vm.lan. |
IN NS | fedora.vm.lan. | |
gentoo-server | IN A | 192.168.0.160 |
fedora | IN A | 192.168.0.153 |
box | IN A | 192.168.0.1 |
C-3PO | IN A | 192.168.0.2 |
R2-D2 | IN A | 192.168.0.5 |
# rc-service named restart
vérifier et éditer si besoin les fichiers suivants :
/etc/hosts
127.0.0.1 | localhost | localhost.localdomain | localhost4 | localhost4.localdomain4 |
::1 | localhost | localhost.localdomain | localhost6 | localhost6.localdomain6 |
192.168.0.153 | fedora.vm.lan | fedora |
/etc/hostname
fedora.vm.lan |
/etc/NetworkManager/NetworkManager.conf (pour l'empêcher d'écraser le fichier resolv.conf à chaque redémarrage de l'interface réseau) :
[main] #plugins=ifcfg-rh,ibft dns=none # ← ajouter cette option dans la section [main] |
domain vm.lan nameserver 127.0.0.1 |
# dnf install bind
ajouter les lignes suivantes à la fin de /etc/named.conf:
>zone "vm.lan" IN { type slave; masters { 192.168.0.160; }; file "slaves/vm.lan.wan"; notify no; }; |
relancer le service et l'ajouter au démarrage :
# systemctl restart named
# systemctl enable named