IP du DNS primaire : 10.0.0.1
IP du DNS secondaire : 10.0.0.2
Exemple du fichier /etc/named.conf du DNS primaire:
// Default named.conf generated by install of bind-9.2.4-16.EL4 options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; //Pour notifier les serveurs secondaire notify yes; //Pour autoriser le serveur secondaire a faire le transfert de zone allow-transfer { 10.0.0.2; }; //Pour forwarder les requetes non interne vers des dns externes forwarders {212.27.53.252; 212.27.54.252;}; }; include "/etc/rndc.key"; zone "zikdomain.com" IN { type master; file "zikdomain.com.zone"; allow-update { none; }; }; zone "0.0.10.in-addr.arpa" IN { type master; file "0.0.10.in-addr.arpa.zone"; allow-update { none; }; };
Exemple du fichier /etc/named.conf du DNS secondaire:
// Default named.conf generated by install of bind-9.2.4-16.EL4 options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; //Pour autoriser les notifications du serveur primaire allow-notify {10.0.0.1;}; //Pour forwarder les requetes non interne vers des dns externes. Ne pas utiliser si le serveur doit faire du cache DNS forwarders {212.27.53.252; 212.27.54.252;}; }; include "/etc/rndc.key"; zone "zikdomain.com" IN { type slave; file "slaves/zikdomain.com.zone"; masters { 10.0.0.1; }; }; zone "0.0.10.in-addr.arpa" IN { type slave; file "slaves/0.0.10.in-addr.arpa.zone"; masters { 10.0.0.1; }; };
Configuration d'un fichier zone (/var/named/zikdomain.com.zone)
$ORIGIN zikdomain.com. $TTL 86400 @ IN SOA ns1.zikdomain.com. hostmaster.zikdomain.com. ( 2007051106 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ; minimum TTL of 1 day ) ; Serveurs DNS IN NS ns1.zikdomain.com. IN NS ns2.zikdomain.com. ; Serveurs MAIL IN MX 10 smtp ; HOSTS rhel4-vm1 IN A 10.0.0.1 rhel4-vm2 IN A 10.0.0.2 zikostation IN A 10.0.0.254 ns1 IN CNAME rhel4-vm1 ns2 IN CNAME rhel4-vm2 smtp IN CNAME rhel4-vm1 mail IN CNAME rhel4-vm1 test IN CNAME rhel4-vm1
Configuration d'un fichier zone inverse(/var/named/0.0.10.in-addr.arpa.zone)
$ORIGIN 0.0.10.in-addr.arpa. $TTL 86400 @ IN SOA ns1.zikdomain.com. hostmaster.zikdomain.com. ( 2007050702 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ; minimum TTL of 1 day ) IN NS ns1.zikdomain.com. IN NS ns2.zikdomain.com. 1 IN PTR rhel4-vm1.zikdomain.com. 2 IN PTR rhel4-vm2.zikdomain.com. 254 IN PTR zikostation.zikdomain.com.
Les sections view définissent des comportements du serveur sur la base de l'adresse IP du client qui envoie la requête, permettant de différencier les réponses DNS. On définit ainsi deux vues :
Il est nécessaire de générer une clé par vue pour cibler les transferts de zone. Si ce n'est pas fait, les serveurs secondaire ne traiterons qu'une seule vue.
Pour générer les clés, lancer :
cd /var/bind/ dnssec-keygen -a HMAC-MD5 -b 128 -n HOST interne-key dnssec-keygen -a HMAC-MD5 -b 128 -n HOST externe-key
Ces commandes génèrent deux fichiers, exemple pour idom-key :
Kinterne-key.+157+56677.key Kinterne-key.+157+56677.private
Pour récupérer la chaîne de caractère secret, lancer la commande :
grep Key Kinterne-key.+157+56677.private
//Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue externe key "externe-key" { algorithm hmac-md5; secret "XXXXXXXXXXXXXXXXXXXXXX=="; }; //Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue interne key "interne-key" { algorithm hmac-md5; secret "YYYYYYYYYYYYYYYYYYYYYY=="; }; view "interne" { //On autorise l'usage de la clé interne mais pas externe pour bien ciblé match-clients { clients_interne; key interne-key; !key externe-key;}; recursion yes; allow-recursion { clients_interne; }; //Les serveurs secondaires 10.0.0.2 et 10.0.0.3 doivent utiliser la clé interne pour le transfert de cette vue server 10.0.0.2 { keys interne-key; }; server 10.0.0.3 { keys interne-key; }; // racine // type hint correspond aux requêtes que l'on ne peut pas traiter localement // le fichier root.zone doit être récupéré régulièrement sur ftp.rs.internic.net/domain zone "." { type hint; file "standard/root.hint"; }; zone "localhost" { type master; file "standard/localhost"; allow-transfer { localhost; }; }; zone "127.in-addr.arpa" { type master; file "standard/loopback"; allow-transfer { localhost; }; }; zone "com" { type delegation-only; }; zone "net" { type delegation-only; }; // zone de type master correspond aux requêtes locales : ce serveur est l'autorité // de cette zone (groupeT.tp) zone "groupeT.tp" { type master; file "master/int.groupeT.tp"; }; }; view "externe" { match-clients { any; key externe-key; !key interne-key; }; recursion no; //Les serveurs secondaires 10.0.0.2 et 10.0.0.3 doivent utiliser la clé externe pour le transfert de cette vue server 10.0.0.2 { keys externe-key; }; server 10.0.0.3 { keys externe-key; }; // zone de type master correspond aux requêtes locales : ce serveur est l'autorité // de cette zone (groupeT.tp) zone "groupeT.tp" { type master; file "master/ext.groupeT.tp"; }; };
//Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue externe key "externe-key" { algorithm hmac-md5; secret "XXXXXXXXXXXXXXXXXXXXXX=="; }; //Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue interne key "interne-key" { algorithm hmac-md5; secret "YYYYYYYYYYYYYYYYYYYYYY=="; }; view "interne" { //On autorise l'usage de la clé interne mais pas externe pour bien ciblé match-clients { clients_interne; key interne-key; !key externe-key;}; recursion yes; allow-recursion { clients_interne; }; //Le serveur primaire 10.0.0.1 doit utiliser la clé interne pour le transfert de cette vue server 10.0.0.1 { keys interne-key; }; // racine // type hint correspond aux requêtes que l'on ne peut pas traiter localement // le fichier root.zone doit être récupéré régulièrement sur ftp.rs.internic.net/domain zone "." { type hint; file "standard/root.hint"; }; zone "localhost" { type master; file "standard/localhost"; allow-transfer { localhost; }; }; zone "127.in-addr.arpa" { type master; file "standard/loopback"; allow-transfer { localhost; }; }; zone "com" { type delegation-only; }; zone "net" { type delegation-only; }; // zone de type master correspond aux requêtes locales : ce serveur est l'autorité // de cette zone (groupeT.tp) zone "groupeT.tp" { type slave; file "slave/int.groupeT.tp"; masters { 10.0.0.1; }; }; }; view "externe" { match-clients { any; key externe-key; !key interne-key; }; recursion no; //Le serveur primaire 10.0.0.1 doit utiliser la clé externe pour le transfert de cette vue server 10.0.0.2 { keys externe-key; }; server 10.0.0.3 { keys externe-key; }; // zone de type master correspond aux requêtes locales : ce serveur est l'autorité // de cette zone (groupeT.tp) zone "groupeT.tp" { type slave; file "slave/ext.groupeT.tp"; masters { 10.0.0.1; }; }; };
Mettre les adresses IP des contrôleurs AD sur la ligne allow-update
zone "domaineNT.zikdomain.fr" { type master; file "domaineNTzikdomain.com"; allow-update { <IP CONTROLEUR AD>; <IP CONTROLEUR AD 2>; }; };
Pour créer des enregistrements server4 pointant sur 10.0.0.4 jusqu'à server100 pointant sur 10.0.0.100
$GENERATE 4-100 server$ A 10.0.0.$
Même chose pour créer les ptr
$GENERATE 4-100 $ PTR server$.zikdomain.com.
Activer le logging des requetes :
rndc querylog
Une fois activé les logs se trouvent dans /var/log/messages
ou /var/log/syslog
.
Vérifier la syntaxe d'un fichier zone :
named-checkzone domaine.com /var/cache/bind/domaine.com.zone
Vérifier la syntaxe de la configuration de bind :
named-checkconf /etc/bind/named.conf