frontier
Goto Top

Probleme mit KEA-DHCP-Server unter pfsense

Liebe Gemeinde,

dank der zahlreichen sehr guten Anleitungen läuft bei mir inzwischen eine pfsense-Firewall im 24/7-Betrieb. Vielen Dank dafür!

Seit ein paar Tagen habe ich jedoch ein für mich merkwürdiges Verhalten des DHCP-Servers (KEA) festgestellt. Auch eine kurze Google-Suche mit Copy&Paste der entsprechenden Log-Einträge hat leider keine Lösung gebracht. Daher poste ich meine Frage hier.

Ich nutze KEA und habe den Adress-Pool aufgespalten (von 100-144 sowie von 146-200; leider historisch über AVM gewachsen : - ) ). Nachdem die Maximum Lease Time verstrichen ist, bekommen die Clients leider nicht erneut eine IP zugewiesen – obwohl unter Lease Utilization lediglich 15% verwendet werden. Meine derzeitige Lösung ist es, die Clients bei DHCP Static Mappings einzutragen. Das ist natürlich abhängig vom Client nicht im eigentlichen Sinne des DHCP-Servers. Könnt ihr weiterhelfen?

Vielen Dank im Voraus!

Content-ID: 668738

Url: https://administrator.de/contentid/668738

Ausgedruckt am: 16.10.2024 um 00:10 Uhr

Ted555
Ted555 13.10.2024 aktualisiert um 12:40:05 Uhr
Goto Top
Zitat von @Frontier:
Ich nutze KEA und habe den Adress-Pool aufgespalten (von 100-144 sowie von 146-200; leider historisch über AVM gewachsen : - ) ). Nachdem die Maximum Lease Time verstrichen ist, bekommen die Clients leider nicht erneut eine IP zugewiesen
Also erstmal ist es generell so das Clients nach Ablauf der Hälfte der Lease-Time ihre Lease bei DHCP erneuern. Die Lease läuft also so lange der Client online ist nie ab, weil er sie ja schon nach der Hälfte der Zeit erneuert.
Die Lease läuft also nur ab wenn der Client entweder ausgeschaltet ist oder in der Zeit keine neue Lease anfordert.

Habe das hier mit einer pfSense mal mit dem KEA DHCP Server gestestet und den Fehler nicht nachstellen können. Läuft einwandfrei. Selbst nachdem die Lease abgelaufen ist bekommen hier Clients einwandfrei eine IP.

Du solltest also mal deine DHCP-Debug Logs checken und ob deine Clients nach der Hälfte der Lease ein Paket an die Sense schicken. (TCPDump / Wireshark).
Frontier
Frontier 13.10.2024 um 12:42:59 Uhr
Goto Top
Vielen Dank für die Antwort.

Die grundsätzliche Vorgehensweise eines DHCP-Servers ist mit bekannt. Darüber hinaus hatte ich in der ersten Zeit auch keine Probleme.

Gerne kann ich mein Problem etwas detaillierter schildern:

1.) Der Server funktionierte in der ersten Zeit einwandfrei. An der Konfiguration habe ich nichts geändert.
2.) Natürlich tritt das Problem nur dann auf, wenn ich nach Ablauf der Lease einen Client neu starte.
3.) Ich habe den Eindruck, dass die zuvor zugewiesenen IPs nicht wieder neu verwendet werden, so dass der "Pool" nach einiger Zeit erschöpft ist.

Natürlich kann ich gerne Log-Einträge vom DHCP-Server schicken.
DivideByZero
DivideByZero 13.10.2024 um 13:30:34 Uhr
Goto Top
Zitat von @Frontier:

Natürlich kann ich gerne Log-Einträge vom DHCP-Server schicken.

Dann bitte dieses 😉
Frontier
Frontier 13.10.2024 um 14:19:52 Uhr
Goto Top
... frisch aus Status/System Logs/DHCP - nur die MAC sind durch XX ersetzt.

Noch einmal: Vielen Dank für eure Hilfe!

