1 Implantation
TODO Mettre à jour l'implantation réseau
- un domaine estar.lan avec deux serveurs dns (192.168.10.4, 192.168.10.14)
- un domaine apcb.lan avec deux serveurs dns (192.168.0.1, 192.168.0.253)
- un bridge sépare les deux sous-réseaux
- chaque sous-réseaux dispose de la mise à jour DNS via DHCP
- les DNS pour le sous réseaux estar.lan sont accessibles depuis apcb.lan
L'implantation du schéma ci-dessus se fait dans le cadre d'un réseau local. Elle ne fait que reprendre les points abordés dans les pages suivantes:
2 Configuration de ns1
2.1 Bind9
2.1.1 Fichier named.conf
// Gérer les acls acl internals { 127.0.0.0/8; 192.168.0.0/24; 192.168.10.0/24; }; // Charger les options générales include "/etc/bind/named.conf.options"; // Déclaration de la clef pour autoriser l'update DNS pour apcb.lan // par les serveurs DHCPs, et aussi utiliser pour les requetes de transaction // de zones sur le domaine local include "/etc/bind/ns-apcb-lan_rndc-key"; // Déclaration de la clef pour les requetes de transaction de zones de // estar.lan include "/etc/bind/ns-estar-lan_rndc-key"; // Configurer le canal de communication pour administrer BIND9 avec rndc // Par défaut, la clef est situé dans le fichier rndc.key et utiliser par // rndc et bind9 sur localhost controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; }; }; // Le serveur primaire 192.168.0.1 -> ns1.apcb.lan // fourni du transfert de zone incremental (IXFR) // Toute transactions avec le serveur 192.168.0.253 // -> ns2.apcb.lan se fait avec l'utilisation de la // clef ns-apcb-lan_rndc-key server 192.168.0.1 { provide-ixfr yes; request-ixfr yes; }; server 192.168.0.253 { keys { ns-apcb-lan_rndc-key; }; }; // Les mises à jour du domaine estar.lan se font par transactions signés via la clef // ns-estar-lan_rndc-key en provenance de 192.168.10.4 (ns1.estar.lan) server 192.168.10.4 { keys { ns-estar-lan_rndc-key; }; }; // Configurer le canal de communication pour administrer BIND9 avec rndc // utilisé par rndc et bind9 sur localhost controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } ; }; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local";
2.1.3 Fichier named.conf.log
logging { channel update_debug { file "/var/cache/bind/update_debug.log" versions 3 size 100k; severity info; print-severity yes; print-time yes; }; channel security_info { file "/var/cache/bind/security_info.log" versions 1 size 100k; severity info; print-severity yes; print-time yes; }; channel bind_log { file "/var/cache/bind/bind.log" versions 3 size 1m; severity info; print-category yes; print-severity yes; print-time yes; }; category default { bind_log; }; category lame-servers { null; }; category update { update_debug; }; category update-security { update_debug; }; category security { security_info; }; }
2.1.4 Fichier named.conf.options
options { directory "/var/cache/bind"; // Port d'échange entre les serveurs DNS query-source address * port *; // Transmettre les requêtes aux DNS orange // dans le cas où ce serveur ne sait pas résoudre ces adresses forward only; forwarders { 194.2.0.20; 194.2.0.50; }; auth-nxdomain no; # conform to RFC1035 // Ecouter sur les interfaces locales uniquement (IPV4) listen-on-v6 { none; }; listen-on { 127.0.0.1; 192.168.0.1; }; // Transférer les zones aux DNS secondaires 192.168.10.253 allow-transfer { 192.168.0.253; }; // Accepter les requêtes pour le réseau interne uniquement allow-query { internals; }; // Autoriser les requêtes récursives pour les hôtes locals allow-recursion { internals; }; // Ne pas rendre publique la version de BIND version none; };
2.1.5 Fichier zones.apcb.lan
zone "apcb.lan" { type master; file "/var/cache/bind/db.apcb.lan"; // Aucun forwarder pour cette zone forwarders {}; // Autoriser la mise à jour dynamique si authentifié allow-update { key ns-apcb-lan_rndc-key; }; // Autoriser le transfert de cette zone vers le DNS secondaire allow-transfer { 192.168.0.253; }; notify yes; }; zone "0.168.192.in-addr.arpa" { type master; file "/var/cache/bind/db.apcb.lan.inv"; // Aucun forwarder pour cette zone forwarders {}; // Autoriser la mise à jour dynamique si authentifié allow-update { key ns-apcb-lan_rndc-key; }; // Autoriser le transfert de cette zone vers le DNS secondaire allow-transfer { 192.168.0.253; }; notify yes; };
2.1.6 Fichier zones.estar.lan
zone "estar.lan" { type slave; file "/var/cache/bind/db.estar.lan"; forwarders {}; masters { 192.168.10.4; }; allow-notify { 192.168.10.4; }; }; zone "10.168.192.in-addr.arpa" { type slave; file "/var/cache/bind/db.estar.lan.inv"; forwarders {}; masters { 192.168.10.4; }; allow-notify { 192.168.10.4; }; };
2.2 DCHP3 - dhcpd.conf
# Options diverses # ----------------------------------------------------------------------------- # Déclarer le serveur DHCP en tant que master authoritative; # Refuser les adressses mac en double deny duplicates; # Refuser les messages DHCPDECLINE indiquant un conflit réseau. ignore declines; # Enregistrer uniquement le nom d'hôte si le FQDN n'est pas géré par le # serveur ignore client-updates; # Définir le serveur de temps local option ntp-servers 192.168.0.1; # Gestion DNS # ----------------------------------------------------------------------------- # Lister les serveurs DNS pour le réseau option domain-name-servers 192.168.0.1, 192.168.0.253; # Mettre à jour les DNS à l'aide de DHCP ddns-update-style interim; ddns-updates on; # Charger la signature (TSIG) pour pouvoir autoriser les transactions avec BIND include "/etc/bind/ns-apcb-lan_rndc-key"; # Gestion du failover # ----------------------------------------------------------------------------- # La mise en place du failover permet de définir deux serveurs DHCPs afin de # gérer la continuité de services et l'équilibrage de charge # Ici, le serveur primaire est 192.168.0.1 et le secondaire 192.168.0.253 failover peer "dhcp_failover" { primary; address 192.168.0.1; port 519; peer address 192.168.0.253; peer port 519; max-response-delay 30; max-unacked-updates 10; load balance max seconds 3; mclt 1800; split 128; } # Déclaration à utiliser pour initialiser le failover # failover peer "dhcp_failover" state { # my state partner-down; # } # Définition des sous réseaux # ----------------------------------------------------------------------------- subnet 192.168.0.0 netmask 255.255.255.0 { # Lister les options du réseau option subnet-mask 255.255.255.0; option routers 192.168.0.253; option netbios-name-servers 192.168.0.1; option netbios-node-type 8; # Gestion de la zone DNS "apcb.lan" # ----------------------------------- # Associer un nom de domaine pour la zone option domain-name "apcb.lan"; # Gérer l'update DNS (le reverse est fait par défaut) ddns-domainname "apcb.lan"; # Définir les zones DNS que DHCP doit mettre à jour zone apcb.lan. { primary 192.168.0.1; key ns-apcb-lan_rndc-key; } zone 0.168.192.in-addr.arpa. { primary 192.168.0.1; key ns-apcb-lan_rndc-key; } # Gestion de la pool # ------------------------------ pool { failover peer "dhcp_failover"; deny dynamic bootp clients; range 192.168.0.80 192.168.0.160; default-lease-time 43200; max-lease-time 86400; } }
3 Configuration de ns2
3.1 Bind9
3.1.1 Fichier named.conf
// Gér les ACLs acl internals { 127.0.0.1/8; 192.168.0.0/24; }; // Charger les options include "/etc/bind/named.conf.options"; // Declaration de la clef pour autoriser l'update DNS pour apcb.lan // par les servers DHCP include "/etc/bind/ns-apcb-lan_rndc-key"; // Dénir les caractéstiques des serveurs // Le serveur secondaire reçt du IXFR et les transactions effectué // avec le serveur primaire doivent utiliser la clef TSIG précédente server 192.168.0.253 { request-ixfr yes; }; server 192.168.0.1 { keys { ns-apcb-lan_rndc-key; }; }; // Configurer le canal de communication pour adminsistrer BIND9 avec rndc // Par déut, la clef est situéda dans le fichier rndc.key et utilisépar // rndc et bind9 sur localhost controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; }; }; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local";
3.1.2 Fichier named.conf.local
// Gérer les fichiers de logs include "/etc/bind/named.conf.log"; // Gérer le domaine example.com (zone de recherche et de recherche inversée) include "/etc/bind/zones.example.com"; // Consider adding the 1918 zones here, if they are not used in your // organization include "/etc/bind/zones.rfc1918";
3.1.3 Fichier named.conf.log
logging { channel update_debug { file "/var/cache/bind/update_debug.log" versions 3 size 100k; severity info; print-severity yes; print-time yes; }; channel security_info { file "/var/cache/bind/security_info.log" versions 1 size 100k; severity info; print-severity yes; print-time yes; }; channel bind_log { file "/var/cache/bind/bind.log" versions 3 size 1m; severity info; print-category yes; print-severity yes; print-time yes; }; category default { bind_log; }; category lame-servers { null; }; category update { update_debug; }; category update-security { update_debug; }; category security { security_info; }; };
3.1.4 Fichier named.conf.options
options { directory "/var/cache/bind"; // Port d'éange entre les serveurs DNS query-source address * port *; // Transmettre les requêtes aux DNS orange // dans le cas où ce serveur ne sait pas résoudre ces adresses forward only; forwarders { 194.2.0.20; 194.2.0.50; }; auth-nxdomain no; # conform to RFC1035 // Ecouter sur les interfaces locales uniquement (IPV4) listen-on-v6 { none; }; listen-on { 127.0.0.1; 192.168.0.253; }; // Ne pas transfér les informations de zones allow-transfer { none; }; // Accepter les requês pour le réau interne uniquement allow-query { internals; }; // Autoriser les requês rérsives pour les hô locals allow-recursion { internals; }; // Ne pas rendre publique la version de BIND version none; };
3.1.5 Fichier zones.apcb.lan
zone "apcb.lan" { type slave; file "/var/cache/bind/db.apcb.lan"; masters { 192.168.0.1; }; // Aucun forwarder pour cette zone forwarders {}; }; zone "0.168.192.in-addr.arpa" { type slave; file "/var/cache/bind/db.apcb.lan.inv"; masters { 192.168.0.1; }; // Aucun forwarder pour cette zone forwarders {}; };
3.2 DCHP3 - dhcpd.conf
# Options diverses # ----------------------------------------------------------------------------- # Déclarer le serveur DHCP en tant que master authoritative; # Refuser les adressses mac en double deny duplicates; # Refuser les messages DHCPDECLINE indiquant un conflit réseau. ignore declines; # Enregistrer uniquement le nom d'hôte si le FQDN n'est pas géré par le # serveur ignore client-updates; # Définir le serveur de temps local option ntp-servers 192.168.0.1; # Gestion DNS # ----------------------------------------------------------------------------- # Lister les serveurs DNS pour le réseau option domain-name-servers 192.168.0.1, 192.168.0.253; # Mettre à jour les DNS à l'aide de DHCP ddns-update-style interim; ddns-updates on; # Charger la signature (TSIG) pour pouvoir autoriser les transactions avec BIND include "/etc/bind/ns-apcb-lan_rndc-key"; # Gestion du failover # ----------------------------------------------------------------------------- # La mise en place du failover permet de définir deux serveurs DHCPs afin de # gérer la continuité de services et l'équilibrage de charge # Ici, le serveur primaire est 192.168.0.1 et le secondaire 192.168.0.253 failover peer "dhcp_failover" { secondary; address 192.168.0.253; port 519; peer address 192.168.0.1; peer port 519; max-response-delay 30; max-unacked-updates 10; load balance max seconds 3; } # Déclaration à utiliser pour initialiser le failover # failover peer "dhcp_failover" state { # my state partner-down; # } # Définition des sous réseaux # ----------------------------------------------------------------------------- subnet 192.168.0.0 netmask 255.255.255.0 { # Lister les options du réseau option subnet-mask 255.255.255.0; option routers 192.168.0.253; option netbios-name-servers 192.168.0.1; option netbios-node-type 8; # Gestion de la zone DNS "apcb.lan" # ----------------------------------- # Associer un nom de domaine pour la zone option domain-name "apcb.lan"; # Gérer l'update DNS (le reverse est fait par défaut) ddns-domainname "apcb.lan"; # Définir les zones DNS que DHCP doit mettre à jour zone apcb.lan. { primary 192.168.0.1; key ns-apcb-lan_rndc-key; } zone 0.168.192.in-addr.arpa. { primary 192.168.0.1; key ns-apcb-lan_rndc-key; } # Gestion de la pool # ------------------------------ pool { failover peer "dhcp_failover"; deny dynamic bootp clients; range 192.168.0.80 192.168.0.160; default-lease-time 43200; max-lease-time 86400; } }
4 Démarrage des services
- Démarrez le serveur dhcp primaire avec le failover décommenté et démarrez un poste client afin de remplir la base.
- Démarrez le serveur dhcp secondaire avec le failover décommenté.
- Arrêtez le serveur primaire et commentez le failover.
- Démarrer le serveur primaire.
- Arrêtez le serveur secondaire et commentez le failover.
- Démarrer le serveur secondaire.