Iperf

Aus wiki.freifunk.net
Wechseln zu: Navigation, Suche
Iperf
Iperf.png
Developer
Latest version
Release date and age
Frequently updated yes
Programming language
Platform Cross-platform, Unix-like
Status active
Genre
License GNU General Public License
Website openwrt.org

Iperf, bzw. in der aktuellen Version iperf3, ist ein kleines, zeilenbasiertes, installationsfreies Netzwerktool für viele Betriebssysteme, dass den maximalen Datendurchsatz via TCP oder UDP zwischen zwei Netzwerkknoten austestet. Dabei fungiert ein Programmaufruf als Server und ein weiterer als Client.

Iperf kann zur Messung zwischen zwei Freifunk-Knoten genutzt werden, indem es auf beiden Geräten per SSH ausgeführt wird. Auch eine Messung zwischen Endgerät und Knoten ist möglich, da das Tool für viele Plattformen verfügbar ist.

Dabei sollte beachtet werden: iperf3 testet die Verbindung über die IPv6-Adressen zwischen zwei Knoten, für die Interpretation des Testergebnisses muss klar sein, dass dieser Test auf Layer 3 stattfindet. Bei mehreren möglichen Verbindungen durch das Batman-Mesh auf Layer 2 ist es daher möglich, dass eine andere physische Verbindung genutzt wird als die augenscheinlich erwartete, der Test gibt keine Info darüber, wo die Pakete auf Layer 1 und 2 nun tatsächlich ausgetauscht werden.

Installation und Einrichtung auf Freifunk-Knoten

Die Installation kann direkt aus den OpenWRT-Paketquellen erfolgen, dazu muss lediglich eine SSH-Verbindung zu den Knoten hergestellt werden. Iperf3 kann über opkg mit folgenden Kommandos aus den Paketquellen von OpenWRT über SSH installiert werden:

opkg update
opkg install iperf3

Portfreigabe in der Firewall

Auf dem Freifunk-Knoten, bei dem iperf3 im Server-Modus ausgeführt wird, muss Port 5201 in der Firewall freigegeben werden. Mit den folgenden Befehlen wird eine weitere Firewall-Regel dazu hinzugefügt und die Firewall anschließend neu gestartet:

uci add firewall rule
uci set firewall.@rule[-1].src=mesh
uci set firewall.@rule[-1].name=mesh_iperf
uci set firewall.@rule[-1].dest_port=5201
uci set firewall.@rule[-1].target=ACCEPT
uci set firewall.@rule[-1].proto=tcp
uci set firewall.@rule[-1].family=ipv6
uci commit firewall
/etc/init.d/firewall restart

Speedtest mit iperf3 durchführen

Der iperf3-Server wird nun auf dem Knoten per SSH mit dem Kommando -s

iperf3 -s -V

gestartet. (-s: Server, -V: Detailliertere Ausgabe (Verbose)).

Auf dem Client-Knoten wird iperf3 nun mit dem Kommando -c und der Angabe der IPv6 des iperf-Servers, z.B.

iperf3 -c 2a03:2260:300b:0:8636:f9ff:ae31:35e1 -V

gestartet. Es wird ein Test mit einer Dauer von 10 Sekunden gestartet, bei dem jede Sekunde ein Ergebnis angezeigt wird. Die Testzeit kann über „-t 30“ auf 30 Sekunden verlängert werden, mit „-i 5“ wird das Intervall auf der Clientseite auf 5 Sekunden erhöht.

Das Ergebnis sieht in etwa wie folgt aus:

SSH auf Server-Seite SSH auf Client-Seite

Der Server wird im Terminal durch die Tastenkombination Strg+C beendet.

Siehe Auch

  • Netperf - GUI-basiertes Äquivalent