2

I'm using a linux system as a router/firewall, with the following kernel:

Linux gentoo 6.0.8-gentoo-stripped-wireless #1 SMP PREEMPT_DYNAMIC Tue Nov 15 08:54:22 CST 2022 x86_64 AMD FX(tm)-8150 Eight-Core Processor AuthenticAMD GNU/Linux

I can provide the .config if needed.

I'm using the following NICs:

0b:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

Settings for lan:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        master-slave cfg: preferred slave
        master-slave status: slave
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: external
        MDI-X: Unknown
        Supports Wake-on: pumbg
        Wake-on: d
        Link detected: yes

06:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Settings for wan:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        MDI-X: off (auto)
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

I'm able to run iperf3 and get consistent, high results:

-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 10.10.10.5, port 49356
[  5] local 10.10.10.1 port 5201 connected to 10.10.10.5 port 49358
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   110 MBytes   919 Mbits/sec
[  5]   1.00-2.00   sec   112 MBytes   941 Mbits/sec
[  5]   2.00-3.00   sec   112 MBytes   941 Mbits/sec
[  5]   3.00-4.00   sec   111 MBytes   931 Mbits/sec
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec
[  5]   5.00-6.00   sec   112 MBytes   941 Mbits/sec
[  5]   6.00-7.00   sec   111 MBytes   928 Mbits/sec
[  5]   7.00-8.00   sec   112 MBytes   941 Mbits/sec
[  5]   8.00-9.00   sec   112 MBytes   941 Mbits/sec
[  5]   9.00-10.00  sec   111 MBytes   930 Mbits/sec
[  5]  10.00-10.03  sec  3.08 MBytes   941 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.03  sec  1.09 GBytes   936 Mbits/sec                  receiver
-----------------------------------------------------------

But speedtest results peak at about 700mbps, and level much lower:

Retrieving speedtest.net configuration...
Testing from Spectrum (xx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by xx (xx) [367.09 km]: 29.198 ms
Testing download speed................................................................................
Download: 305.14 Mbit/s
Testing upload speed......................................................................................................
Upload: 38.66 Mbit/s

I pay for 950/40, and can get that from my desktop if it's directly attached to my modem. I was having performance issues using a Raspberry Pi 4 as a router because it was in powersave mode, and the first CPU core got loaded when there was high bandwidth. I haven't seen this thing using much CPU, so I don't think that is happening here. I just don't know why I can get such great speeds directly to my router/server, and from my computer to the internet, but not from my routers/server to the internet or through it. Is there something I can tweak to improve network performance? I can't think of what is slowing it down.

Extra info:

sysctl.conf:

net.ipv4.ip_forward = 1

net.core.rmem_max = 16777216
net.core.wmem_max = 4194304

net.ipv4.tcp_rmem = 65535 131072 4194304
net.ipv4.tcp_wmem = 65535 131072 194304

I'm able to get very close to a gigabit using transmission, maybe this is a single stream issue? I'm not sure.


I moved, plugged everything in, and am getting a gigabit now. Can't explain it, but a spectrum worker came with their handheld speedtester and told me it had to be my setup causing issues, I guess that isn't the case and there was some issue with that specific cable jack/connection? I made sure the contact seemed decent. Really can't think of how this can be explained.

2
  • If you're doing NAT (NAPT, PAT), that's probably what you need to look at next. Your NAT engine (e.g. iptables) is probably not keeping up with wire speed for some reason. Can you get wire speed through the "router" if you make it just a bridge?
    – Spiff
    Nov 17, 2022 at 23:55
  • @Spiff I'm using nftables, and I'm running speedtest on the router itself so NATTing should not be involved, and I think the performance issues I was getting on the pi4 were from the forwarding/NATing
    – Desultory
    Nov 17, 2022 at 23:59

0

You must log in to answer this question.

Browse other questions tagged .