Kea (Software)
Software
From Wikipedia, the free encyclopedia
Kea ist ein Open-Source-Programmpaket für die IP-Adressvergabe über das Dynamic Host Configuration Protocol. Es wurde entwickelt, um den klassischen DHCP ISC Server zu ersetzen.[5][6] Es unterstützt DHCPv4 und DHCPv6, inklusive deren entsprechenden Erweiterungen und dynamische DNS Aktualisierung.[7] Als Repository stehen aktuell 4 Datasources zur Verfügung Flatfile auch memfile, MySQL Datenbank oder MariaDB Datenbank, PostgreSQL Datenbank oder Casandra Datenbank.
| Kea | |
|---|---|
| Basisdaten | |
| Entwickler | Internet Systems Consortium |
| Erscheinungsjahr | 29. August 2014 (Version 0.9) |
| Aktuelle Version | 2.6.5[1] (25. März 2026) |
| Aktuelle Vorabversion | 3.1.5[2] (28. Januar 2026) |
| Betriebssystem | GNU/Linux, Unix, Unix-ähnliches System |
| Programmiersprache | C++[3] |
| Kategorie | DHCP-Software |
| Lizenz | MPL-2.0[4] |
| deutschsprachig | nein |
| isc.org/kea | |
Funktionsumfang
Kea setzt sich aus folgenden Komponenten zusammen:[7]
- keactrl
- verantwortlich für den Start, Stopp, Umkonfiguration und Statusmeldungen des Kea-Server
- kea-dhcp4
- Ist der DHCPv4 Server Prozess. Dieser Prozess antwortet auf DHCPv4 Anfragen von Clients
- kea-dhcp6
- Ist der DHCPv6 Server Prozess. Dieser Prozess antwortet auf DHCPv6 Anfragen von Clients
- kea-dhcp-ddns
- Der DHCP Dynamic DNS Prozess. Dieser Prozess dient als Mittler zwischen den DHCP Servern und externen DNS-Servern. Er erhält Namesaktualisierungen oder Löschungen und sendet diese an die DNS-Server.
- kea-admin
- Werkzeug für die Datenbankverwaltung.
- kea-lfc
- Dieser Prozess entfernt redundante Informationen.
- kea-ctrl-agent
- Dieser Prozess stellt REST-Schnittstelle für die Serververwaltung zur Verfügung.
- kea-netconf
- Ein Agent, welcher eine YANG/NETCONF Schnittstelle für die Konfiguration bereitstellt.
- kea-shell
- Einfacher Text Client, der die REST Schnittstelle zur Verbindung mit dem Kea Control Agent nutzt.
- perfdhcp
- DHCP benchmarking Werkzeug, welches mehrere Clients simuliert um die Performanz zu messen.
Als Backend für die Konfiguration wird nur mysql/mariadb unterstützt. Als Backend für die IP-Adressen (Lease) kann Postgres oder Mysql/mariadb eingesetzt werden. Es gibt Softwarepakete für die gängigen Linux und Unix Distributionen, Windows wird als Plattform nicht unterstützt. Als Dashboard wird Stork empfohlen.[8] Die Konfigurationsdateien setzen als Format JSON ein. Die Software unterstützt den SSL Standard zur Kommunikation, ab Version 2.2.0 wird nativ TLS unterstützt.[9] Kea kann je nach Backend 1000 Adressen pro Sekunden zuteilen bzw. verarbeitet zwischen 4000 und 7500 Pakete pro Sekunde.[5] Über die Schnittstellen (Hooks) kann Kea erweitert werden und erhält so die Möglichkeit mit Systemen wie z. B. eine CMDB oder DCIM zu kommunizieren.[10][11]
Geschichte
Die Software wurde über die Mailingliste als Ersatz für den bisherigen DHCP Server des ISC vorgestellt. Die erste Version wurde noch mit BIND10 1.2.0 ausgeliefert, danach wurden die Pakete getrennt.[12] Es wurden Abhängigkeiten entfernt, damit kea nur noch auf C++ basiert.[13] Kea bietet im Gegensatz zu seinem Vorgänger die Möglichkeit eine Hochverfügbarkeit des Dienstes zu realisieren.[14]
Konfiguration
Kea setzt auf JSON Strukturen für die Serverkonfiguration.[15] Auf Basis von YANG und dem NETCONF Protokoll.[16][17]
Beispiel einer einfachen Serverkonfiguration
# The whole configuration starts here.
{
# DHCPv4 specific configuration starts here.
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "eth0" ],
"dhcp-socket-type": "raw"
},
"valid-lifetime": 4000,
"renew-timer": 1000,
"rebind-timer": 2000,
"subnet4": [{
"pools": [ { "pool": "192.0.2.1-192.0.2.200" } ],
"subnet": "192.0.2.0/24"
}],
# Now loggers are inside the DHCPv4 object.
"loggers": [{
"name": "*",
"severity": "DEBUG"
}]
}
# The whole configuration structure ends here.
}
Eine Besonderheit ist, dass der Dienst bei einer Änderung der Konfiguration nicht neu gestartet werden muss, ein Neustart erfolgt nur, wenn die Schnittstelle (Netzwerkkarte) geändert wird.[18]