Iperf
Iperf | ||
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:
Der Server wird im Terminal durch die Tastenkombination Strg+C beendet.
Siehe Auch
- Netperf - GUI-basiertes Äquivalent