Networking · 8 min read · Nov 12, 2025
Come impostare il failover DHCP su Centos 5.1
Come impostare il failover DHCP su Centos 5.1
Versione 1.0.0
Autore: Andrew Colin Kissa
Introduzione
Questo tutorial ti guiderà nell’impostazione del failover DHCP su CentOS 5.1 utilizzando il server DHCP ISC predefinito, questo può essere facilmente adattato a qualsiasi altra distribuzione Linux. Avrai probabilmente bisogno del failover in ambienti in cui il tempo di inattività della rete non può essere tollerato. La mia casa sta eseguendo una configurazione DLNA, quindi ho bisogno che i miei dispositivi possano ottenere i parametri di rete in ogni momento.
Poiché DHCP e DNS spesso vanno di pari passo, configurerò un server DNS locale che consente aggiornamenti dinamici, in modo che i nomi host vengano aggiornati automaticamente nel DNS ogni volta che viene concessa una lease a un client.
La mia configurazione utilizzerà i seguenti parametri, ti prego di sostituire per riflettere la tua rete.
- Nome di dominio - home.topdog-software.com
- Rete - 192.168.1.0/24
- Server DHCP - 192.168.1.2,192.168.1.3
- Gateway - 192.168.1.254
- Server DNS - 192.168.1.2,192.168.1.3
Installa i pacchetti richiesti
- DHCP
# yum install dhcp -y - DNS
# yum install bind bind-chroot caching-nameserver -y - NTP
# yum install ntp -y
Configurazione
DHCP
Esegui il backup della tua configurazione originale sul Master 192.168.1.2:
Modifica la configurazione DHCP /etc/dhcpd.conf sul master 192.168.1.2 e aggiungi quanto segue, leggi i commenti per comprendere le opzioni:
authoritative; # il server è autorevole
option domain-name "home.topdog-software.com"; # il nome di dominio emesso
option domain-name-servers 192.168.1.2,192.168.1.3; # server dei nomi emessi
option netbios-name-servers 192.168.1.2; # server netbios
allow booting; # consenti l'avvio sulla rete
allow bootp; # consenti l'avvio
next-server 192.168.1.2; # server TFTP per l'avvio
filename "pxelinux.0"; # kernel per l'avvio di rete
ddns-update-style interim; # imposta aggiornamenti DNS dinamici
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # nome di dominio per aggiornamenti DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # ottieni dal file /etc/rndc.key
}
zone home.topdog-software.com # zona in avanti da aggiornare
{
primary 127.0.0.1; # aggiornamento sulla macchina locale
key rndckey; # chiave da utilizzare per l'aggiornamento
}
zone 1.168.192.in-addr.arpa # zona inversa da aggiornare
{
primary 127.0.0.1; # aggiornamento sulla macchina locale
key rndckey; # chiave per l'aggiornamento
}
failover peer "home-net" { # configurazione del failover
primary; # Questo è il primario
address 192.168.1.2; # indirizzo IP del primario
port 647;
peer address 192.168.1.3; # indirizzo IP del peer
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 # zona da emettere indirizzi
{
pool {
failover peer "home-net"; # pool per lease dhcp con failover bootp non consentito
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # accomodare i nostri client bootp qui senza replica e failover
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
Esegui il backup della tua configurazione originale sul Slave 192.168.1.3:
Modifica la configurazione DHCP /etc/dhcpd.conf sullo slave 192.168.1.3 e aggiungi quanto segue, leggi i commenti per comprendere le opzioni:
authoritative; # il server è autorevole
option domain-name "home.topdog-software.com"; # il nome di dominio emesso
option domain-name-servers 192.168.1.2,192.168.1.3; # server dei nomi emessi
option netbios-name-servers 192.168.1.2; # server netbios
allow booting; # consenti l'avvio sulla rete
allow bootp; # consenti l'avvio
next-server 192.168.1.2; # server TFTP per l'avvio
filename "pxelinux.0"; # kernel per l'avvio di rete
ddns-update-style interim; # imposta aggiornamenti DNS dinamici
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # nome di dominio per aggiornamenti DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # ottieni dal file /etc/rndc.key sul master
}
zone home.topdog-software.com # zona in avanti da aggiornare
{
primary 192.168.1.2; # aggiornamento sulla macchina locale
key rndckey; # chiave da utilizzare per l'aggiornamento
}
zone 1.168.192.in-addr.arpa # zona inversa da aggiornare
{
primary 192.168.1.2; # aggiornamento sulla macchina locale
key rndckey; # chiave per l'aggiornamento
}
failover peer "home-net" { # configurazione del failover
secondary; # Questo è il secondario
address 192.168.1.3; # il nostro indirizzo IP
port 647;
peer address 192.168.1.2; # indirizzo IP del primario
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 # zona da emettere indirizzi
{
pool {
failover peer "home-net"; # pool per lease dhcp con failover bootp non consentito
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # accomodare i nostri client bootp qui senza replica e failover
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
DNS
Esegui il backup della configurazione di Bind sul master:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origModifica la configurazione per riflettere la configurazione sottostante.
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; };
};
Esegui il backup della configurazione di Bind sullo slave:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origModifica la configurazione per riflettere la configurazione sottostante.
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";
};
Crea i file di zona sul master
- /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 ; serial 10800 ; refresh (3 ore) 3600 ; retry (1 ora) 604800 ; expire (1 settimana) 38400 ; minimum (10 ore 40 minuti) ) 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 ore 40 minuti 1.168.192.in-addr.arpa IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061644 ; serial 10800 ; refresh (3 ore) 3600 ; retry (1 ora) 604800 ; expire (1 settimana) 38400 ; minimum (10 ore 40 minuti) ) 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 è necessario perché i due server DHCP devono essere sincronizzati per il failover e per il DDNS. Puoi eseguire un server NTP completo se lo desideri, ti fornirò solo istruzioni su come utilizzare cron per sincronizzare NTP con un server NTP esterno ogni ora. Devi fare questo su ENTRAMBI i server.
- crea un file /etc/cron.hourly/timesync e aggiungi quanto segue:
#!/bin/bash # tpdate -s 0.rhel.pool.ntp.org - rendi il file eseguibile ed eseguilo per la prima volta:
# /etc/cron.hourly/timesync
Infine
Bene, abbiamo finito, accendiamo i servizi e iniziamo a testare.
- sul master: # service named start
- sullo slave: # service named start
Dovresti vedere quanto segue nei tuoi log sul master:
Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: I move from recover to startup
Jun 16 13:58:56 kudusoft dhcpd: dhcpd startup succeeded
Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: I move from startup to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer moves from unknown-state to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 kudusoft dhcpd: Sent update request all message to home-net
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer moves from recover to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 kudusoft dhcpd: Update request all from home-net: sending update
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer update completed.
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: I move from recover to recover-done
Jun 16 13:59:13 kudusoft dhcpd: Sent update done message to home-net
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: peer moves from recover to recover-done
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: I move from recover-done to normal
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: peer moves from recover-done to 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
E sullo slave:
Jun 16 13:59:12 shaka dhcpd: Sending on Socket/fallback/fallback-net
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: I move from recover to startup
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: peer moves from unknown-state to recover
Jun 16 13:59:12 shaka dhcpd: dhcpd startup succeeded
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: I move from startup to recover
Jun 16 13:59:12 shaka dhcpd: Sent update request all message to home-net
Jun 16 13:59:12 shaka dhcpd: Sent update done message to home-net
Jun 16 13:59:12 shaka dhcpd: Update request all from home-net: nothing pending
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: peer moves from recover to recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: peer update completed.
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: I move from recover to recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: peer moves from recover-done to normal
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: I move from recover-done to 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: pool response: 12 leases
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.