Kea (Software)
# Kea (Software)

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. Es unterstützt DHCPv4 und DHCPv6, inklusive deren entsprechenden Erweiterungen und dynamische DNS Aktualisierung. Als Repository stehen aktuell 4 Datasources zur Verfügung Flatfile auch memfile, MySQL Datenbank oder MariaDB Datenbank, PostgreSQL Datenbank oder Casandra Datenbank.

## Funktionsumfang

Kea setzt sich aus folgenden Komponenten zusammen:

* keactrl: verantwortlich für den Start, Stopp, Umkonfiguration und Statusmeldungen des Kea-Server
* kea-dhcp4: Ist der DHCPv4 Server Prozess. Dieser Prozess antwortete auf DHCPv4 Anfragen von Clients
* kea-dhcp6: Ist der DHCPv6 Server Prozess. Dieser Prozess antwortete 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 Agentd, 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. 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. Kea kann je nach Backend 1000 Adressen pro Sekunden zu teilen bzw. verarbeitet zwischen 4000 bis 7500 Pakete pro Sekunde. Ü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.

## 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. Es wurden Abhängigkeiten entfernt, damit kea nur noch auf C++ basiert. Kea bietet im Gegensatz zu seinem Vorgänger die Möglichkeit eine Hochverfügbarkeit des Dienstes zu realisieren.

## Konfiguration

Kea setzt auf JSON Strukturen für die Serverkonfiguration. Auf Basis von YANG und dem NETCONF Protokoll.

### Beispiel einer einfachen Serverkonfiguration

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.