Oct 13 11:14:47 	kea-dhcp4 	51656 	WARN [kea-dhcp4.alloc-engine.0xf5daee16d00] ALLOC_ENGINE_V4_ALLOC_FAIL_SUBNET [hwtype=1 XX:XX:XX:XX:XX:XX], cid=[XX:XX:XX:XX:XX:XX:XX], tid=0xdab038ca: failed to allocate an IPv4 lease in the subnet 192.168.178.0/24, subnet-id 2, shared network (none)
Oct 13 11:14:47 	kea-dhcp4 	51656 	WARN [kea-dhcp4.alloc-engine.0xf5daee16d00] ALLOC_ENGINE_V4_ALLOC_FAIL [hwtype=1 XX:XX:XX:XX:XX:XX], cid=[XX:XX:XX:XX:XX:XX:XX], tid=0xdab038ca: failed to allocate an IPv4 address after 100 attempt(s)
Oct 13 11:14:47 	kea-dhcp4 	51656 	WARN [kea-dhcp4.alloc-engine.0xf5daee16d00] ALLOC_ENGINE_V4_ALLOC_FAIL_CLASSES [hwtype=1 XX:XX:XX:XX:XX:XX], cid=[XX:XX:XX:XX:XX:XX:XX], tid=0xdab038ca: Failed to allocate an IPv4 address for client with classes: ALL, pool_lan_0, pool_opt3_0, pool_opt3_1, pool_opt1_0, pool_opt2_0, UNKNOWN 
aqui
aqui 13.10.2024 um 14:29:38 Uhr
Goto Top
Läuft einwandfrei.
Ebenso hier. Lässt sich auf 2 pfSensen mit Rel. 2.7.2, Default Leasetime 7200 und Default max. Lease 86400 und diversen unterschiedlichen DHCP Clients aller Couleur absolut nicht nachvollziehen.
Frontier
Frontier 13.10.2024 um 18:34:30 Uhr
Goto Top
Eine naive Frage - ohne die Dokumentation vorher gelesen zu haben:

Während die "richtigen" Leases unter der pfsense GUI angezeigt werden, beinhalten die Dateien dhcp4.leases und dhcp4.leases.2 noch weitere Leases. Wie es scheint, ist der "freie" Pool hier vollständig in Verwendung.

Hättet ihr noch weitere Debugging-Tipps? Wenn ich in der GUI den Knopf "Clear all DHCP Leases" drücke, dann sollten die Pools ja wieder vollständig frei sein (mit Ausnahme der gewollten Static-DHCP-Leases). Das ist natürlich keine Dauerlösung.

Mir ist wichtig zu betonen, dass ich alle Default-Werte unverändert übernommen habe.
Ted555
Ted555 14.10.2024 aktualisiert um 09:41:13 Uhr
Goto Top
Dein Pool ist wohl dicht ...
https://github.com/isc-projects/kea/blob/master/src/lib/dhcpsrv/alloc_en ...
Da spamt dir vermutlich irgendein Client mit random client_ids den Pool voll.
Also mal testweise client_id matching ignorieren lassen.
"match-client-id": false

Wir kennen die Anzahl deiner Gerätschaften und Leases nicht , aber wenn der Pool voll ist ist er eben voll. Dann musst du ihnen entweder wieder freischaufeln , vergrößern oder die Lease-Time verringern.
Wireshark und die MACs der vergebenen Leases sollten dir zeigen wer da im Netz rum spammt.
DivideByZero
DivideByZero 14.10.2024 um 09:16:53 Uhr
Goto Top
Und wenn es dann immer noch Probleme gibt: leere den Pool und hänge die Clients einzeln ins Netz, um zu testen, wer sich da in kurzer Zeit so viele Adressen zieht.
Frontier
Frontier 14.10.2024 um 19:40:33 Uhr
Goto Top
@Ted555, @DivideByZero : Danke für die Rückmeldung

Ich hatte ja bereist erwähnt, dass ich

eine kurze Google-Suche mit Copy&Paste der entsprechenden Log-Einträge

durchgeführt habe. Dabei bin ich auch auf die Seite


gestoßen. Die Informationen grenzen den Fehler jedoch nur sehr schwach ein. Ebenso hatte ich bereits geschrieben, dass ich zur Not den Pool löschen werde. Ich halte dieses Vorgehen jedoch nicht für besonders effizient - ebenso nicht die Clients danach einzeln in das Netz zu integrieren. Gibt es kein effizienteres Vorgehen bzw. aussagekräftigere Log-Files?
DivideByZero
DivideByZero 14.10.2024 um 23:05:38 Uhr
Goto Top
Ebenso hatte ich bereits geschrieben, dass ich zur Not den Pool löschen werde. Ich halte dieses Vorgehen jedoch nicht für besonders effizient - ebenso nicht die Clients danach einzeln in das Netz zu integrieren. Gibt es kein effizienteres Vorgehen bzw. aussagekräftigere Log-Files?

Doch, ist sehr effizient, es sei denn, Du hast hunderte Clients. Über Dein Netz wissen wir ja nichts. Aber so könntest Du dem Problem schnell auf die Spur kommen.