I finished up the last bit of my infrastructure revision (for now) today. Switched out the Linksys WRT-310N (router, with dd-wrt) / Netgear WNDR3700v2 (running solely as a wireless AP) combo I've been using for a while for a Zyxel NBG6716 running OpenWRT.

I'm really impressed with OpenWRT, so far. I'm running a nightly snapshot of the bleeding-edge Chaos Calmer release, though it seems like CC hasn't diverged much from the soon-to-be-released Barrier Breaker yet. I found a bug preventing build of the image for the NBG6716 which was quickly fixed, but there don't seem to be nightlies of BB and I couldn't be bothered waiting for the next RC, so CC it is. I used the Image Generator tool to produce an image, flashed it with mtd as described on the wiki page, and it came right up ready for first login. I was configuring it offline and realized it'd be a pain to get the web interface Luci installed that way, so I ran Image Generator again to build an image with the luci package included, and installed the sysupgrade version of that image, which again went in flawlessly.

I was able to reproduce my setup through the web interface more or less completely, and it's a really nice web interface - somehow my impression of OpenWRT had been that it'd be much more creaky, but it's really smooth, better than any commercial firmware or dd-wrt I've seen. There were only a couple of things I had to do behind the web interface's back. One was to set up SRV and TXT DNS records. SRV records only required me to go one level of abstraction down, to OpenWRT's UCI interface, using the /etc/config/dhcp file. I had to add the TXT record by directly editing /etc/dnsmasq.conf, but that was the only thing that needed me to go that far.

I also had to go down to the UCI level to fully configure the wireless adapters, but only because I wanted 802.11ac capability; this has only very recently been submitted for Luci. So I just had to set /etc/config/wireless appropriately; the hwmode paramter is just 11na, same as for 802.11a/n support, but you have to specify a htmode option to get full 802.11ac support. No big deal.

CLI-level access and config is really, really nice as well; a far nicer environment than dd-wrt or consumer routers. Of course you can (and should) configure it to allow console access by public key SSH only. You get a sensible shell with most of the expected commands available by default (way more than in most stripped-down router environments), and a package manager you can use to install a whole ton more. nano and htop on my router are worth the price of admission alone, so far as I'm concerned. Most config files are in /etc/config, and there's so much sensible stuff, like to re-init the wireless adapters after you change the configuration you just run wifi. It's very nice.

OpenWRT keeps pretty good track of your custom configuration (what you've altered from stock), and you can generate a backup of it from Luci (so if you ever lose it you just re-flash and then restore your backup). The sysupgrade tool for updating your OpenWRT install will preserve any files it knows you've modified - you can see the list with opkg list-changed-conffiles - and any files explicitly listed in /etc/sysupgrade.conf, so you can update your install pretty conveniently without losing your configuration.

And most importantly, of course, it works. So far, at least. After reproducing my current router config in OpenWRT I powered down the routers, switched the jacks to the new one, powered it up, and everything came right up again, existing connections remaining open even (I was pretty quick). I had to cycle every system's connection in the end anyway (because until they actually got a DHCP lease from the router, it wouldn't have them in its dnsmasq config so DNS wouldn't work), but it was still pretty smooth. Now all that's left to see is if it's stable; until recently my 310N was pretty much 100% stable, so the new one has a high bar to live up to.

I don't have any actual 802.11ac hardware yet so I can't say for sure how that protocol works, but other than that I can certainly recommend giving OpenWRT a try, and the NBG6716 seems good so far. I found three viable alternatives for 802.11ac routers with current OpenWRT support: the NBG6716, the Engenius ESR1750, and the TP-Link Archer C7 v2.0 (and possibly one other, but I forget which). The Engenius seems tohave somewhat poor performance and the Archer seems to be flat sold out, so that's why I went with the Zyxel. I'll try and remember to post an update if everything goes pear-shaped...