KEA DHCP - Netzwerk und Serveradministration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „*Einrichten eines DHCP-Servers auf Debian mit Kea *Einrichten eines DHCP-Servers auf Rocky mit Kea“)
Markierung: Ersetzt
 
(21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
−
== Einrichten eines DHCP-Servers auf Debian mit Kea ==
+
*[[Einrichten eines DHCP-Servers auf Debian mit Kea]]
−
 
+
*[[Einrichten eines DHCP-Servers auf Rocky mit Kea]]
−
=== Installation ===
 
−
 
 
−
* sudo apt install kea-dhcp4-server
 
−
 
 
−
=== Entfernen aus Apparmor ===
 
−
;Verzeichnis für Deaktivierung sicherstellen
 
−
*mkdir -p /etc/apparmor.d/disable
 
−
;Symlink erstellen (verhindert das Laden beim Booten)
 
−
*ln -sf /etc/apparmor.d/usr.sbin.kea-dhcp4 /etc/apparmor.d/disable/
 
−
;AppArmor Dienst anweisen, Profile neu zu laden (das entfernt die deaktivierten)
 
−
*systemctl reload apparmor
 
−
 
 
−
=== Konfiguration der zu vergebenden Netzwerkparameter ===
 
−
 
 
−
Die Hauptkonfigurationsdatei von Kea ist im JSON-Format
 
−
* sudo vim /etc/kea/kea-dhcp4.conf
 
−
 
 
−
<syntaxhighlight lang="json">
 
−
{
 
−
  "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.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"
 
−
      }
 
−
    ]
 
−
  }
 
−
}
 
−
</syntaxhighlight>
 
−
 
 
−
=== 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
 
−
 
 
−
<pre>
 
−
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))
 
−
</pre>
 
−
 
 
−
=== 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 ====
 
−
 
 
−
<syntaxhighlight lang="json">
 
−
"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"
 
−
  }
 
−
]
 
−
</syntaxhighlight>
 
−
 
 
−
==== 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 ====
 
−
 
 
−
<syntaxhighlight lang="json">
 
−
{
 
−
  "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"
 
−
          }
 
−
        ]
 
−
      }
 
−
    ]
 
−
  }
 
−
}
 
−
</syntaxhighlight>
 
−
 
 
−
==== Beispiel: Subnet überschreibt globale Option ====
 
−
 
 
−
<syntaxhighlight lang="json">
 
−
{
 
−
  "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"
 
−
          }
 
−
        ]
 
−
      }
 
−
    ]
 
−
  }
 
−
}
 
−
</syntaxhighlight>
 
−
 
 
−
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.
 

Aktuelle Version vom 16. Juli 2026, 15:03 Uhr