10 Gigabit Ethernet on Raspberry Pi 5

Raspberry Pi 5 comes with PCI Express connection and a number of HATs (hardware attached on top) and Bottoms (the opposite of that) are now available for sale. That unlocks some very exciting options. Let’s see how fast can a 10 Gigabit Ethernet adapter on Raspberry Pi 5 go, shall we?

Pineberry’s HatDrive! Bottom proved to be really handy for converting Pi’s PCIe connection to M.2 M-key format. My Kalea-Informatique 10 Gigabit adapter uses exactly that, so that’s a match. Why did I choose this adapter? Very unscientifically this time – it was the first readily available and I was in a fail-fast mood :)

10 GbE adapter connected to Raspberry Pi 5
Pineberry HatDrive! Bottom board with 10 GbE network adapter
Detail of the AQC107 chip powering the network adapter

Enable PCIe port on Raspberry Pi 5

First things first. We need to enable the PCIe connector on the Pi.

sudo nano /boot/firmware/config.txt

# Enable the port
dtparam=pciex1

# Configure PCIe Gen
dtparam=pciex1_gen=2
Enable PCIe and configure mode

Build custom Linux kernel and include the Aquantia driver module

Vanilla Raspberry Pi OS doesn’t include the Aquantia AQC107 kernel module. So we need to burn a micro SD card with a vanilla Raspberry Pi OS Bookworm image, boot the Pi 5 and build a customised kernel.

git clone --depth=1 --branch rpi-6.8.y https://github.com/raspberrypi/linux
cd linux/
sudo apt install flex bison aptitude -y
sudo aptitude install libssl-dev
make bcm2712_defconfig

Edit the config file:

sudo nano .config

Add these 2 lines to .config file:

CONFIG_AQTION=m
CONFIG_AQUANTIA_PHY=m

Trigger customised kernel build on the Pi. This will take some time, so bear with us, please.

sudo make -j4 Image.gz modules dtbs
sudo make modules_install
sudo cp -v arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware/
sudo cp -v arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
sudo cp -v arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/
KERNEL=kernel_2712
sudo cp -v arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img
uname -a
sudo reboot

After reboot, the LED light on the network adapter should come to life and we can capture first impressions.

Adapter recognised
10 Gbps Full Duplex
lspci -v output

Temperature

First thing you will likely notice is how hot this network adapter runs. It runs at 85° Celsius in idle which is slightly worrying and you can literally burn your fingers if you are not careful. Thumbs down on the thermal design front.

High idle temperature

Under load, surprisingly, it ‘only’ runs 0.5° warmer.

High temperature under load

How fast can it go then?

Raspberry Pi 5 officially supports PCIe Gen 1 and Gen 2. It is not certified for Gen 3.

PCIe Gen 1 mode

In this slowest mode, I got 1.71 Gbps/1.53 Gbps iperf3 TCP results with standard iperf3 settings. No jumbo frames, no other tweaks.

PCIe Gen 1 throughput

PCIe Gen 2 mode

Again, with standard iperf3 settings, I measured 3.44 Gbps/3.04 Gbps TCP throughput between 2 computers both connected to 10 Gbps switch ports via 10 GbE Full Duplex.

PCIe Gen 2 throughput

In idle conditions, this setup draws 7.5 W, and 8.9 W under 10GbE adapter iperf3 -R load (3.45 Gbps). Using more iperf3 parallel streams (the -P parameter) did not help at all.

Power draw

PCIe Gen 3 mode

The adapter supports PCIe Gen 3, but it doesn’t work with the Pi. The Pi is not certified for Gen 3, so I can’t and won’t name and shame. The Ethernet adapter is not recognised in Gen 3 mode, and no interface is present in ip a. Sometimes the Pi will fail to boot.

According to dmesg, the Pi forced Gen 2 mode:

brcm-pcie 1000110000.pcie: link down
brcm-pcie 1000120000.pcie: Forcing gen 2
Forcing PCIe Gen 2 mode athough Gen 3 has been configured

