Einrichten eines DHCP-Servers auf Rocky mit Kea: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 132: 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-server
+
* 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)
  

Version vom 20. Juli 2026, 10:14 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-server.service