KEA DHCP - Netzwerk und Serveradministration: Unterschied zwischen den Versionen
| Zeile 27: | Zeile 27: | ||
{ | { | ||
"name": "domain-name-servers", | "name": "domain-name-servers", | ||
| − | "data": "10.88. | + | "data": "10.88.2XX.21" |
}, | }, | ||
{ | { | ||
"name": "domain-name", | "name": "domain-name", | ||
| − | "data": " | + | "data": "it2XX.int" |
}, | }, | ||
{ | { | ||
"name": "domain-search", | "name": "domain-search", | ||
| − | "data": " | + | "data": "it2XX.int, example.com" |
} | } | ||
], | ], | ||
| Zeile 41: | Zeile 41: | ||
"subnet4": [ | "subnet4": [ | ||
{ | { | ||
| − | "subnet": "172.16. | + | "subnet": "172.16.2XX.0/24", |
"pools": [ | "pools": [ | ||
{ | { | ||
| − | "pool": "172.16. | + | "pool": "172.16.2XX.50 - 172.16.2XX.100" |
} | } | ||
], | ], | ||
| Zeile 56: | Zeile 56: | ||
{ | { | ||
"hw-address": "aa:bb:cc:dd:ee:ff", | "hw-address": "aa:bb:cc:dd:ee:ff", | ||
| − | "ip-address": "172.16. | + | "ip-address": "172.16.2XX.10", |
| − | "hostname": " | + | "hostname": "client" |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
] | ] | ||
Version vom 30. März 2026, 11:11 Uhr
Einrichten eines DHCP-Servers auf Debian mit Kea
Installation
- sudo apt install kea-dhcp4-server
Konfiguration der zu vergebenden Netzwerkparameter
Die Hauptkonfigurationsdatei von Kea ist im JSON-Format
- sudo vim /etc/kea/kea-dhcp4.conf
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "enp0s3" ]
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/kea-leases4.csv"
},
"valid-lifetime": 600,
"max-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, example.com"
}
],
"subnet4": [
{
"subnet": "172.16.2XX.0/24",
"pools": [
{
"pool": "172.16.2XX.50 - 172.16.2XX.100"
}
],
"option-data": [
{
"name": "routers",
"data": "172.16.1XX.1"
}
],
"reservations": [
{
"hw-address": "aa:bb:cc:dd:ee:ff",
"ip-address": "172.16.2XX.10",
"hostname": "client"
}
]
}
],
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp4.log"
}
],
"severity": "INFO"
}
]
}
}
Dienst starten und überprüfen
Konfiguration testen
- sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
Dienst mit der neuen Konfiguration starten und überprüfen
- sudo systemctl restart kea-dhcp4-server
- sudo systemctl status kea-dhcp4-server
Dienst beim Systemstart automatisch aktivieren
- sudo systemctl enable kea-dhcp4-server
Kontrolle ob der Port geöffnet ist
- ss -lnup
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
UNCONN 0 0 0.0.0.0:67 0.0.0.0:* users:(("kea-dhcp4",pid=XXXX,fd=X))
Logs
Ab Debian 12
Die letzten 100 Zeilen und neue Nachrichten anschauen
- journalctl -fn100 -u kea-dhcp4-server
Alternativ die Kea-spezifische Logdatei verwenden
- tail -f /var/log/kea/kea-dhcp4.log
Lease-Verwaltung
Aktive Leases anzeigen
- sudo cat /var/lib/kea/dhcp4.leases
Oder mit dem Kea Shell Tool (falls installiert)
- sudo apt install kea-ctrl-agent
Statische IP-Adressen (Reservierungen)
Statische IP-Adressen werden in Kea als "reservations" innerhalb des Subnets definiert. Diese befinden sich bereits in der Hauptkonfiguration (siehe oben).
Beispiel für Reservierungen
"reservations": [
{
"hw-address": "aa:bb:cc:dd:ee:ff",
"ip-address": "172.16.1XX.10",
"hostname": "server1"
},
{
"hw-address": "11:22:33:44:55:66",
"ip-address": "172.16.1XX.11",
"hostname": "server2"
}
]
MAC-Adresse eines Geräts herausfinden
- ip link show
- oder für eine spezifische Schnittstelle:
- ip link show enp0s3
Hinweise zu Reservierungen
Die reservierten IP-Adressen sollten außerhalb des dynamischen Pools liegen Nach Änderungen an den Reservierungen muss der Dienst neu gestartet werden
- sudo systemctl restart kea-dhcp4-server
Alternativ können Reservierungen auch in einer separaten Datei gespeichert werden (siehe erweiterte Konfiguration)
DHCP Anfragen über die Kommandozeile
- apt install isc-dhcp-client
Bei den folgenden Befehlen kann man auch eine spezifische Netzwerkkarte angeben
Neue IP-Adresse anfragen
- sudo dhclient enp0s3
Lease der IP-Adresse freigeben
- sudo dhclient -r enp0s3
Wichtige Unterschiede zu ISC DHCP
Kea verwendet JSON-Konfiguration statt ISC-Format Die Lease-Datenbank kann in verschiedenen Backends gespeichert werden (memfile, MySQL, PostgreSQL) Kea bietet eine REST-API zur Verwaltung (über kea-ctrl-agent) Modernere Architektur mit besserer Performance bei vielen Clients
Konfigurationsprüfung
Vor jedem Neustart empfiehlt es sich, die Syntax zu prüfen
- sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
Globale vs. Subnet-spezifische Optionen
Hierarchie der Optionen
Kea unterstützt verschiedene Ebenen für DHCP-Optionen:
Globale Ebene - gelten für alle Subnetze (im Hauptbereich "Dhcp4")
Subnet-Ebene - gelten nur für ein bestimmtes Subnet
Pool-Ebene - gelten nur für einen bestimmten Pool
Host-Reservierung-Ebene - gelten nur für einen bestimmten Host
Spezifischere Optionen überschreiben allgemeinere Optionen.
Beispiel: Globale Optionen
{
"Dhcp4": {
"option-data": [
{
"name": "domain-name-servers",
"data": "10.88.1XX.21, 8.8.8.8"
},
{
"name": "domain-name",
"data": "it1XX.int"
},
{
"name": "domain-search",
"data": "it1XX.int, beispiel.de, firma.local"
}
],
"subnet4": [
{
"subnet": "172.16.1XX.0/24",
"option-data": [
{
"name": "routers",
"data": "172.16.1XX.1"
}
]
}
]
}
}
Beispiel: Subnet überschreibt globale Option
{
"Dhcp4": {
"option-data": [
{
"name": "domain-name-servers",
"data": "10.88.1XX.21"
}
],
"subnet4": [
{
"subnet": "172.16.1XX.0/24",
"option-data": [
{
"name": "routers",
"data": "172.16.1XX.1"
},
{
"name": "domain-name-servers",
"data": "172.16.1XX.53"
}
]
}
]
}
}
In diesem Beispiel verwendet das Subnet 172.16.1XX.0/24 den DNS-Server 172.16.1XX.53 statt des globalen 10.88.1XX.21.