1 Installation Serveur DHCP failover Ubuntu 12.04 LTS Le DHCP est utilisé pour configurer automatiquement les périphériques supportant le protocole IP afin qu'ils puissent communiquer sur le réseau. La défaillance d'un serveur DHCP peut complètement paralyser la connectivité au sein d'un réseau d'entreprise. Ainsi les hôtes ou clients DHCP perdent leur capacité à communiquer avec le reste du réseau. Une telle panne peut entrainer une perte considérable de productivité et un gros manque à gagner. Si le réseau dispose d'une infrastructure Unix, il y a de forte chance qu'il utilise le serveur DHCP de l'internet Systems Consortium (ISC), qui est largement disponible sur les systèmes Linux. Le serveur ISC DHCP offre des fonctionnalités de basculement et répartition de charge (failover and loadbalancing) qui permettent aux administrateurs de réseau d'offrir un service DHCP plus robuste et de haute disponibilité.
2 Installation Installer le paquet isc-dhcp-server. # apt-get install isc-dhcp-server Le fichier etc/default/isc-dhcp-server se créé. Il faut maintenant éditer ce fichier pour choisir sur quelle interface le serveur DHCP va écouter. Ici eth0. # vim /etc/default/isc-dhcp-server
3 Configuration du serveur primaire Editer le fichier dhcpd.conf (faites en une copie au préalable) et configurer le comme ci-dessous. # Paramètrage du failover du DHCP maître failover peer "dhcpsim" { # Déclarece serveur comme maître primary; # Adresse du serveur maître address 172.20.0.10; # Port d écoute du serveur maître port 647; # Adresse du serveur esclave peer address 172.20.0.12; # Port d écoute du serveur esclave peer port 647; # Temps de non réponse du serveur esclave max-response-delay 30; max-unacked-updates 10; # Temps maximum pendant lequel le serveur peer peut renouveler des requêtes après avoir perdu contact avec son partenaire mclt 1800; # Répartition des plages d adresses split 128; # Durée max avant de décharger la requête vers le pair } load balance max seconds 3;
4 Configuration du serveur secondaire Editer le fichier dhcpd.conf (faites en une copie au préalable) et configurer le comme ci-dessous. # Paramètrage du failover du DHCP esclave failover peer "dhcpsim" { # Déclare ce serveur comme esclave secondary; # Adresse du serveur esclave address 172.20.0.12; # Port d écoute du serveur esclave port 647; # Adresse du serveur maître peer address 172.20.0.10; # Port d écoute du serveur maître peer port 647; # Temps de non réponse en seconde max-response-delay 30; # Nombre de mise à jour avant de décharger la requête vers le pair max-unacked-updates 10; # Durée max avant de décharger la requête vers le pair load balance max seconds 3;} Les directives mclt et split ne sont déclarées que dans le fichier de failover du serveur primaire.
5 Primary: permet d'informer le serveur DHCP local qu'il est primaire de la paire failover; secondary: permet d'informer le serveur DHCP local qu'il est le secondaire de la paire failover; address: permet de déclarer l'adresse IP du serveur DHCP local; port: permet de déclarer le port d'écoute du serveur DHCP local; peeraddress: permet de déclarer l'adresse IP du serveur Pair; peer port : Permet de déclarer le port d'écoute du serveur Pair ; max-response-delay: temps maximum de non réponse avant de considérer le pair en échec; max-unacked-updates: nombre de non mises à jour maximum avant de considérer le pair en échec; load balance max seconds: durée maximale avant de décharger les requêtes vers le pair mclt: pour Maximum Client Lead Time, ne doit être spécifié que sur le primaire. C'est la période de temps pendant laquelle un bail peut être renouvelé par l'un des pairs après avoir perdu contact avec son partenaire. Nous pourrons le comparer à la directive max-lease-time, vu du cote du client DHCP; split: Les valeurs autorisées sont comprises entre 0 et 255, dont la plus raisonnable est de 128. Dans ce cas chaque serveur disposera de la moitié des adresses disponible dans le pool. Implémentation du Failover # Paramètrage de la configuration à distribuer aux postes clients subnet 172.20.0.0 netmask 255.255.0.0 { pool { # Indique la configuration du failover failoverpeer "dhcpsim"; # Plage d'adresses IP distribuées range 172.20.0.210 172.20.0.219; # Adresse broadcast sur laquelle le client va émettre pour réclamer une IP au DHCP option broadcast-address 172.20.255.255; # Passerelle par défaut option routers 172.20.0.254; # Serveur(s) DNS que le client doit utiliser option domain-name-servers 172.16.122.240; # Domaine qui sera donné au client option domain-name "labo.sio"; # Durée du bail (24h) default-lease-time 86400; # Durée max du bail max-lease-time 7200; } }
6 Sur le serveur primaire et secondaire, ajouter les lignes ci-dessus dans le fichier dhcpd.conf afin que le failover soit pris en compte. Pour vérifier que la redondance fonctionne, il suffit de couper le serveur primaire. En regardant dans les fichiers de log (tail f /var/log/syslog) on remarque que le serveur primaire envoie les baux au secondaire et ainsi les clients ont toujours accès au réseau.