However, I gave up on consumer hardware and went with Ubiquiti for wifi AP and Mikrotik as my router. It was a bit of a pain to set up all my NAT rules in the Mikrotik router because unfortunately consumer devices do a lot of extra work behind that scenes (like setting up NAT reflection) to facilitate having NAT work painlessly. I'm perfectly content with the end result now though.
There was something almost zen-like watching 300Mbps of traffic transiting my RB3011 and seeing it utilize 6% cpu.
Ultimately, either is a fine solution and an ER-X is going to be a lot less fiddly to setup.
There appears to be many bugs related to off-loading as well. The below example is what finally made me decide not to consider Ubnt routers. It may be fixed now, maybe, but even if it was broken for way too long and shrouded in too much mystery, not even making it obvious which models are effected (the thread title was not always that specific either). I can't take Ubnt seriously, even for a home environment, after seeing how basic forwarding is that poor and it's not even their highest priority.
The only good thing that this proves is that at least they don't censor their forums, trying to hide issues.
https://community.ubnt.com/t5/EdgeMAX/UDP-packet-loss-on-Cav...
The 3rd party firmwares aren't as powerful as mikrotik's RouterOS, and the Mikrotik hardware is really pretty cheap - though the UI is pretty bad for it. They're great once you get used to the UI
also mikrotik routers comes with a standard config that comes with NAT w/ masquerade pre configured. But I agree there is a TON that is done behind the scenes. That level of granularity is what I am looking for.
http://www.pcengines.ch/apu3a4.htm
It has 3 NIC's, for inside, outside, and DMZ. You can also put a wifi radio on it, and make it an access point.
I run a full Ubuntu on it, with local DNS, DHCP, Shorewall, etc.
I have openbsd on one and ubuntu on the other. I'm using the openbsd one for dns, tftp, and a handful of projects. I was thinking about making the ubuntu one into an ap but I'm not sure about what kind of performance to expect vs my current off the shelf router. Have you used it as an access point?
Anyway, I run various services on it, aside from hostapd... It acts as my firewall, gateway, access point, and runs some other services like nginx to proxy some services from my LAN across subnets (like plex, etc) and motiond as a security camera monitor. I've used it as an SSH style VPN at times, in a pinch. When our WAN goes down I can simply plug my phone in to the APU via USB and tweak some iptables rules to use the LTE connection from the phone over USB network interface.
I also have a newer APU2C4, along w/ an AC WLAN card and an msata drive... have had it for years just sitting there, grr. I really only got the newer one since it has AES-NI support on the processor and I can do much heavier VPN traffic, but the SD card issues have become annoying, so I think this post has encouraged me to finally set it up this weekend... Thanks :P
Anyway, I wouldn't hesitate to pull the trigger on any of the pcengines stuff... Go for it!
Just make sure the WLAN cards you use are well supported via hostapd. :)
Previously I was using an ASUS RT-N66U with tomato/shibby, but it had been acting a little flaky for a while - 5ghz would stop a few times a week, eth connections would drop, overall wifi connectivity was mediocre at best. The performance was pretty similar before flashing with tomato.
My new solution is likely drawing a little more power, but I've had no problems with it. Also, I'm impressed with OpenBSD's simplicity. I've tinkered with FreeBSD in the past and found it a little complex. OpenBSD has proven to be significantly more straightforward and easy to configure.
Thanks for the encouragement!
They cost 50$ and have 3Gigabit ethernet ports
I like PF a lot more than IPTables. I've found it to be far simpler to configure.
I'll check what the energy consumption on my router is. I'm using an AMD chip which I had lying around. You're probably right that it uses a bit more power than necessary.
I was thinking about getting something like this: https://www.amazon.com/Firewall-Micro-Appliance-Gigabit-Bare... which uses 10W. It should be easy to install *BSD on something similar.
These days, you can rely on Linux on fairly low-end CPUs to handle a gigabit of traffic, including IPv4 NAT, IPv6, firewalling, DHCP and DNS.
For serious firepower, Jetway sells a 10 x 1 Gbit tiny fanless machine with a J1900 Celeron and up to 8GB of RAM, under $400 (without RAM or disk). All most people need is 2 gigabit ports and maybe a good WiFi interface -- although I prefer to scatter consumer WiFi boxes around my house in bridge mode.
It's not too fancy (but getting fancier as updates are delivered) and does the job well. I wasn't satisfied with the VPN options, so I port-forward to an internal host and set up static routes as required.