KEA DHCP-Relay-Server - Netzwerk und Serveradministration
Zur Navigation springen
Zur Suche springen
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 selbst 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 platziert.
DHCP-Ablauf mit Relay (giaddr = Gateway IP Address)
- Der Client sendet einen DHCPDISCOVER als Broadcast (0.0.0.0 → 255.255.255.255)
- Der Relay-Agent empfängt das Paket auf dem Client-Interface (z. B. enp0s8)
- Der Relay-Agent setzt das Feld giaddr auf seine eigene IP-Adresse im Client-Netz (z. B. 10.88.2XX.1)
- Der Relay-Agent sendet die Anfrage per Unicast an den DHCP-Server
- Der DHCP-Server verwendet das giaddr-Feld zur Auswahl des passenden Subnetzes
- Der DHCP-Server antwortet an den Relay-Agent zurück
- Der Relay-Agent sendet die Antwort wieder als Unicast an den Client.
Hinweis zu DHCP-Relay-Agents
- Der klassische ISC DHCP Server ist seit Ende 2022 End-of-Life (EOL).
- Das zugehörige Werkzeug isc-dhcp-relay wird jedoch aufgrund seiner hohen Stabilität und einfachen Handhabung weiterhin in vielen Projekten eingesetzt.
- Kea DHCP selbst bietet keinen eigenen Relay-Agent an und setzt auf externe Lösungen.
- Alternativen:
- dnsmasq: Ein leichtgewichtiger Service, der auch als DHCP-Relay fungieren kann.
- Standard-Relays: Viele Router und Layer-3-Switches bringen eigene Relay-Funktionen ("IP-Helper") mit.
Vorarbeiten
- Der Kea DHCP Server muss die Netze hinter dem Router bedienen
- Der DHCP-Relay-Agent setzt im DHCP-Request das sogenannte giaddr-Feld (Gateway IP Address)
- Der Kea-Server verwendet dieses Feld, um das passende Subnetz auszuwählen
Netze einfügen auf dem Kea DHCP Server
- sudo vim /etc/kea/kea-dhcp4.conf
- Mehrere Subnetze werden im subnet4-Array definiert:
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "enp0s3" ]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea/kea4-ctrl-socket"
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/kea-leases4.csv"
},
"valid-lifetime": 7200,
"option-data": [
{ "name": "domain-name-servers", "data": "10.88.2XX.21" },
{ "name": "domain-name", "data": "it2XX.int" },
{ "name": "domain-search", "data": "it2XX.int" }
],
"subnet4": [
{
"id": 1,
"subnet": "172.26.2XX.0/24",
"pools": [ { "pool": "172.26.2XX.100 - 172.26.2XX.200" } ],
"option-data": [ { "name": "routers", "data": "172.26.2XX.1" } ],
"reservations": [
{ "hw-address": "08:00:27:5d:76:5d", "ip-address": "172.26.2XX.99", "hostname": "client" }
]
},
{
"id": 2,
"subnet": "10.88.2XX.0/24",
"pools": [ { "pool": "10.88.2XX.50 - 10.88.2XX.100" } ],
"option-data": [ { "name": "routers", "data": "10.88.2XX.1" } ]
},
{
"id": 3,
"subnet": "10.2XX.1.0/24",
"pools": [ { "pool": "10.2XX.1.50 - 10.2XX.1.100" } ],
"option-data": [ { "name": "routers", "data": "10.2XX.1.1" } ]
}
],
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [ { "output": "/var/log/kea/kea-dhcp4.log" } ],
"severity": "INFO"
}
]
}
}
Konfiguration testen und Dienst neu starten:
- sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
- sudo systemctl restart kea-dhcp4-server
Installation auf dem Router (Firewall)
- apt install isc-dhcp-relay
DHCP-Relay-Agent in der Praxis
- In diesem Kurs verwenden wir den isc-dhcp-relay.
- Begründung: Während Kombi-Lösungen wie dnsmasq viele Dienste (DNS, DHCP, TFTP) in einem Prozess vereinen, ist der ISC-Relay ein spezialisiertes Werkzeug.
- Er arbeitet auf Layer 3 (IP) und verändert gezielt DHCP-Felder (z. B. giaddr).
- Dadurch eignet er sich besonders gut, um das Protokollverhalten (insbesondere das giaddr-Feld und die Umwandlung von Broadcast zu Unicast) im Netzwerk-Monitor (tcpdump/Wireshark) nachzuvollziehen.
Hinweis zur Software-Wahl: Obwohl der ISC-DHCP-Server (Dienst für die Adressvergabe) End-of-Life ist, bleibt das Relay-Modul aufgrund seiner Zuverlässigkeit und der einfachen Konfiguration über Schnittstellen-Parameter ein etablierter und in der Praxis weit verbreiteter Standard.
Konfiguration von isc-dhcp-relay als DHCP-Relay
- Eine sehr simple Konfiguration
- cat /etc/default/isc-dhcp-relay
SERVERS="172.26.2XX.2" INTERFACES="enp0s8 enp0s9 enp0s10" OPTIONS=""
- Starten, Restart und enablen
- systemctl start isc-dhcp-relay
- systemctl restart isc-dhcp-relay
- systemctl enable isc-dhcp-relay
- Der DHCP Relay Agent muss auf Port 67 lauschen
- ss -lnup
- Logging
- journalctl -fu isc-dhcp-relay
- DHCP-Traffic auf dem Router mitschneiden
- sudo tcpdump -i enp0s8 -n port 67 or port 68
- Starten den Managment Client im DMZ Netz