Das DHCP-Plugin ist zwar noch als Beta markiert, ich probiere es aber natürlich trotzdem aus 😎 Da es aktuell (noch) keine Dokumentation für das Plugin gibt, habe ich Claude den Sourcecode des Plugins auf GitHub analysieren lassen. Man kann über KIs denken, wie man will, aber als Werkzeuge zur Code- und/oder Fehleranalyse sind sie ausgezeichnet geeignet.
Da das Plugin noch in aktiver Entwicklung ist, könnten sich einige Einstellungspunkte in Zukunft ändern, daher erwähne ich die einzelnen Schritte der Einrichtung hier nicht. Claude und die meisten anderen KIs leiten einen hier aktuell gut durch, wenn man irgendwo nicht weiterkommt. Ich werde daher nur ein paar Screenshots von der Einrichtung zeigen und den Textteil irgendwann später ergänzen, wenn das Plugin nicht mehr in der Betaphase ist.
Das Anlegen der IP-Reservierungen muss man von Hand erledigen.
Es bleibt in Bezug auf DHCP aber noch eine Sache abzudecken, und zwar den Fall, dass sich Geräte (Handys etc.) im LAN anmelden, eine dynamische IP von Technitium bekommen und später wieder (manchmal für immer) verschwinden. Das wäre z. B. in einem WLAN-Gastnetz der Fall oder wenn Endgeräte ihre MAC-Adressen rotieren (iPhones z. B.). Die entsprechenden Geräte bekommen von Technitium dynamisch per DHCP eine Adresse zugewiesen, und diese Adressen sollten irgendwie auch in NetBox auftauchen. Wenn das Lease solcher Geräte abgelaufen ist und sie wieder aus dem WLAN-Netz verschwunden sind, sollen auch die IPAM-Einträge wieder entfernt werden. Solche Geräte kann ich in NetBox nicht als Devices abbilden, denn dann müsste ich u. U. dynamisch neue Hersteller, Geräteklassen, Geräte und Schnittstellen in NetBox erzeugen lassen. Es reicht mir vollkommen, in NetBox den Hostnamen und die korrespondierende IP-Adresse des Geräts sehen zu können. Die Technitium-API bietet zum Glück die Möglichkeit, eine Liste mit allen aktuellen Leases abzufragen. Ich lege hierfür in Technitium einen neuen User mit eingeschränkten Rechten an. Für den neuen User kann man in der GUI von Technitium auch gleich noch ein API-Token erzeugen. Der API-Token wird nur einmalig angezeigt; ich lege ihn daher in meinem Passwortmanager (KeePassXC/KeePassium) ab.
Man kann die API-Abfrage nun im Browser testen mit
http://<technitium-ip>:5380/api/dhcp/leases/list?token=<api-token>
und bekommt alle aktuellen Leases angezeigt. Dabei sind vor allem die Leases mit dem Zusatz Dynamic von Interesse. Dies sind die Adressen, für die keine Reservierung vorhanden ist.
Als nächsten Schritt habe ich mit dem guten Claude ein kleines Script erstellt, das man genauso in NetBox einbinden kann wie die Scripte von Peter Eckel. Man findet es in einem GitHub-Repository, das ich in meinem Account neu angelegt habe. Evtl. werde ich dort (bei Bedarf) in Zukunft noch weitere Scripte ergänzen. Claude hat auch noch ein README erstellt, das die Einrichtung bereits sehr gut beschreibt. Damit das Script funktioniert, muss man zusätzlich ein neues Custom Field einrichten
Das Script ruft bei jedem Durchlauf über die Technitium-API die Liste mit den Leases ab, filtert nur die mit “Dynamic” heraus, prüft, ob es bereits einen IPAM-Eintrag gibt, ergänzt einen fehlenden IPAM-Eintrag (inklusive Tag) und entfernt IPAM-Einträge, für die es kein korrespondierendes Lease mehr gibt. Ich habe als Intervall aktuell 30 Minuten eingestellt, werde aber vermutlich auf 15 Minuten umstellen. Das Script befindet sich noch in der Testphase, scheint aber bisher gut zu funktionieren.
Technitium
IPAM in NetBox
Ich lasse es mal ein paar Tage laufen und nehme noch ein paar der IP-Reservierungen bei Technitium raus, um eine schöne Rotation zu simulieren. Wenn das Script die nächsten Tage ohne Probleme sauber durchläuft und meine IPAM nicht vollmüllt, werde ich als nächsten Schritt die Steuerung von Technitium via NetBox/Semaphore (Ansible) in Angriff nehmen. Proxmox lässt sich wohl auch sehr gut über NetBox steuern, das wird dann vermutlich als nächstes Thema drankommen.





