réseau · 8 min read · Nov 12, 2025

Comment configurer le basculement DHCP sur Centos 5.1

Comment configurer le basculement DHCP sur Centos 5.1

Version 1.0.0
Auteur : Andrew Colin Kissa

Introduction

Ce tutoriel vous guidera à travers la configuration du basculement DHCP sur CentOS 5.1 en utilisant le serveur DHCP ISC par défaut, cela peut facilement être adapté à toute autre distribution Linux. Vous aurez très probablement besoin du basculement dans des environnements où le temps d’arrêt du réseau ne peut pas être toléré. Mon domicile fonctionne avec une configuration DLNA, donc j’ai besoin que mes appareils puissent obtenir des paramètres réseau à tout moment.

Étant donné que DHCP et DNS vont souvent de pair, je vais configurer un serveur DNS local qui permet des mises à jour dynamiques, de sorte que les noms d’hôtes seront automatiquement mis à jour dans le DNS chaque fois qu’un bail est accordé à un client.

Ma configuration utilisera les éléments suivants, veuillez les remplacer pour refléter votre propre réseau.

  • Nom de domaine - home.topdog-software.com
  • Réseau - 192.168.1.0/24
  • Serveurs DHCP - 192.168.1.2,192.168.1.3
  • Passerelle - 192.168.1.254
  • Serveurs DNS - 192.168.1.2,192.168.1.3

Installer les paquets requis

  • DHCP # yum install dhcp -y
  • DNS # yum install bind bind-chroot caching-nameserver -y
  • NTP # yum install ntp -y

Configuration

DHCP

Sauvegardez votre configuration originale sur le Maître 192.168.1.2 :

Modifiez la configuration DHCP /etc/dhcpd.conf sur le maître 192.168.1.2 et ajoutez ce qui suit, lisez les commentaires pour comprendre les options :

