KEA DHCP - Netzwerk und Servreadministration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Einrichten eines DHCP-Servers auf Debian mit Kea == === Installation === * sudo apt install kea-dhcp4-server === Konfiguration der zu vergebenden Netzwer…“)
 
 
(9 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 7: Zeile 7:
 
=== Konfiguration der zu vergebenden Netzwerkparameter ===
 
=== Konfiguration der zu vergebenden Netzwerkparameter ===
  
* Die Hauptkonfigurationsdatei von Kea ist im JSON-Format
+
Die Hauptkonfigurationsdatei von Kea ist im JSON-Format
 
* sudo vim /etc/kea/kea-dhcp4.conf
 
* sudo vim /etc/kea/kea-dhcp4.conf
  
Zeile 19: Zeile 19:
 
       "type": "memfile",
 
       "type": "memfile",
 
       "persist": true,
 
       "persist": true,
       "name": "/var/lib/kea/dhcp4.leases"
+
       "name": "/var/lib/kea/kea-leases4.csv"
 
     },
 
     },
 
     "valid-lifetime": 600,
 
     "valid-lifetime": 600,
 
     "max-valid-lifetime": 7200,
 
     "max-valid-lifetime": 7200,
 +
   
 +
    "option-data": [
 +
      {
 +
        "name": "domain-name-servers",
 +
        "data": "10.88.1XX.21"
 +
      },
 +
      {
 +
        "name": "domain-name",
 +
        "data": "it1XX.int"
 +
      },
 +
      {
 +
        "name": "domain-search",
 +
        "data": "it1XX.int, example.com"
 +
      }
 +
    ],
 +
   
 
     "subnet4": [
 
     "subnet4": [
 
       {
 
       {
Zeile 35: Zeile 51:
 
             "name": "routers",
 
             "name": "routers",
 
             "data": "172.16.1XX.1"
 
             "data": "172.16.1XX.1"
           },
+
           }
 +
        ],
 +
        "reservations": [
 
           {
 
           {
             "name": "domain-name-servers",
+
             "hw-address": "aa:bb:cc:dd:ee:ff",
             "data": "10.88.1XX.21"
+
             "ip-address": "172.16.1XX.10",
 +
            "hostname": "server1"
 
           },
 
           },
 
           {
 
           {
             "name": "domain-name",
+
             "hw-address": "11:22:33:44:55:66",
             "data": "it1XX.int"
+
            "ip-address": "172.16.1XX.11",
 +
             "hostname": "server2"
 
           }
 
           }
 
         ]
 
         ]
Zeile 64: Zeile 84:
 
=== Dienst starten und überprüfen ===
 
=== Dienst starten und überprüfen ===
  
* Konfiguration testen
+
Konfiguration testen
 
* sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
 
* sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
  
* Dienst mit der neuen Konfiguration starten und überprüfen
+
Dienst mit der neuen Konfiguration starten und überprüfen
 
* sudo systemctl restart kea-dhcp4-server
 
* sudo systemctl restart kea-dhcp4-server
 
* sudo systemctl status kea-dhcp4-server
 
* sudo systemctl status kea-dhcp4-server
  
* Dienst beim Systemstart automatisch aktivieren
+
Dienst beim Systemstart automatisch aktivieren
 
* sudo systemctl enable kea-dhcp4-server
 
* sudo systemctl enable kea-dhcp4-server
  
Zeile 87: Zeile 107:
 
==== Ab Debian 12 ====
 
==== Ab Debian 12 ====
  
* Die letzten 100 Zeilen und neue Nachrichten anschauen
+
Die letzten 100 Zeilen und neue Nachrichten anschauen
 
* journalctl -fn100 -u kea-dhcp4-server
 
* journalctl -fn100 -u kea-dhcp4-server
  
* 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 ===
  
* Aktive Leases anzeigen
+
Aktive Leases anzeigen
 
* sudo cat /var/lib/kea/dhcp4.leases
 
* sudo cat /var/lib/kea/dhcp4.leases
  
* Oder mit dem Kea Shell Tool (falls installiert)
+
Oder mit dem Kea Shell Tool (falls installiert)
 
* sudo apt install kea-ctrl-agent
 
* 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 ===
 
=== DHCP Anfragen über die Kommandozeile ===
  
 
* apt install isc-dhcp-client
 
* apt install isc-dhcp-client
* Bei den folgenden Befehlen kann man auch eine spezifische Netzwerkkarte angeben
+
Bei den folgenden Befehlen kann man auch eine spezifische Netzwerkkarte angeben
  
 
==== Neue IP-Adresse anfragen ====
 
==== Neue IP-Adresse anfragen ====
Zeile 116: Zeile 170:
 
=== Wichtige Unterschiede zu ISC DHCP ===
 
=== Wichtige Unterschiede zu ISC DHCP ===
  
* Kea verwendet JSON-Konfiguration statt ISC-Format
+
Kea verwendet JSON-Konfiguration statt ISC-Format
* Die Lease-Datenbank kann in verschiedenen Backends gespeichert werden (memfile, MySQL, PostgreSQL)
+
Die Lease-Datenbank kann in verschiedenen Backends gespeichert werden (memfile, MySQL, PostgreSQL)
* Kea bietet eine REST-API zur Verwaltung (über kea-ctrl-agent)
+
Kea bietet eine REST-API zur Verwaltung (über kea-ctrl-agent)
* Modernere Architektur mit besserer Performance bei vielen Clients
+
Modernere Architektur mit besserer Performance bei vielen Clients
  
 
=== Konfigurationsprüfung ===
 
=== Konfigurationsprüfung ===
  
* Vor jedem Neustart empfiehlt es sich, die Syntax zu prüfen
+
Vor jedem Neustart empfiehlt es sich, die Syntax zu prüfen
 
* sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
 
* 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 4. Dezember 2025, 13:26 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.1XX.21"
      },
      {
        "name": "domain-name",
        "data": "it1XX.int"
      },
      {
        "name": "domain-search",
        "data": "it1XX.int, example.com"
      }
    ],
    
    "subnet4": [
      {
        "subnet": "172.16.1XX.0/24",
        "pools": [
          {
            "pool": "172.16.1XX.50 - 172.16.1XX.100"
          }
        ],
        "option-data": [
          {
            "name": "routers",
            "data": "172.16.1XX.1"
          }
        ],
        "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"
          }
        ]
      }
    ],
    "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.