I powered my Pi from M2 MacBook USB-C port. So I thought, I might be running into under-voltage issues. I tested the official Raspberry Pi 27 W (5 V * 5 A) AC power and it made no difference.

Low CPU utilisation

One feature I really enjoyed is the extremely low CPU utilisation under load. I saw slower 2.5 GbE adapters hammer CPU with interrupts, but that’s not the case for this NIC. AQC107 does really good job at keeping the CPU cool.

Low Raspberry Pi 5 CPU load under network load

Cable analytics

Marvell supports Cable Diagnostics feature which uses TDR to measure cable length and detect Ethernet cable for defects. Unfortunately, it doesn’t seem to be supported on the AQC107 chip.

Cable Diagnostics not supported

Can you get 10 Gbps out of this adapter at all?

I am glad you asked. How does Intel NUC with 10 GbE adapter sound? That’s what I am going to test next. Stay tuned for another blog post.

Intel NUC with 10 GbE adapter

Summary

The high operating temperature really makes this adapter something I can’t recommend. With maximum throughput below 3.5 Gbps, I think you would be better off choosing a 2.5 Gigabit Ethernet adapter, which runs cool and delivers 2.35 Gbps/2.35 Gbps throughput.

Have you tested any other 10 GbE adapter? Did you get better results? Did you find any 2.5 Gbps Ethernet adapter that supports Cable Diagnostics? I am all ears.

Special thanks

Thanks to Luke Jenkins for exploring and sharing the kernel build instructions. Also, thanks to the WLAN Pi team. You can buy the team a coffee using this link.

Throughput speed test of the fastest tp-link and Devolo Magic 2 Wi-Fi power line adapters (PLC)

I am in the market of buying a new pair of power line adapters. Power line is a great alternative or complement to Ethernet and Wi-Fi. It provides low latency and jitter and is very flexible and easy to install.

The current tp-link TL-PA6010 adapters have served me well, but they are now reaching their maximum throughput. So, I decided to get a new pair of the fastest adapters on the market (Devolo Magic 2 Wi-Fi) and also a pair of the best adapters from tp-link (TL-PA9020P). These will be used to connect my home office and lab networks to my router.

Since there are multiple brands offering a variety of products with a variety of advertised speeds, I am curious to see if the more expensive adapters are worth the premium price, what real throughput they would provide and if and how much a passthrough socket improves the power line speed.

Left to right: Devolo Magic 2 Wi-Fi, tp-link TL-PA9020P, tp-link PL-PA6010 (not sold anymore, this would be an equivalent)

Specification

I tested my current low-end adapters and two new high-speed ones:

Throughput, ping, jitter, power and Wi-Fi tests

Power line speeds vary and depend on the distance between the two adapters, your electrical wiring and interference. Please take the numbers below as relative ones, which would allow you to compare how these adapters perform under the same conditions and in the same setup.

All throughput numbers below were TCP measurements taken by iPerf3 running on a WLAN Pi (a single-board computer with 1 Gbps Ethernet) and the client was my MacBook with 1 Gbps USB-C Ethernet adapter. There were no intermediate network devices between them:

MacBook iPerf3 client <-> PLC1 <-> PLC2 <-> WLAN Pi iPerf3 server

The average download speed (measured 5 times at each of the locations in my house) ranges from 13% to 26% of the advertised speeds and goes nowhere near them. With £16 per 100 Mbps, the cheapest adapter seems to be the best value for money, unless you need higher speed and are willing to pay for it. It also is the most power efficient.

Devolo Magic 2 proved to the be the fastest solution with 331 Mbps average download speeds, while TL-PA9020P provided slightly better upload speeds than Devolo.

Each of the parameters (i.e. Download average) consisted of five iPerf3 tests in each location and I then computed the average values:

Built-in Wi-Fi access point

