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 `wide-dhcpv6-relay`. Es gibt keine Konfigurationsdatei, daher müssen Sie die Konfiguration direkt beim Start des Dienstes über die Kommandozeile angeben.
Starten Sie den `wide-dhcpv6-relay`-Dienst mit den entsprechenden Optionen:
sudo wide-dhcpv6-relay -i enp0s9.21 -o enp0s9.22 -u 2a02:24d8:71:3036::110
- -i: Das Interface, auf dem der DHCPv6-Relay-Agent Anfragen entgegennimmt (`enp0s9.21`).
- -o: Das Interface, über das die Anfragen an den DHCPv6-Server weitergeleitet werden (`enp0s9.22`).
- -u: Die IPv6-Adresse des DHCPv6-Servers (`2a02:24d8:71:3036::110`).
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 `wide-dhcpv6-relay` gibt, erstellen Sie eine eigene Unit-Datei:
sudo nano /etc/systemd/system/wide-dhcpv6-relay.service
Inhalt der Datei:
[Unit] Description=WIDE DHCPv6 Relay After=network.target [Service] ExecStart=/usr/sbin/wide-dhcpv6-relay -i enp0s9.21 -o enp0s9.22 -u 2a02:24d8:71:3036::110 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 wide-dhcpv6-relay.service sudo systemctl start wide-dhcpv6-relay.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 wide-dhcpv6-relay.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 wide-dhcpv6-relay
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 `wide-dhcpv6-relay` direkt über die Kommandozeile konfiguriert und als eigener Systemd-Dienst gestartet.