While certainly there are a lot of home-class ADSL routers already running Linux, most of them are “closed” Linux, provided by the hardware manufacturer and that cannot be customised over a certain point.
I do have a router currently running OpenWRT, a Linksys WRT54GL, but I don’t use it as ADSL router, I use it as a wireless client that routes the wireless network on a wired network segment, the one where Farragut, Enterprise, Klothos and Prakesh are located. I needed to use this network setup because I can’t reach my office with suitably good phone cables that allows me to stay connected with a decent SNR, so I need to connect the wired segment to the wireless network that then gateways me to the WAN. And I had to use an OpenWRT-based WRT54GL because the cheapest router capable of understanding that the WLAN is where the default gateway is was at €300, which is quite too much for me.
OpenWRT is a nice piece of software, I tried three versions of it up to now, because I fucked up two times, once while I was trying the safe way to upgrade the whole version, and once when I tried to upgrade only the packages, but every time, reflashing and reconfiguring didn’t take more than a couple of hours, and every time I make the configuration cleaner and nicer.
I don’t use the firewall, for instance, and I map all the five ports of the switch to the LAN, as I don’t need to distinguish between WAN and LAN on there, the WAN is on the wireless network, but I do install extra services like CUPS and Avahi, both acting as reflectors for broadcasts, so that the services available on the wired and wireless networks can be seen on the respective other network. I also wrote a simple sh script to update DynDNS, although the current one I have here is designed to run on Whiterussian (and whatever the previous version was called, I forgot), while for the new Kamikaze I should update it to use the configuration files rather than the nvram. I’ll work on that in the next days and then upload the new version of the script.
Anyway, I was thinking lately about the ability to run OpenWRT on an ADSL router with onboard modem. I didn’t know how well supported ADSL modems are with OpenWRT, and I pretty soon discovered that even if there is some support, it is not yet possible to use most ADSL routers in their full blown capacities. Luckily this might change in the future, as I see that there is work in progress to support the Texas Instrument AR7 that at least D-Link uses for their latest routers models.
Why would I care of an OpenWRT-running ADSL router? Well, my first ADSL router was a D-Link DSL-500, running ATMos operating system, a decent piece of software, albeit closed source, you could access most features through the CLI interface either by telnet or by serial port, even when the web interface ruined them. The problem with it was that either the networking core or the hardware weren’t stable enough, and when running bittorrent or any other software sending and receiving lots of UDP packets, the router would crash down. This was unbearable on the long run, and thanks to Florian Steinel, I’m now using a 3Com router.
The 3Com router seems to have nicer hardware and handles the load way better. It also is an all-in-one router with WLAN, so I don’t need a standalone access point. The problem it has is with the software, or probably just with the web interface of it (there’s no CLI here, but I’m sure the underlying software is probably quite okay). For instance, the port forwarding table does not consider the network mask setting the router has: it only takes the first three octets of the router’s IP and allows to choose only the fouth for any forward rule. This means not only that if you set the route to 172.16.0.1⁄16 you can’t forward ports to devices in the same network with IPs like 172.16.1.34, but you can forward ports to 192.168.0.34 while using 192.168.0.33⁄28 as IP address, so the limitation was not designed to limit you to a single subnetwork, it’s just that the forwarding page does not give a crap about the network mask at all; I tried to explain that to 3Com support, but they are quite worse compared to when I had an UsRobotics modem – then they were very good – and their level 2 support techs weren’t able to understand how I divided my network in two subnetworks… Also, the router does not provide any IPv6 feature.
While I’m almost totally satisfied with the current setup, and I’ll probably run this router for many years (minus failures), I find it somewhat restraining, and for instance I would welcome a firmware for it that would allow me to get IPv6 addressed for the internal network, NATing only the IPv4 requests, or at the very least a firmware which would allow me to make the subnetworks two /24: a /28 is pretty limited especially when you also use it for virtual machines.
So, I’ll certainly be looking forward for AR7-based routers in the next years, in the unfortunate case I need to switch router again (which I really hope won’t happen, I had enough hardware failing on me this year, and I still have to bring Klothos back from the dead with a new SATA controller; help is welcome :P).