Devolo Magic 2 Wi-Fi remote adapter comes with a built-in dual-band 802.11ac Wi-Fi AP (not just a repeater as some of the cheaper adapters), but it is unstable and resets the power line connection every single time I connect and generate some traffic. I used the latest firmware available in July 2020. If a built-in Wi-Fi is a must-have for you, do NOT buy this adapter. Wait until it gets fixed or look for alternatives.

This is what happens. The SSID is broadcast, a Wi-Fi client can associate to the AP, but when the iPerf test starts, the client gets disconnected and power line connection is torn down for 10 seconds or so and then re-establishes. I was able to reproduce this bug every single time and it was not just one-off random problem.

On the positive note, it supports 2.4 GHz only, 2.4 + 5 GHz or 5 GHz only modes. It does not let you change channel width on 5 GHz though and always uses 80 MHz, which may sound like a good idea in a small town, but it is a disaster in a shared building with many other access points and neighbours present.

If high-speed power line without Wi-Fi is what you are after, then the Magic 2 non-Wi-Fi model could be a good option for you.

Passthrough socket

Passthrough socket allows you to plug an electrical appliance to the power line adapter without generating the socket your adapter is plugged into unusable. Cheaper adapters usually do not provide this.

The other benefit is that adapters with passthrough socket use filters to suppress noise coming from the connected electrical appliance and this improves speed by 13% – 15%.

Pros and cons

Devolo Magic 2 Wi-Fi
+ Fastest average download speed
+ Comes with a mobile app and each unit has a management web GUI
– Built-in access point resets the whole unit and Wi-Fi is not usable
– It runs quite warm compared to the other two and is the largest

tp-link TL-PA9020P
+ Very good and symmetrical performance
+ Stable
– No built-in Wi-Fi
– Still quite expensive compared to the slower and cheaper units

tp-link TL-PA6010 (or similar)
+ Great value for money
+ Stable
– Relatively low speeds
– No passthrough socket, no Wi-Fi

And the winner is

My personal preferences are very likely different from yours and that is fine. I am looking for symmetrical TCP throughput of at least 200 Mbps, ideally a passthrough socket support and all other features are nice to have.

Devolo Magic 2 Wi-Fi proves to be unstable as the built-in access point crashes the whole adapter and resets the power line connection. Its back side also becomes quite warm regardless the load.

So, I decided for tp-link TL-PA9020P. It is stable, does all I need it to do and both adapters come with 2 Ethernet ports which gives me flexibility to plug my own access point in or connect using wired Ethernet connection.

MSNswitch – ovládání elektrických zásuvek po síti

Na serveru Síťařina.cz právě vyšel článek a především video s praktickou ukázkou možností zařízení MSNswitch. Díky němu můžete na dálku spínat elektrické zásuvky přes lokální síť i internet. Mě osobně se tato krabička velmi zalíbila, a tak ji mohu doporučit i vám.

Rychlé otevření panelu Síťová připojení

 Ve Windows Vista i Windows 7 byl ovládací panel Síťová připojení přesunut lehce pozadí. Pokud si nevybavujete jeho konkrétní podobu, napoví vám tento obrázek.

sitova-pripojeni

Panel obsahuje přehled všech síťových adaptérů v počítači. Díky němu můžeme pomocí grafického rozhraní Windows snadno měnit prakticky jakákoliv nastavení související se sítěmi. Chcete-li změnit IP adresu vaší síťové karty, provedete to zde, potřebujete-li zakázat bezdrátový síťový adaptér či změnit název nějakého připojení, opět jste zde na správné adrese.

Panel Síťová připojení můžete ve Windows XP najít ve výčtu ovládacích panelů. Nové verze Windows ovšem jeho přístupnost lehce komplikují a do cesty je nám postaven dialog Centrum sítí a sdílení. Ten sice shromažďuje vše týkající se sítí a sdílení souborů a složek na jednom místě, ale námi kýžený panel se skrývá až pod odkazem Spravovat síťová připojení v levém funkčním sloupci. Pokud tedy nyní chcete panel otevřít nezbyde než použít tuto cestu.

