DHCP-Relay-Server DualStack
Was ist ein DHCP-Relay?
DHCP-Relay ist eine Funktion, um DHCP über Netzgrenzen (Broadcastdomäne) hinaus nutzen zu können. Damit wird die Notwendigkeit der Bereitstellung eines DHCP-Servers in jedem Subnetz, in dem sich DHCP-Clients befinden, vermieden.
Die DHCP-Relay-Funktion wird meist durch den Router oder Server erbracht. Dabei werden client-seitig mittels Broadcast verschickte DHCP-Anfragen durch den DHCP-Relay empfangen und mittels Unicast einem oder mehreren DHCP-Servern zugestellt. Der DHCP-Relay-Agent wird funktional auf der Schnittstelle des Routers oder Servers platziert.
Installation
DHCP-Relay für IPv4
apt install isc-dhcp-relay
DHCP-Relay für IPv6
apt install wide-dhcpv6-relay
Konfiguration
Konfiguration für IPv4
Öffnen Sie die Konfigurationsdatei und tragen Sie die DHCP-Server sowie die verwendeten Interfaces ein:
cat /etc/default/isc-dhcp-relay
Beispielkonfiguration:
SERVERS="10.114.214.110" INTERFACES="enp0s9.21 enp0s9.22" OPTIONS=""
- SERVERS: Die IPv4-Adresse des DHCP-Servers, an den die Anfragen weitergeleitet werden.
- INTERFACES: Die Schnittstellen, auf denen der DHCP-Relay-Agent Anfragen entgegennimmt (`enp0s9.21` für die Clients) und weiterleitet (`enp0s9.22` zum DHCP-Server).
Konfiguration für IPv6
Für den DHCPv6-Relay verwenden Sie den `dhcp6relay`. Es gibt keine separate Konfigurationsdatei, daher müssen Sie die Konfiguration direkt beim Start des Dienstes über die Kommandozeile angeben.
Starten Sie den `dhcp6relay`-Dienst mit den entsprechenden Optionen:
sudo /usr/sbin/dhcp6relay -f -d enp0s9.21 -r enp0s9.22 -s 2a02:24d8:71:3036::101
- -f: Führt den Relay-Agenten im Vordergrund aus (nützlich zum Debuggen).
- -d: Aktiviert den Debug-Modus.
- enp0s9.21: Das Interface, auf dem der DHCPv6-Relay-Agent Anfragen entgegennimmt.
- -r enp0s9.22: Das Interface, über das die Anfragen an den DHCPv6-Server weitergeleitet werden.
- -s 2a02:24d8:71:3036::101: Die IPv6-Adresse des DHCPv6-Servers.
Start des DHCP-Relay-Agenten
Starten des DHCP-Relay für IPv4
systemctl start isc-dhcp-relay
Starten des DHCP-Relay für IPv6
Da es keine direkte Systemd-Unit für `dhcp6relay` gibt, erstellen Sie eine eigene Unit-Datei:
sudo nano /etc/systemd/system/dhcp6relay.service
Inhalt der Datei:
[Unit] Description=WIDE DHCPv6 Relay After=network.target [Service] ExecStart=/usr/sbin/dhcp6relay -f enp0s9.21 -r enp0s9.22 -s 2a02:24d8:71:3036::101 Restart=on-failure [Install] WantedBy=multi-user.target
Speichern und schließen Sie die Datei, dann aktivieren und starten Sie den Dienst:
sudo systemctl daemon-reload sudo systemctl enable dhcp6relay.service sudo systemctl start dhcp6relay.service
Status prüfen
Status des DHCP-Relay für IPv4
systemctl status isc-dhcp-relay.service
Status des DHCP-Relay für IPv6
systemctl status dhcp6relay.service
Neustart des DHCP-Relay-Agenten
Nach der Anpassung der Konfiguration muss der Relay-Agent neu gestartet werden.
Neustart des DHCP-Relay für IPv4
systemctl restart isc-dhcp-relay
Neustart des DHCP-Relay für IPv6
systemctl restart dhcp6relay.service
Zusammenfassung
Mit diesen Einstellungen wird der DHCP-Relay-Agent auf dem Linux-System so konfiguriert, dass er sowohl IPv4- als auch IPv6-DHCP-Anfragen vom Netzwerk `enp0s9.21` an den DHCP-Server im Netzwerk `enp0s9.22` weiterleitet. Für IPv4 wird `isc-dhcp-relay` verwendet, und für IPv6 wird `dhcp6relay` direkt über die Kommandozeile konfiguriert und als eigener Systemd-Dienst gestartet.