Experimenteller Server für verteiltes DHCP

Wie verhinderst du die totale Fragmentierung des Address-Raum, wenn die sich nicht im selben L2-Netz befinden?

Dabei unterstelle ich, daß ein globaler L2-Adress-Space nicht funktioniren wird.

Was genau meinst du mit Fragmentierung und was mit „globalen Layer2“? Das zu verteilende Prefix wird in kleinen Blöcken zu aktuell je 4 IPs verwaltet. Wie die Blöcke auf die DHCP Server verteilt sind, ist dabei unerheblich. Selbst ein /16 wird bei der späteren C Implementierung weit unter einem Megabyte RAM belegen.

Die DHCP Server selber sollen eine zu starke Fragmentierung ihrer Blöcke vermeiden indem sie Leases mit ähnlichen Timeouts in einem Block verwalten. Blöcke können auch zwischen Servern verschoben werden (wenn z.B. der einzige Client den Server wechselt). Außerdem wird davon ausgegangen, dass das Prefix nie vollständig belegt wird sondern immer etwas Luft bleibt.

1 Like

Hi @tcatm,

habt ihr den auch eine Möglichkeit bedacht nur teilweise belegt IP Blöcke nach Auslauf der leases wieder zu bereinigen?
ein DHCP Server muss einem Client ja nicht die gleiche IP zuordnen wenn die leases ausläuft und der Client nachfragt ob der die IP behalten darf/welche IP er nutzen darf.

Diese Implementierung bezieht sich vermutlich auch rein auf IPv4?
Die Frage ist halt auch wie lange sich dieser Totgesagte noch hält :smiley:

@fragstone für v6 gibt es radvd. dhcp braucht man da nicht.

@fragstone: Blöcke, deren Leases abgelaufen sind, werden freigegeben (sofern noch eine Mindestanzahl an freien IPs verfügbar ist). Solange ein Client eine Lease behalten will, wird er diese nach der halben Leasezeit verlängern. Potentiell hat der Server natürlich die Möglichkeit das Verlängern abzulehnen. Der Client würde dann nach einer neuen IP fragen. Ob und wann so etwas sinnvoll sein kann, werden einige Praxistests zeigen. Die meisten Clients sind ja nicht 24/7 online.

Es geht hier wirklich nur um IPv4. Bei IPv6 gibt es das Problem dank SLAAC ja garnicht.

1 Like

Richtig gutes Projekt!

Wie wäre es das in der Sankasten Domäne zu testen?

3 Likes

@MrMM: Klingt gut. Wer kann mir dabei helfen? Ich bräuchte dann wohl root-Zugriff auf die Server, die DHCP machen. Mindestens drei DHCP Server sollten es zum testen wohl sein.

Kann ich dir gerne geben wenn du mir einen ssh key zukommen lässt und @CHRlS der die Kisten zur Verfügung stellt nicht sagt dass etwas dagegen spricht.

2 Likes

Mach der ahcpd nicht auch sowas wie diese Python-Lösung?
http://www.pps.univ-paris-diderot.fr/~jch/software/ahcp/

Ja, AHCP macht etwas ähnliches, ist aber für den Anwendungsfall nicht geeignet.

1 Like

Ich habe @tcatm Zugriff auf die Server der Sandkasten Domäne eingerichtet.
Hier werden wir Tests fahren.

Gruß,
Philip

Hilft es, wenn man da noch weitere Knoten reinhängt oder wird es derzeit rein auf den Gateways getestet?

pyddhcpd läuft nun in der Sandbox. Die Firmware findet ihr hier: http://map.sb.freifunk.ruhr/gluon/experimental/

Bitte testet das mit möglichst vielen Geräten!

9 Likes

Beinhaltet die Firmware jetzt den D-DHCP-Server schon, oder wird das nur auf den Gateways der Sandkastendomain eingesetzt?

Der läuft erstmal nur auf den Gateways.

Zumindest meine clients scheinen drin zu funktionieren.
(und fix ist es wie üblich auch. Der Hintergrund-Traffic ist so niedrig, dass man das wirklich auch an einem Surfstick betreiben könnte ohne dabei das 3G/Monat-Limit zu reissen…)

Alle nötigen Funktionen sind jetzt implementiert. Bitte testet es intensiver! In der Sandbox sind leider praktisch nie Clients online, so dass das Setup dort letztendlich sinnlos war. Zum Evaluieren wären so 20 bis 30 Clients über den Tag verteilt hilfreich.

Dann behaupte ich jetzt mal, dass die Sandbox-Domain nicht nur
a) wenig HIntergrund-Traffic hat (ideal für Messeaufbauten und andere Stellen wo man sich mit UMTS/LTE-Uplinks helfen muss)
sondern
b) auch mangels Nutzenden/Clients saumäßig schnell ist.

1 Like

Hab jetzt auch mal einen Knoten aufgesetzt und nehme am Montag noch einen dazu. Dann sollten die Woche über immer so 30 Clients on sein.

1 Like

Soll ich denn, außer dass Clients das Netz sinnvoll nutzen können, noch weitere Dinge testen?