Otevření panelu

Pokud chcete Síťová připojení otevřít rychle a bez použití myši, vyzkoušejte tento způsob. Funguje ve všech operačních systémech Windows XP a novějších.

  1. Otevřete menu Start a vyberte možnost Spustit (Win+R).
    spustit-ncpa-xp
  2. Do pole Otevřít napište „ncpa.cpl“. Ve Windows Vista a Windows 7 můžete psát přímo do vyhledávacího políčka vlevo dole v nabídce Start.
    spustit-ncpa-vista

Tím přímo otevřete panel Síťová připojení. Ve skutečnosti systém na pozadí najde tento soubor v adresáři „C:\Windows\System32\ncpa.cpl“ a otevře jej.

Pokud síťová nastavení měníte často, mohl by se vám hodit následující tip. Vytvořte si na ploše či v nabídce Start zástupce panelu Síťová připojení.

  1. Klikněte na ploše pravým tlačítkem myši a z kontextové nabídky zvolte Nový a dále vyberte Zástupce.
  2. Do pole udávajícího umístění položky zadejte „C:\Windows\System32\ncpa.cpl“.
    zastupce-ncpa
  3. V dalším kroku zadejte název zástupce a klikněte na tlačítko dokončit.

Klávesová zkratka

Volitelným krokem je přiřazení klávesové zkratky takto vytvořenému zástupci. Tou pak můžete rychle spustit zástupce a tím otevřít panel Síťová připojení.

  1. Klikněte pravým tlačítkem na zástupce (ALT+ENTER) a z kontextového menu zvolte Vlastnosti.
  2. Přepněte se do políčka Klávesová zkratka a stiskněte například trojhmat CTRL+ALT+S.
    zastupce-klavesova-zkratka
  3. Po dokončení průvodce můžete vyvolat Síťová připojení pomocí zadané klávesové zkratky.

Vše se dá zvládnout prakticky bez použití myši. Na své si tedy jistě přijdou i klávesnicoví fajnšmekři.

Tipy

Podobným způsobem můžete ve Windows otevírat snad všechny ovládací panely. Přehled jejich názvů a příkazů pro jejich spuštění najdete v tomto příspěvku.

Nastavení IP protokolu (adresa, maska, brána,…) lze měnit i z příkazového řádku. Můj návod najdete tady.

Tento článek byl napsán pro časopis Computer.

Provoz 20000 paketů/s aneb server měl plodný den

dell-poweredge

Od technika telehousu, kde mám umístěn jeden ze svých serverů jsem se nedávno dozvěděl, že můj stroj má mimořádně “plodný” den a z nějakého důvodu generuje do sítě datový tok 20 000 paketů za sekundu. Po bližším ohledání jsme zjistili, že jde o multicast UDP provoz na cílovou IPv4 adresu 224.0.1.24. Pro případ, že se potkáte s něčím podobným vězte, že na vině může být služba WINS. V mém případě vytížila procesor téměř na 100% a vzdálené přihlášení na server přes RDP trvalo opravdu pekelně dlouho.

Podle materiálů, které jsem našel v dokumentaci, se jednotlivé WINS servery mezi sebou snaží pravidelně komunikovat a případně synchronizovat své databáze. Při tomto procesu nejspíše došlo k nějaké chybě a server tvrdohlavě hrnul provoz do sítě. Možná šlo o bezpečnostní problém viz odkaz na Microsoft KB níže. Služba WINS pro mě nebyla nijak podstatná, takže jsem ji zakázal. Od té doby se už podobné problémy neobjevily.

Několik faktů

  • Windows Small Business Server 2003 R2 Standard
  • Konfigurace se dvěma síťovými kartami (jedna do LAN, druhá do internetu) Server byl jediným WINS serverem v lokální síti
  • Protokol UDP, port 42
  • Cílová adresa IPv4 224.0.1.24
  • Poučení pro přístě: Co nepotřebuješ, zakaž a vypni:)

