27 April 2019

Dieses Tutorial beschreibt ein dhcpd-failover Setup mit folgenden Netzwerk:
Table 1. Table Title

Netzwerk:

10.0.0.0/24

Default GW:

10.0.0.1

DHCP-Server 1:

10.0.0.1

DHCP-Server 2:

10.0.0.2

DNS-Server 1:

10.0.0.1

DNS-Server 2:

10.0.0.2

NTP-Server:

NTP.lan.local

DHCP Bereich:

10.0.0.10 - 10.0.0.254

Domain:

lan.local

dhcpd installieren

Debian

$ apt-get install isc-dhcp-server

RH/CentOS

$ yum install dhcp

Failover-Konfiguration für Primary DHCP

/etc/dhcp/dhcpd.conf

failover peer "failover-dhcp" {
  primary;
  address 10.0.0.1; 				# eigene Adresse
  port 647;							# lokaler port für sync (tcp)
  peer address 10.0.0.2;			# peer Adresse
  peer port 647;					# remote port für sync (tcp)
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;						# maximum client lead time
  split 128; # 128 is balanced; use 255 if primary is 100% responsible until failure
  load balance max seconds 3;
}

include "/etc/dhcp/dhcpd.master";

Failover-Konfiguration für Secondary DHCP

/etc/dhcp/dhcpd.conf

failover peer "failover-dhcp" {
  secondary;
  address 10.0.0.2;
  port 647;
  peer address 10.0.0.1;
  peer port 647;
  max-response-delay 60;
  max-unacked-updates 10;
  load balance max seconds 3;
}

include "/etc/dhcp/dhcpd.master";

Anmerkung: mclt und split dürfen auf dem secondary nicht gesetzt werden.

DHCP Konfiguration für beide Systeme

Die nachfolgende DHCP Konfiguration muss auf beiden Servern identisch sein. Etwaige Änderungen können realtiv einfach z.B. mit scp synchronisiert werden.

/etc/dhcp/dhcpd.master

ddns-update-style none;
default-lease-time 6000;
max-lease-time 28800;
authoritative;
log-facility local7;

subnet 10.0.0.0 netmask 255.255.255.0 {
    option routers 10.0.0.1;
    option domain-name-servers 10.0.0.1, 10.0.0.2;
    option broadcast-address 10.0.0.255;
    option subnet-mask 255.255.255.0;
    option domain-name "lan.local";
    option domain-search "lan.local";
    option time-servers ntp.lan.local;

    pool {
        failover peer "failover-dhcp";
        range 10.0.0.10 10.0.0.254;
    }
}

# Exemplarisches Beispiel für statische IP-Zuweisung
host server {
    hardware ethernet XX:XX:XX:XX:XX:XX;
    fixed-address 10.0.0.7;
    option host-name "server";
}

dhcpd auf beiden Systemen neustarten

Debian

$ systemctl restart isc-dhcp-server

RH/CentOS

$ systemctl restart dhcp