* Configure IPv4 address manually setting Raspberry Pi as gateway
* Open browser and load some web pages to test routing
* Send data to Raspberry Pi: nc RASPI_IP 1234 < /dev/zero
* Parallel browsing now leads to network crash on Raspberry Pi.
A few seconds later the kernel warining appears:
NETDEV WATCHDOG: eth0 (lan78xx): transmit queue 0 timed out
Both machines are connected via ethernet to a 100MBit router.
I tested the following hardware:
* Raspberry Pi 2 Model B v1.1: no crash
* Raspberry Pi 3 Model B+: crash
* Raspberry Pi 4 Model B (4 GB): no crash
$ uname -a
Linux ubuntu 5.8.0-1010-raspi #13-Ubuntu SMP PREEMPT Wed Dec 9 17:19:55 UTC 2020 armv7l armv7l armv7l GNU/Linux
I found a way to trigger the problem fast (within one minute).
On Raspberry Pi 3 B+:
* Enable IPv4 forwarding: sysctl net.ipv4. ip_forward= 1
* Enable masquerading: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
* Start a netcat listening process: sudo nc -l -p 1234 > /dev/null
On another machine:
* Configure IPv4 address manually setting Raspberry Pi as gateway
* Open browser and load some web pages to test routing
* Send data to Raspberry Pi: nc RASPI_IP 1234 < /dev/zero
* Parallel browsing now leads to network crash on Raspberry Pi.
A few seconds later the kernel warining appears:
NETDEV WATCHDOG: eth0 (lan78xx): transmit queue 0 timed out
Both machines are connected via ethernet to a 100MBit router.
I tested the following hardware:
* Raspberry Pi 2 Model B v1.1: no crash
* Raspberry Pi 3 Model B+: crash
* Raspberry Pi 4 Model B (4 GB): no crash
$ uname -a
Linux ubuntu 5.8.0-1010-raspi #13-Ubuntu SMP PREEMPT Wed Dec 9 17:19:55 UTC 2020 armv7l armv7l armv7l GNU/Linux