Einrichten eines DHCP-Servers auf Rocky mit Kea: Unterschied zwischen den Versionen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 97: | Zeile 97: | ||
==Der Client== | ==Der Client== | ||
| − | + | *Klont das client-template und nennt es client | |
| + | *Hängt den Client ins LAN | ||
| + | *Nach dem Booten ändern den Namen des client auf | ||
| + | *sudo hostnamectl set-hostname client.it2XX.int | ||
=== Logs === | === Logs === | ||
Die letzten 100 Zeilen und neue Nachrichten anschauen | Die letzten 100 Zeilen und neue Nachrichten anschauen | ||
| − | * journalctl -fn100 -u kea-dhcp4 | + | * journalctl -fn100 -u kea-dhcp4 |
Alternativ die Kea-spezifische Logdatei verwenden | Alternativ die Kea-spezifische Logdatei verwenden | ||
* tail -f /var/log/kea/kea-dhcp4.log | * tail -f /var/log/kea/kea-dhcp4.log | ||
| − | |||
| − | |||
| − | |||
| − | |||
=== Lease-Verwaltung === | === Lease-Verwaltung === | ||
| Zeile 133: | Zeile 132: | ||
Die reservierten IP-Adressen sollten '''außerhalb''' des dynamischen Pools liegen | Die reservierten IP-Adressen sollten '''außerhalb''' des dynamischen Pools liegen | ||
Nach Änderungen an den Reservierungen muss der Dienst neu gestartet werden | Nach Änderungen an den Reservierungen muss der Dienst neu gestartet werden | ||
| − | * sudo systemctl restart kea-dhcp4 | + | * sudo systemctl restart kea-dhcp4 |
Alternativ können Reservierungen auch in einer separaten Datei gespeichert werden (siehe erweiterte Konfiguration) | Alternativ können Reservierungen auch in einer separaten Datei gespeichert werden (siehe erweiterte Konfiguration) | ||
| Zeile 142: | Zeile 141: | ||
{ | { | ||
"hw-address": "08:00:27:5d:76:5d", | "hw-address": "08:00:27:5d:76:5d", | ||
| − | "ip-address": "172.26.2XX. | + | "ip-address": "172.26.2XX.10", |
"hostname": "client" | "hostname": "client" | ||
} | } | ||
| Zeile 166: | Zeile 165: | ||
* sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf | * sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf | ||
Neu starten | Neu starten | ||
| − | * sudo systemctl restart kea-dhcp4 | + | * sudo systemctl restart kea-dhcp4.service |
[[Kategorie:Linux]] | [[Kategorie:Linux]] | ||
[[Kategorie:Rocky Linux]] | [[Kategorie:Rocky Linux]] | ||
[[Kategorie:DHCP]] | [[Kategorie:DHCP]] | ||
Aktuelle Version vom 20. Juli 2026, 11:35 Uhr
Installation
Kea ist unter Rocky Linux nicht in den Standard-Repositories enthalten, sondern kommt über EPEL.
EPEL-Repository aktivieren (falls noch nicht geschehen):
- sudo dnf install epel-release
Kea-Pakete installieren:
- sudo dnf install kea
Firewall und SELinux freigeben
Anders als bei Debian/AppArmor gibt es unter Rocky kein AppArmor-Profil zu deaktivieren. Stattdessen müssen Firewall (firewalld) und ggf. SELinux berücksichtigt werden.
- DHCP-Dienst in firewalld dauerhaft freigeben
- sudo firewall-cmd --permanent --add-service=dhcp
- sudo firewall-cmd --reload
- SELinux-Status prüfen
- getenforce
- Falls SELinux Probleme bereitet (AVC-Denials), zunächst analysieren statt direkt zu deaktivieren
- sudo ausearch -m avc -ts recent
- sudo journalctl -t setroubleshoot
Am besten anschließend ebenfalls ein Reboot durchführen:
- sudo systemctl reboot
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": [
{
"id": 1,
"subnet": "172.26.2XX.0/24",
"pools": [ { "pool": "172.26.2XX.50 - 172.26.2XX.100" } ],
"option-data": [ { "name": "routers", "data": "172.26.2XX.1" } ],
"reservations": [
{ "hw-address": "aa:bb:cc:dd:ee:ff", "ip-address": "172.26.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
- sudo systemctl status kea-dhcp4
Dienst beim Systemstart automatisch aktivieren
- sudo systemctl enable kea-dhcp4
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))
Zusätzlich kann geprüft werden, ob firewalld den Dienst korrekt freigibt:
- sudo firewall-cmd --list-services
Der Client
- Klont das client-template und nennt es client
- Hängt den Client ins LAN
- Nach dem Booten ändern den Namen des client auf
- sudo hostnamectl set-hostname client.it2XX.int
Logs
Die letzten 100 Zeilen und neue Nachrichten anschauen
- journalctl -fn100 -u kea-dhcp4
Alternativ die Kea-spezifische Logdatei verwenden
- tail -f /var/log/kea/kea-dhcp4.log
Lease-Verwaltung
Aktive Leases anzeigen
- sudo cat /var/lib/kea/kea-leases4.csv
Oder mit dem Kea Control Agent (falls installiert)
- sudo dnf 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).
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
Alternativ können Reservierungen auch in einer separaten Datei gespeichert werden (siehe erweiterte Konfiguration)
Den Client Eintragen
"reservations": [
{
"hw-address": "08:00:27:5d:76:5d",
"ip-address": "172.26.2XX.10",
"hostname": "client"
}
]
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
Wichtige Unterschiede zu Debian
Kea-Pakete kommen über EPEL statt aus dem Standard-Repository Statt AppArmor-Profilen zu deaktivieren, wird der Dienst über firewalld freigegeben; SELinux-Kontexte (statt AppArmor-Profile) sind bei Zugriffsproblemen relevant Die Lease-Datei heißt bereits im Standardpfad kea-leases4.csv (kein manuelles Umbenennen nötig)
Konfigurationsprüfung
Vor jedem Neustart empfiehlt es sich, die Syntax zu prüfen
- sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
Neu starten
- sudo systemctl restart kea-dhcp4.service