Netwerksnelheid testen met iPerf3

Of: hoe ik iets leerde over de netwerkinterfaces van verschillende versies van de Raspberry Pi

Ik ben een beetje aan het rondshoppen voor een nieuwe router. Momenteel gebruik ik het standaard KPN-gebeuren, een Experiabox. An sich werkt dat verder wel, maar een aantal mogelijkheden heeft KPN dichtgetimmerd, en met alle horrorverhalen die je hoort over jarenlang ongepatchte routers van providers en KPN die ongevraagd even port forwards voor je instelt, wil ik dat toch iets meer in eigen hand hebben.

Bovendien: je bent een beetje nerd, of je bent het niet, toch?

Met dat in het achterhoofd is er vorig jaar al een deugdelijk accesspoint in huis gehaald en is de wifi-antenne op de Experiabox uitgeschakeld. Dat had al een betere wifi-dekking en -snelheid tot gevolg, beter dan ik van één enkel accesspoint had verwacht.

De volgende netwerkstap is dan natuurlijk een grotemensenrouter. Die biedt meer mogelijkheiden en meer controle over je netwerk, en mogelijk ook een betere snelheid. Want laten we wel zijn, hoeveel vertrouwen hebben we in een random Chinees doosje dat door een provider "gratis" wordt geleverd, behalve dat het zo goedkoop mogelijk is? Precies, niet de wereld.

Het testen van het netwerk, en de vragen die dat oproept

Als ik wil weten of mijn netwerk sneller kan, zal ik eerst moeten kijken hoe mijn netwerk zich nu gedraagt. Daarvoor is een heel handig tooltje beschikbaar: iPerf. Je start dat op twee computers in je netwerk op, eentje als server (iperf3 -s) en eentje als client (iperf3 -c <IP-adres van je server>), en iPerf drukt dan zo hard mogelijk een bak data over je netwerk heen, en vertelt hoe snel dat ging.

Test 1: van de laptop (via wifi) naar de server. Resultaat: ongeveer 8,5 Mbits/s. Not great, not terrible, als je bedenkt dat wifi op deze MacBook sowieso al nooit snelheidsrecords heeft gebroken.

Test 2: van de desktop op zolder (via wifi) naar de server. Resultaat: net aan 300Mbits/s. Dat is zo'n beetje het theoretische maximum over die wifi-verbinding, dus dikke prima.

Test 3: van een Rasperry Pi 3b+ die toevallig ook in de meterkast hangt, naar dezelfde server. Resultaat: een karige 290 Mbits/s. Huh, ik dacht dat Pi's gigabit hadden?

Er ontstaat een zoektochtje naar waar dit in kan zitten. De server blijkt met Cat5-netwerkkabel te zijn aangesloten op de switch, niet met Cat5e, en in theorie zou dat een lagere snelheid tot gevolg kunnen hebben - Cat5 is gecertificeerd tot 100Mbits/s, Cat5e tot gigabit. Maar op een stukje kabel van anderhalve meter... Zou het dan toch de KPN-router zijn die het allemaal niet kan bijbenen? Of is het misschien de goedkope switch die het allemaal niet aankan?

Aangezien er niet veel meer apparatuur in de meterkast hangt, wordt het tijd om naar boven te verkassen, waar mijn desktop zijn wifi-verbinding deelt met wat ander spul. Dat klinkt misschien wat omslachtig, maar die desktop heeft een wifi-adapter met een antennetje, en die haalt snelheden waar de meeste andere apparaten (laptops, telefoons, Raspberries) niet eens in de buurt komen.

Test 4: van de laptop (dit keer bedraad) naar de desktop, via een switch. Resultaat: 950 Mbits/s. Kijk, dat is een snelheid die je bij gigabit verwacht. Helemaal vol krijg je die lijn nooit, dit is keurig.

Test 5: van een Raspberrry Pi 3b (geen plus) naar de desktop. Resultaat: 95 Mbits/s. OK, dat is helemáál sneu, tijd om eens te kijken hoe dat ook weer met Raspberries zat.

En dan blijkt de verklaring heel simpel, en bovendien gedocumenteerd in de specificaties van Raspberry zelf:

  • Een Pi 3b heeft geen gigabit-netwerkaansluiting, maar een 100 Mbit-aansluiting, die over de USB-bus loopt. Die 95 Mbits/s komt dus wel aardig overeen met wat het apparaat aankan.
  • Een Pi 3b+ heeft wel een gigabit-aansluiting, maar omdat ook die over de USB-bus loopt is die begrensd tot 300 MBit/s. Ook dat is wat ik zag gebeuren
  • Een Pi 4b heeft een gigabit-aansluiting, zonder verdere aantekening. Ik heb een 4b, maar die hangt nu in een hoekje op de overloop en werkt via wifi. Dat wordt dus een kwestie van verplaatsen, maar ik verwacht wel dat die dan aardig in de buurt komt van die gigabit.

Weer wat geleerd.

Dan was er nog steeds de vraag of mijn server met gigabit bereikt kon worden, en ook dat is een kwestie van testen. Een oude Mac Mini (met OpenSUSE erop) die ergens beneden in het netwerk wordt gestald, kan de server met een keurige 940 Mbits/s bestoken, prima in orde dus. Ook als ik de KPN TV-decoder aanzet, blijft die snelheid aardig in stand, en dat is een interessante ontdekking - in alle routing-howto's wordt toch wel met klem geadviseerd om met switches te werken die IGMP-snooping ondersteunen, zodat het broadcast-verkeer niet je hele netwerk bestookt met overbodig verkeer en daarmee de boel trager maakt, maar dat lijkt in praktijk dus behoorlijk mee te vallen. Of ik test iets niet goed, natuurlijk.

In ieder geval heb ik weer een fijn tooltje ontdekt en wat over mijn netwerk geleerd. Nu die router nog uitzoeken...