authoritative;                                             # le serveur est autoritaire
option domain-name "home.topdog-software.com";             # le nom de domaine attribué
option domain-name-servers 192.168.1.2,192.168.1.3;        # serveurs de noms attribués
option netbios-name-servers 192.168.1.2;                   # serveurs netbios
allow booting;                                             # autoriser le démarrage sur le réseau
allow bootp;                                               # autoriser le démarrage
next-server 192.168.1.2;                                   # serveur TFTP pour le démarrage
filename "pxelinux.0";                                     # noyau pour le démarrage réseau
ddns-update-style interim;                                 # configurer les mises à jour DNS dynamiques
ddns-updates on;
ddns-domainname "home.topdog-software.com";                # nom de domaine pour les mises à jour DDNS
key rndckey {
        algorithm       hmac-md5;
        secret          "xxxxxxxxxx";                      # à obtenir dans le fichier /etc/rndc.key
}
zone home.topdog-software.com                              # zone directe à mettre à jour
{
        primary 127.0.0.1;                                 # mise à jour sur la machine locale
        key rndckey;                                       # clé à utiliser pour la mise à jour
}
zone 1.168.192.in-addr.arpa                                # zone inverse à mettre à jour
{
        primary 127.0.0.1;                                 # mise à jour sur la machine locale
        key rndckey;                                       # clé pour la mise à jour
}
failover peer "home-net" {                                 # configuration de basculement
         primary;                                          # Ceci est le primaire
         address 192.168.1.2;                              # adresse IP du primaire
         port 647;
         peer address 192.168.1.3;                         # adresse IP du pair
         peer port 647;
         max-response-delay 60;
         max-unacked-updates 10;
         mclt 3600;
         split 128;
         load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0                   # zone pour attribuer des adresses
{
        pool {
                failover peer "home-net";                  # pool pour les baux dhcp avec basculement bootp non autorisé 
                deny dynamic bootp clients;         
                option routers 192.168.1.254;
                range 192.168.1.25 192.168.1.50;
        }
        pool {                                             # accueillir nos clients bootp ici sans réplication et basculement
                option routers 192.168.1.254;
                range 192.168.1.51 192.168.1.55;
        }
        allow unknown-clients;
        ignore client-updates;
}

Sauvegardez votre configuration originale sur l’Esclave 192.168.1.3 :

Modifiez la configuration DHCP /etc/dhcpd.conf sur l’esclave 192.168.1.3 et ajoutez ce qui suit, lisez les commentaires pour comprendre les options :

authoritative;                                             # le serveur est autoritaire
option domain-name "home.topdog-software.com";             # le nom de domaine attribué
option domain-name-servers 192.168.1.2,192.168.1.3;        # serveurs de noms attribués
option netbios-name-servers 192.168.1.2;                   # serveurs netbios
allow booting;                                             # autoriser le démarrage sur le réseau
allow bootp;                                               # autoriser le démarrage
next-server 192.168.1.2;                                   # serveur TFTP pour le démarrage
filename "pxelinux.0";                                     # noyau pour le démarrage réseau
ddns-update-style interim;                                 # configurer les mises à jour DNS dynamiques
ddns-updates on;
ddns-domainname "home.topdog-software.com";                # nom de domaine pour les mises à jour DDNS
key rndckey {
        algorithm       hmac-md5;
        secret          "xxxxxxxxxx";                      # à obtenir dans le fichier /etc/rndc.key sur le maître
}
zone home.topdog-software.com                              # zone directe à mettre à jour
{
        primary 192.168.1.2;                               # mise à jour sur la machine locale
        key rndckey;                                       # clé à utiliser pour la mise à jour
}
zone 1.168.192.in-addr.arpa                                # zone inverse à mettre à jour
{
        primary 192.168.1.2;                               # mise à jour sur la machine locale
        key rndckey;                                       # clé pour la mise à jour
}
failover peer "home-net" {                                 # configuration de basculement
         secondary;                                        # Ceci est le secondaire
         address 192.168.1.3;                              # notre adresse IP
         port 647;
         peer address 192.168.1.2;                         # adresse IP du primaire
         peer port 647;
         max-response-delay 60;
         max-unacked-updates 10;
         mclt 3600;
         load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0                   # zone pour attribuer des adresses
{
        pool {
                failover peer "home-net";                  # pool pour les baux dhcp avec basculement bootp non autorisé 
                deny dynamic bootp clients;         
                option routers 192.168.1.254;
                range 192.168.1.25 192.168.1.50;
        }
        pool {                                             # accueillir nos clients bootp ici sans réplication et basculement
                option routers 192.168.1.254;
                range 192.168.1.51 192.168.1.55;
        }
        allow unknown-clients;
        ignore client-updates;
}

DNS

Sauvegardez la configuration Bind sur le maître :

 # cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.orig

Modifiez la configuration pour refléter la configuration ci-dessous.

options {
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
        query-source-v6 port 53;
        allow-query     { localhost; localnets; };
};
include "/etc/rndc.key";
include "/etc/named.rfc1912.zones";
zone "home.topdog-software.com" {
        type master;
        file "data/home.topdog-software.com.hosts";
        allow-transfer { 192.168.1.3; };
        allow-update { key "rndckey"; };
        allow-query { any; };
};
zone "1.168.192.in-addr.arpa" {
        type master;
        file "data/1.168.192.in-addr.arpa.hosts";
        allow-transfer { 192.168.1.3; };
        allow-update { key "rndckey"; };
        allow-query { any; };
};

Sauvegardez la configuration Bind sur l’esclave :

 # cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.orig

Modifiez la configuration pour refléter la configuration ci-dessous.

options {
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
        query-source-v6 port 53;
        allow-query     { localhost; localnets; };
};
include "/etc/rndc.key";
include "/etc/named.rfc1912.zones";
zone "home.topdog-software.com" {
        type slave;
        masters { 192.168.1.2; };
        file "data/home.topdog-software.com.hosts";
};
zone "1.168.192.in-addr.arpa" {
        type slave;
        masters { 192.168.1.2; };
        file "data/1.168.192.in-addr.arpa.hosts";
};

Créez les fichiers de zone sur le maître

  • /var/named/chroot/var/named/data/home.topdog-software.com.hosts $ORIGIN . $TTL 38400 home.topdog-software.com IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061629 ; numéro de série 10800 ; rafraîchir (3 heures) 3600 ; réessayer (1 heure) 604800 ; expirer (1 semaine) 38400 ; minimum (10 heures 40 minutes) ) NS ns1.home.topdog-software.com. NS ns2.home.topdog-software.com. ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3
  • /var/named/chroot/var/named/data/1.168.192.in-addr.arpa.hosts $ORIGIN . $TTL 38400 ; 10 heures 40 minutes 1.168.192.in-addr.arpa IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061644 ; numéro de série 10800 ; rafraîchir (3 heures) 3600 ; réessayer (1 heure) 604800 ; expirer (1 semaine) 38400 ; minimum (10 heures 40 minutes) ) NS ns1.home.topdog-software.com. NS ns2.home.topdog-software.com. 2 IN PTR ns1.home.topdog-software.com. 3 IN PTR ns2.home.topdog-software.com.