Informace

http://support.microsoft.com/kb/890710

Visual Trace Route – projděte si cestu internetem graficky

Příkazy tracert a traceroute patří mezi jedny z nejfrekventovanějších síťových příkazů. Ano, jsou jednoduché, poskytnou jasný výpis, výstup si můžete přesměrovat do textového souboru a tak dále. Co ale rozhodně neumí, je dopřát uživateli informaci o geografickém umístění jednotlivých routerů.

Právě tento další rozměr přináší webová služba Visual Trace Route. Určíte ke které adrese si přejete zjistit cestu a nástroj ji vypíše v textové podobě a zároveň ji hezky graficky postupně zobrazuje do mapy, dokud nedosáhne cíle. Vy si pak můžete trasu v klidu projít a udělat si představu, kudy vaše pakety tečou. Využívá přitom geografickou databázi IP adres.

Po zadání cílové adresy spustíte trasování pomocí tlačítka Host Trace nebo Proxy Trace. Host Trace spustí trasování ze serveru yougetsignal.com. Proxy Trace naproti tomu trasuje z vaší IP adresy, přes server yougetsignal.com do zadaného cíle. Škoda jen, že není možné trasovat přímo.

Pobavila mě situace, kdy jsem z domácího počítače z Prahy trasoval server umístěný v tomtéž městě. Pakety nabraly zpočátku směr na Varšavu, posléze putovaly Evropou, aby se pak vrátily zpět do Prahy:)

Visual Trace Route: http://www.yougetsignal.com/tools/visual-tracert/
Webový nástroj pro zjištění polohy IP adresy: http://www.yougetsignal.com/tools/network-location/

Cisco VPN Client a Comodo firewall si nerozumí

Nedávno jsem na svůj notebook instaloval Cisco VPN clienta, což je software od Cisca umožňující bezpečné připojení do firemní privátní sítě skrz internet. Obvykle funguje velmi spolehlivě a  svižně. V tomto případě jsem ale narazil na velmi podivné chování.

Při instalaci na čerstvě naintalovaný notebook s Windows XP SP2 jsem ale nebyl schopen VPN klienta vůbec nainstalovat. Přitom na předchozí instalaci stejného OS na tom samém stroji fungoval bez ztráty kytičky. Pár hodin mi zabralo, než jsem zjistil, že problém je v kompatibilitě s Comodo firewallem. Jakmile jsem Comodo odinstaloval, vše fungovalo jako na drátkách. Zkoušel jsem ještě nainstalovat Comodo až po úspěšné instalaci VPN klienta. Pak se sice VPN klient spustil, ale nezdařilo se mu navázat připojení. Nestačilo ani vypnutí firewallu, musel být odinstalovaný. Během pokusu o spuštění instalace VPN klienta, ani při vytváření VPN spojení, se Comodo nedotázalo na povolení/zakázání aktuálně prováděné akce či přístupu k síti.

Cisco zalicencovalo ZoneAlarm firewall engine a použilo ho jako součást VPN klienta. Je tedy dost možné, že se nesnese na jednom stroji s dalším firewallem v podobě Comoda. Zaznamenali jste podobný problém ještě s jiným firewallem instalovaným na stanici?

Situaci jsem vyřešil přechodem na ZoneAlarm, se kterým zmizeli veškeré problémy. S integrovaným firewallem v systému Windows XP nemá Cisco VPN rovněž žádné problémy. Ten ale přeci jen neposkytuje plnohodnotnou bezpečnost podle mých představ. Už samotná ignorace veškeré odchozí komunikace není na dnešní poměry příliš vhodná. Výběr firewallu je ale téma na samostatný článek.

Shrnuto podtrženo aktuální verze Cisco VPN Clienta nefunguje korektně na jednom stroji zároveň s Comodo firewallem. Prozatím doporučuji změnit firewall a počkat, zda jeden z budoucích releasů toho či druhého sotwaru problém nevyřeší.