Performant 1Gb Ethernet Only Router for cheap?

Looking for:

  • Great performance at 1Gb (wired only)
  • Enough headroom to run DoH performantly
  • Excellent OpenWrt support
  • Small
  • Under $100

Is SQM necessary for performance if you have 1Gb WAN and LAN?

At present I have a NanoPi R5C, but it is only supported by snapshots and even then has some issues. I am looking for something that "just works"

1 Like

X86, but its not going to be <$100 if you want to SQM at 1gbit.

I have 1/1gbit FTTH, never ever considered SQM.

Ironically? R4C.

$2 for an Intel 945 motherboard
$0.5 for an 65nm Core 2 Duo E4700
$0.5 for 2x 1GiB DDR2 module (actual memory usage is like ~50MiB)
$2 for a no brand PSU which is going to be thrown away
$1 for a generic USB 2.0 thumb drive of any capacity

Guest what? Full Gigabit routing. Except for the motherboard, I can get most of the above components for free. The downside is the power consumption which is 50W even at idle.

1 Like

Without SQM.

If you skip SQM, you can get a Fujitsu S920 for ~30€.

2 Likes

Get this combo:

:white_check_mark: small
:white_check_mark: low power consumption (<3W under load)
:white_check_mark: great performance, excellent OpenWrt support

3 Likes

It won't meet your less than 100$ requirement (159$) but I have this one and it is amazing!
Using it directly on Bell Canada's FTTH, and after a bit of fiddling, I was able to get it to work directly on the ONT at symmetric 1Gbps speeds...

Speeds, on my workstation, while the kids are watching netflix upstairs
(the service is 940/940Mbps from Bell)
image

1 Like

I would say RPi4 solution is kind of overbudget these days, especially when there exists so many mini PCs, and if you really want to stick with SBC, NanoPi R4S 4GB is selling a bit less than $100 while it won't lose to RPi4 (especially if you want OpenVPN connectivity, RPi4 doesn't have any usable hardware acceleration while R4S has it), plus a very nice metal casing, power usage also barely hitting 5W.

4 Likes

So the very moment you run your link at saturation queue management and packet scheduling (or lack thereof) become noticeable. The effects are mostly that queues are filling up and will take time to drain, while the queues are full every new packet will have to wait for all packets in front to clear the queue and if the queue is completely full more packets will be dropped.
The only thing that changes on faster links is that for a fixed traffic volume you are on average less likely to reach saturation and your network will spend less time in the saturated state.
It then comes down to a policy decision whether you want sqm or not, that you will need to take for your own network ad there is no objectively right decision here.

Some people are satisfied without SQM* and some prefer SQM even if that means shaping a link well below its contracted capacity. As an example of the latter, I was shaping my nominal 100/40 Mbps link down to ~50/30 ad that was my routers limit for sqm, for my use cases and judgement sqm was well worth the ~60 Mbps I 'sacrificed', but as I said that is a subjective policy decision.

*) Especially in downstream direction the amount of queueing delay undrr load you experience depends on your ISPs configuration, with a better ISP you might get acceptable downstream queuing delay even under load.

P.S.: Regarding the raspberry pi, I happen to like pis a lot (I also lije pies a lot, but that is a different topic) yet for router duties they lack a second ethernet interface, not insurmountable, but clearly less convenient than the 'complete' nanopi models. On the plus side you can add GPS receivers to a raspberry and get a high precision network time server for your home network.... Currently, when looking at raspberries I would also consider lookung at the pi5, which is more expensive and not yet supported by OpenWrt but it packs enough punch for sqm at > 1 gbps capacity (it still only comes with a single 1 Gbps ethernet though).

1 Like

I'm not sure what issues you're running into with the NanoPi R5C but I'd love to see such a device with a decent quality controller (Intel, Broadcom) instead of crab NICs. One interesting approach is to use the builtin controllers (via dwmac) but that's rarely implemented for whatever reason. Radxa ROCK 3B however seems to use that approach which seems more reliable (I haven't tested that board yet).

You don't really need SQM for a Gigabit connection unless your router/networking stack does odd things or you really overbook your capacity.

RPi boards in general suck at networking due the SoC and should be avoided.

As for DoH I'm not sure what you plan to use, I've only used blocky (Go appliacation) and it works great however I'm not sure if it's ported to OpenWrt. Currently if OpenWrt is a hard requirement I guess https://github.com/openwrt/openwrt/pull/14060 is your best bet having availability in mind.

Also even with 1Gbit/s surely such connections are still regularly saturated by whatever downloads are initiated: Windows update, Steam game downloads, etc? And such saturation will still result in increased latency.

1 Like

Sure it can (assuming the internet servers can and do deliver at high enough rates), this is why I argue that there is no magic capacity above which bufferbloat does not exist anymore; I do observe though that for normal usage patterns the likelihood of sustained saturation periods gets smaller, and hence the amount of perceivable benefit of sqm (and similar methods) reduces, and then it is a matter of policy as sqm comes with its own trade-offs like relative high CPU load and the need to shape a bit below the true capacity...
And since these are trade-offs i do not think a single policy will work for every network as each network has different desires/requirements/usage patterns. And that in turn is why I try to explain the trade-off and then ask people to make their own decisions, instead of instructing them one way or the other.

2 Likes

My router connects to a cheap gigabit switch which certainly has very small buffers. This switch is essentially shaping the traffic to 1Gb and keeping the buffer small before it hits the router.

never seen them reach more than 500-600mbit, during install/update tbh.

Does SQM not take advantage of the other core? When stressing the E4700 with PPPoE NAT routing, I can see only 1 core gets full usage.

The qdiscs SQM configures for you are not multi threaded so the best you can do is move the processing of each qdisc to a different CPU... (packet steering might be able to help and/or irqbalance)

It does indeed look like a great product! Did not pop on my radar while I was searching.... My requirements for a full package, including 2 NICs and a casing and low power device were always leading me to the Seeed Rerouter CM4...
And for 159$, I am super satisfied, plus it has WIFI, which was a surprise to me, so I installed it in a spot in my home that does not get a stable connection from the AP to extend the network there at 0 cost!

Isn't OpenVPN being replaced by Wireguard? I use Wireguard anyways, but I thought that it was not recommended anymore to use OpenVPN...

If ever I need a new router, I might look at the NanoPi, thanks!

It depends, wireguard is great, but IIRC only works over UDP. This is understandable, as running inner TCP packets in an TCP tunnel is sub-optimal (both inner and outer tunnel will do independent retransmissions for lost/missing packets), yet sometimes UDP is not an option, or the other side insists upon OpenVPN... If you have a choice wireguard seems like the best option, but OpenVPN is still much better than no VPN...

Hello,

Just adding my two cents here, I can very much confirm that with 1 Gbit link, I still need SQM especially when saturating the link. My ISP is providing top class peering and transit and the link can be saturated quite easily (actually download from most major CDN). Without SQM, I can see and feel the dropped packets and increase in latency in multiplayer games for example and there are quite impactful.

Obviously if you don't do any latency sensitive activities, SQM is not really needed.

Of course! If you have the choice between opening ports directly on your machine to communicate through the Internet, or make a secure Tunnel to go inside your network... The secure tunnel is the best choice!

I was using OpenVPN before, but the implementation inside my old router was kind of bad and could only accept 1 user... So basically everyone was the same user through the VPN...
With Wireguard on my OpenWRT router, it is fast, and secure, and I can manage users!
(My issue had nothing to do with OpenVPN per say, but with the implementation)