NTP

NTP est nécessaire car les deux serveurs DHCP doivent être synchronisés pour que le basculement ainsi que le DDNS puissent avoir lieu. Vous pouvez exécuter un serveur NTP complet si vous le souhaitez, je vais seulement vous fournir des instructions sur l’utilisation de cron pour synchroniser NTP avec un serveur NTP externe toutes les heures. Vous devez faire cela sur LES DEUX serveurs.

  • créez un fichier /etc/cron.hourly/timesync et ajoutez ce qui suit : #!/bin/bash # tpdate -s 0.rhel.pool.ntp.org
  • rendez le fichier exécutable et exécutez-le pour la première fois : # /etc/cron.hourly/timesync

Enfin

Eh bien, nous avons terminé, lançons les services et commençons les tests.

  • sur le maître : # service named start
  • sur l’esclave : # service named start

Vous devriez voir ce qui suit dans vos journaux sur le maître :

Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: Je passe de recover à startup
Jun 16 13:58:56 kudusoft dhcpd: démarrage dhcpd réussi
Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: Je passe de startup à recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: le pair passe de l'état inconnu à recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: demande de mise à jour complète du pair
Jun 16 13:59:12 kudusoft dhcpd: Message de demande de mise à jour envoyé à home-net
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: le pair passe de recover à recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: demande de mise à jour complète du pair
Jun 16 13:59:12 kudusoft dhcpd: Demande de mise à jour de home-net : envoi de la mise à jour
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: mise à jour du pair terminée.
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: Je passe de recover à recover-done
Jun 16 13:59:13 kudusoft dhcpd: Message de mise à jour envoyé à home-net
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: le pair passe de recover à recover-done
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: Je passe de recover-done à normal
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: le pair passe de recover-done à normal
Jun 16 13:59:14 kudusoft dhcpd: pool 914eb10 192.168.1/24 total 26  free 25  backup 0  lts -12
Jun 16 13:59:14 kudusoft dhcpd: pool 914eb10 192.168.1/24  total 26  free 25  backup 0  lts 12

Et sur l’esclave :

Jun 16 13:59:12 shaka dhcpd: Envoi sur   Socket/fallback/fallback-net
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: Je passe de recover à startup
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: le pair passe de l'état inconnu à recover
Jun 16 13:59:12 shaka dhcpd: démarrage dhcpd réussi
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: demande de mise à jour complète du pair
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: Je passe de startup à recover
Jun 16 13:59:12 shaka dhcpd: Message de demande de mise à jour envoyé à home-net
Jun 16 13:59:12 shaka dhcpd: Message de mise à jour envoyé à home-net
Jun 16 13:59:12 shaka dhcpd: Demande de mise à jour de home-net : rien en attente
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: le pair passe de recover à recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: mise à jour du pair terminée.
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: Je passe de recover à recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: le pair passe de recover-done à normal
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: Je passe de recover-done à normal
Jun 16 13:59:14 shaka dhcpd: pool 9d78ad8 192.168.1/24 total 26  free 25  backup 0  lts 12
Jun 16 13:59:14 shaka dhcpd: réponse du pool : 12 baux
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.