Speedtests innerhalb von Freifunk-Netzen

Um die Geschwindigkeit auf einem Gluon-Knoten zu messen, kann das Tool iperf3 genutzt werden.
Die Verwendung, sowie verschiedene Testmöglichkeiten werden in diesem kurzen Beitrag erklärt.

iperf3 Installation auf Freifunk-Knoten

Da iperf3 für den allgemeinen Freifunk-Betrieb nicht benötigt wird, ist es zunächst auch nicht auf den Knoten installiert.

Um die Installation vorzunehmen muss

opkg update && opkg install iperf3

ausgeführt werden.
Anschließend können verschiedene Tests mit iperf3 durchgeführt werden.

Speedtests von Freifunk-Knoten zu iperf3 Server

Um die Geschwindigkeit zu einem externen Server zu testen, ist zunächst ein iperf3 Server notwendig, Beispiele sind:

iperf3 -c speed.freifunk-aachen.de -p 5201 -P10 -t10 -R
iperf3 -c iperf-hexac.relaix.net -p 5201 -P10 -t10 -R
iperf3 -c freifunkm01.ring.nlnog.net -p 5202 -P10 -t10 -R

Allerdings kann stets nur ein Client an einem Port testen. Wenn also bereits ein Client einen Speedtest durchführt, muss unser Client solange warten.
Durch den Parameter -R wird die Download-Geschwindigkeit gemessen. Um den Upload zu messen, muss der Parameter -R entfernt werden.

In der Ausgabe sind zunächst 10 Verbindungen zu sehen (aufgrund von -P10 verwenden wir 10 Prozesse).
Anschließend sieht man sekündliche Messungen (für 10 Sekunden aufgrund von -t10) mit dem Netto-Durchsatz als SUM Eintrag.
Abschließend wird eine Gesamtübersicht angezeigt.
Der letzte Eintrag hierbei ist im obigen Beispiel der gemittelte Download-Speed.

Inter-Mesh Messungen

Wenn wir nun innerhalb der gleichen Mesh-Wolke von Router zu Router die Geschwindigkeit testen wollen, muss ein Freifunk-Knoten als iperf3-Server agieren und ein anderer als iperf3-Client.

Standardmäßig blockiert die Freifunk-Firmware Gluon jedoch zusätzliche eingehende Verbindungen. Somit müssen wir temporär erst den Port mit iptables öffnen, können die Tests durchführen und sollten abschließend den Port auch wieder schließen:

  1. iperf3 port in firewall auf gluon-node erlauben:
    iptables -I INPUT -p tcp --dport 5201 -j ACCEPT && ip6tables -I INPUT -p tcp --dport 5201 -j ACCEPT
  2. iperf3 server auf dem gluon node starten
    iperf3 -s
  3. tests durchführen auf dem client oder einem anderen router
    iperf3 -c gluon_ipv6 -R -P10
  4. angepasste gluon firewall regeln wieder löschen
    iptables -D INPUT -p tcp --dport 5201 -j ACCEPT && ip6tables -D INPUT -p tcp --dport 5201 -j ACCEPT

Das ganze hilft enorm, um herauszufinden, wie die Geschwindigkeit zwischen einzelnen Mesh-Verbindungen tatsächlich ist.
Also viel Spaß beim Meshen!