> Grab debian, grab a system with 2 NICs, make it your router/firewall/gateway.
The problem with this (assuming you meant a generic (x86?) system) is that you won't get wire speed processing (no hardware offloading), so network performance will suffer. Unless you buy a dedicated router board (which is typically ARM), like say something like the Banana Pi BPI-R4. But installing/configuring a standard distro line Debian for such a board would be a PITA (if you want to do it right and set it up optimally), so you're better off using a dedicated router distro like OpenWRT.
I’ve not tried with 10gbps or faster links, but since we’re talking home use my success with 2.5 gbps links on standard amd64 hardware would suggest you’re wrong.
Modern CPUs are quite capable. The problem isn’t performance, but power use.
That's bogus unless you're talking above 10G, in which case the only things typically doing wire level performance are expensive and sold by vendors like Cisco, Juniper or Arista (and maybe it's higher than 10G now). Frankly, the vast majority of ARM based routers, unless you go out of your way, are garbage. Any x86 built in the last 15+ years with a NIC that's also not trash _will_ push at least 1G routed with a non-trivial firewall on a modern Linux kernel no problem. I've still got half a dozen PC Engines APU2 boards that unequivocally will get right at 1G on Debian Trixie; newer ewaste like Dell Wyse thin clients or Optiplexes would absolutely smoke those boards on performance.
Setting up a router with Debian is really kind of overstated in terms of difficulty, and frankly half of everything wraps Debian anyways (looking at you Ubiquiti/Vyatta), so why learn someone else's half cooked configuration language when you can just do the real thing.
Is this a problem with home networks? I have pfsense installed on some mini PC I bought off Amazon.
Setting up Debian as a router might take some effort but it's certainly not difficult. Enabling routing is a single line config change, install dhcpd and you're almost there. I'd certainly recommend the router OS.
A 15 year old 1ghz quad core (apu2) can route gigabit just fine, passively cooled. An N150 can do 2.5gbit, probably 10gbit but i haven’t personally tried.
Using Openwrt is fine but doesn’t quite match the educational experience of starting from a scratch Debian.
Any remotely recent generic office PC should be able to handle line rate 10 Gbit routing as long as it has the PCIe lanes for it.
I route my home 10G internet on a ThinkCentre Tiny with a 2018 Core i3-8100T.
from my brief search:
real-world OPNsense (yea, that's not Debian) benchmarks show that even low-power Xeon-D (Skylake-D SoC) with 10G SFP+ NICs:
pushed 9.40 Gbps in plain router mode
7 Gbps with packet filtering and no rules
7 Gbps in NAT mode
5.5 Gbps with a default ruleset
Using a Xeon for a router just because you want to use linux is a wild choice.
I’ve been running a Supermicro X10SLH-LN6TF as my router, and it’s very well suited for the job. Power use is very high for a home router, but reasonable for a 1U router - especially considering the era it’s from and its capabilities (routing 5-8Gbps per stream depending on firewall config, able to handle a couple active streams, and line rate routing with no firewall).
I wouldn’t suggest anyone buy something like this today for home use, but 6 years ago when I purchased it there were not many 10GbE routers to be had period, let alone for the price ($300 roughly if I remember correctly ). Even considering the cost of power over the last 6 years, I still come out much cheaper than if I’d bought something more power efficient new at the time.
FWIW, I got 10 Gbit at home 2 years ago and built my router for $100 using a ThinkCentre M720q Tiny running on a Core i3-8100T (a mini-PC from 2019).
It draws around 15W idle, going up to 30W at full bore. For comparison, the 10G rental router from the ISP drew 15W no matter what (idle or full bore routing). This is with a 10GBase-T SFP+ which probably influences the power draw vs using a DAC.
It has no issues maxing out at 9.4 Gbit routing with a single or multiple streams of iperf3 with your basic IPv4 NAT+some port forwards config.
Also, power consumption.