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.
