Netzwerkkonfiguration · 7 min read · Nov 12, 2025
So richten Sie DHCP-Failover unter Centos 5.1 ein
So richten Sie DHCP-Failover unter Centos 5.1 ein
Version 1.0.0
Autor: Andrew Colin Kissa
Einführung
Dieses Tutorial führt Sie durch die Einrichtung von DHCP-Failover unter CentOS 5.1 mit dem Standard-ISC-DHCP-Server. Dies kann leicht an jede andere Linux-Distribution angepasst werden. Sie benötigen wahrscheinlich Failover in Umgebungen, in denen Ausfallzeiten des Netzwerks nicht toleriert werden können. Mein Zuhause läuft mit einem DLNA-Setup, sodass ich möchte, dass meine Geräte jederzeit Netzwerkparameter erhalten können.
Da DHCP und DNS oft Hand in Hand gehen, werde ich einen lokalen DNS-Server konfigurieren, der dynamische Updates ermöglicht, sodass Hostnamen automatisch an DNS aktualisiert werden, wann immer ein Lease an einen Client vergeben wird.
Meine Konfiguration verwendet die folgenden Einstellungen, bitte passen Sie sie an Ihr eigenes Netzwerk an.
- Domainname - home.topdog-software.com
- Netzwerk - 192.168.1.0/24
- DHCP-Server - 192.168.1.2,192.168.1.3
- Gateway - 192.168.1.254
- DNS-Server - 192.168.1.2,192.168.1.3
Installieren der erforderlichen Pakete
- DHCP
# yum install dhcp -y - DNS
# yum install bind bind-chroot caching-nameserver -y - NTP
# yum install ntp -y
Konfiguration
DHCP
Sichern Sie Ihre ursprüngliche Konfiguration auf dem Master 192.168.1.2:
Bearbeiten Sie die DHCP-Konfiguration /etc/dhcpd.conf auf dem Master 192.168.1.2 und fügen Sie Folgendes hinzu. Lesen Sie die Kommentare, um die Optionen zu verstehen:
authoritative; # Server ist autoritativ
option domain-name "home.topdog-software.com"; # der ausgegebene Domainname
option domain-name-servers 192.168.1.2,192.168.1.3; # ausgegebene Nameserver
option netbios-name-servers 192.168.1.2; # NetBIOS-Server
allow booting; # Erlauben Sie das Booten über das Netzwerk
allow bootp; # Erlauben Sie das Booten
next-server 192.168.1.2; # TFTP-Server für das Booten
filename "pxelinux.0"; # Kernel für das Netzwerk-Booten
ddns-update-style interim; # Einrichten dynamischer DNS-Updates
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # Domainname für DDNS-Updates
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # aus der Datei /etc/rndc.key erhalten
}
zone home.topdog-software.com # Vorwärtszone zum Aktualisieren
{
primary 127.0.0.1; # Aktualisierung auf der lokalen Maschine
key rndckey; # Schlüssel zur Verwendung für die Aktualisierung
}
zone 1.168.192.in-addr.arpa # Rückwärtszone zum Aktualisieren
{
primary 127.0.0.1; # Aktualisierung auf der lokalen Maschine
key rndckey; # Schlüssel für die Aktualisierung
}
failover peer "home-net" { # Failover-Konfiguration
primary; # Dies ist der Primäre
address 192.168.1.2; # Primäre IP-Adresse
port 647;
peer address 192.168.1.3; # IP-Adresse des Peers
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 zur Ausgabe von Adressen
{
pool {
failover peer "home-net"; # Pool für DHCP-Leases mit Failover, Bootp nicht erlaubt
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # Unterbringung unserer Bootp-Clients hier, keine Replikation und Failover
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
Sichern Sie Ihre ursprüngliche Konfiguration auf dem Slave 192.168.1.3:
Bearbeiten Sie die DHCP-Konfiguration /etc/dhcpd.conf auf dem Slave 192.168.1.3 und fügen Sie Folgendes hinzu. Lesen Sie die Kommentare, um die Optionen zu verstehen:
authoritative; # Server ist autoritativ
option domain-name "home.topdog-software.com"; # der ausgegebene Domainname
option domain-name-servers 192.168.1.2,192.168.1.3; # ausgegebene Nameserver
option netbios-name-servers 192.168.1.2; # NetBIOS-Server
allow booting; # Erlauben Sie das Booten über das Netzwerk
allow bootp; # Erlauben Sie das Booten
next-server 192.168.1.2; # TFTP-Server für das Booten
filename "pxelinux.0"; # Kernel für das Netzwerk-Booten
ddns-update-style interim; # Einrichten dynamischer DNS-Updates
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # Domainname für DDNS-Updates
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # aus der Datei /etc/rndc.key auf dem Master erhalten
}
zone home.topdog-software.com # Vorwärtszone zum Aktualisieren
{
primary 192.168.1.2; # Aktualisierung auf der lokalen Maschine
key rndckey; # Schlüssel zur Verwendung für die Aktualisierung
}
zone 1.168.192.in-addr.arpa # Rückwärtszone zum Aktualisieren
{
primary 192.168.1.2; # Aktualisierung auf der lokalen Maschine
key rndckey; # Schlüssel für die Aktualisierung
}
failover peer "home-net" { # Failover-Konfiguration
secondary; # Dies ist der Sekundäre
address 192.168.1.3; # unsere IP-Adresse
port 647;
peer address 192.168.1.2; # IP-Adresse des Primären
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 zur Ausgabe von Adressen
{
pool {
failover peer "home-net"; # Pool für DHCP-Leases mit Failover, Bootp nicht erlaubt
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # Unterbringung unserer Bootp-Clients hier, keine Replikation und Failover
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
DNS
Sichern Sie die Bind-Konfiguration auf dem Master:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origBearbeiten Sie die Konfiguration, um die folgende Konfiguration widerzuspiegeln.
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; };
};
Sichern Sie die Bind-Konfiguration auf dem Slave:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origBearbeiten Sie die Konfiguration, um die folgende Konfiguration widerzuspiegeln.
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";
};
Erstellen Sie die Zonen-Dateien auf dem 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 Stunden) 3600 ; retry (1 Stunde) 604800 ; expire (1 Woche) 38400 ; minimum (10 Stunden 40 Minuten) ) 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 Stunden 40 Minuten 1.168.192.in-addr.arpa IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061644 ; serial 10800 ; refresh (3 Stunden) 3600 ; retry (1 Stunde) 604800 ; expire (1 Woche) 38400 ; minimum (10 Stunden 40 Minuten) ) 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 ist erforderlich, da die beiden DHCP-Server synchronisiert sein müssen, damit das Failover sowie DDNS stattfinden können. Sie können einen vollwertigen NTP-Server betreiben, wenn Sie möchten. Ich werde Ihnen nur Anweisungen geben, wie Sie cron verwenden, um NTP jede Stunde mit einem externen NTP-Server zu synchronisieren. Sie müssen dies auf BEIDEN Servern tun.
- Erstellen Sie eine Datei /etc/cron.hourly/timesync und fügen Sie Folgendes hinzu:
#!/bin/bash # tpdate -s 0.rhel.pool.ntp.org - Machen Sie die Datei ausführbar und führen Sie sie zum ersten Mal aus:
# /etc/cron.hourly/timesync
Schließlich
Nun sind wir fertig, lassen Sie uns die Dienste starten und mit dem Testen beginnen.
- Auf dem Master: # service named start
- Auf dem Slave: # service named start
Sie sollten Folgendes in Ihren Protokollen auf dem Master sehen:
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
Und auf dem 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
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.