Rather than a new project, I’m going to post on a past project that mostly failed. Hopefully somebody else can learn something.
A couple of months ago, I decided to give my home network some structure. I put a manual IP Address Management list into place (since I have nowhere near enough devices to need an actual IP Address Management solution), re-IPed all of my servers, and eventually put a new third-party firmware on my home router. Well, and even more third-party firmware than was already there. More on that in a bit, since that was the bit that failed.
Here’s my network as it existed before the re-structure:
It should mostly make sense if you look at the Network Key. The smaller servers on the blue box are virtual servers running on Impulse, my physical server. If you’re not yet familiar with virtual servers / virtual machines, think of them as many different computers running as software on one computer. Because that’s what they are.
The two things I most wanted to fix was to use anything other than the 192.168.1.0/24 network (which I didn’t really fix very well, but technically am avoiding) and to use DHCP reservations instead of static IPs for my servers.
Why do I prefer DHCP reservations? First, it puts my fake IP Management into the DHCP server, rather than on a .PNG graphic of a Visio document. Most importantly, though, it centralizes the configuration of my IP addresses.
Moving from static to reserved DHCP addresses (which was the first step of my network re-design), it took me a little under an hour to pre-configure the DHCP server for each MAC address, log into each one of the servers, change the IP address assignment to Dynamic, get the new address, check the DHCP server, etc. When it was time for me to actually switch to the new IP addresses, though, it took about 8 minutes. I prepared a few days ahead of time by lowering my DHCP lease time from 1 day to 5 minutes. Then I changed the IP address reservations, waited for the leases to expire and re-grab the new address, and then set the DHCP lease time back up to 1 day. I’m never going back to static on anything that will DHCP.
So here’s mostly how the network looks now. It’s sadly already outdated, with new virtual servers and a netbook that my wife bought our unborn son as a baby-monitor / digital mobile / grandparental (not a word) spying device. As you can see by the new IP Address Management section, I left 30 spaces open for static IPs, but in a home network there are very few cases where that’s going to be necessary to use.
The other week was when I “upgraded” to the third-party firmware for the router, DD-WRT. DD-WRT is a pretty popular firmware that can open up a lot of power and control for your router. It’s just a tiny Linux that runs on your router, has drivers for the wired and wireless communications ports (and USB ports for those that have one), a lot of networking daemons / services running on it, and a web-based configuration page. I’d planned on loading this firmware on my router a year ago when I got it, but they didn’t have drivers supporting the Trendnet TEW-652BRP until a few weeks ago.
Instead, I had loaded the DLink DIR-615 (Rev C1) firmware onto it. The Trendnet 652 has identical hardware to the DLink 615 (at least these revisions), so the firmware is interchangeable. The DLink firmware is FANTASTIC. It has great control over port forwarding, port aliasing, port triggering, QoS, access control, filtering, basic routing … It filled ALMOST all my needs. There are two things that I needed it to do that it couldn’t. First, I wanted it to be my DNS server so I wouldn’t have to build a virtual server just to do that (which is still on my To Do pile). Second, it wouldn’t recognize MAC addresses if the first two digits weren’t 00. Many new NICs have MAC addresses that begin with 40 or 4Something, and since they weren’t recognized, I couldn’t set up DHCP reservations for them.
So I installed the DD-WRT firmware. What does it do? Well, it does everything listed above, plus a lot more. For example, out of the box, you can configure it to work as a public WiFi hotspot, and even allows you to generate revenue within a couple of minutes of turning it on this way. It does a fair job of logging, too, but I far prefer Tomato (another third-party router firmware) for logging. Since it’s running Linux, you can do most anything with it that you do with Linux. For the short time I had it running, I really loved using it as an SSH server open in my home network that wasn’t dependent on my internal network functioning. I especially love that you’re not bound by the short-comings of the web interface, and can manually edit config files. It puts consumer routers a step closer to professional routers.
Unfortunately, it had issues. About once a day, it would shut off all Internet-side communications. Some research indicated this happened if there were a LOT of open Internet connections, like I’m apt to have while doing BitTorrent transfers. My BitTorrent is up pretty much 24/7 (I think we calculated that I’m uploading about 200 GB/month, throttling down to 80 KB/s), so this is an issue for me.
I found some configuration work-arounds, and plugged them in. No sooner had I done this when I noticed that my Internet speed dropped drastically. It’s normally around 20 Gb/s, and it was instead around 1 Gb/s. I took the changes out, rebooted the router, and the speed tests were still the same.
Out of desperation, I decided that between the initial locking problem and then the speed problems, the firmware was more bother than it was worth, and I re-loaded the DLink firmware. (Actually, a new version of the DLink firmware. I’d checked over and over from the web interface to download an updated firmware, but it never found one. You apparently have to download it and put it onto the router manually.)
This still didn’t fix the speed issue. In the meantime, though, I’d scrapped all of my router configurations. I had backed up the configuration for the DLink firmware, but the updated version didn’t like the old configurations. I had to enter it all by hand, all from memory. It took a couple of hours.
The problem? Time Warner Cable/Road Runner was having a problem. A massive problem, where they had to rent bandwidth from a competitor to get any connectivity at all to their SoCal customers. I’d done all that for nothing.
So I’m still on the updated DLink firmware, even though I suspect DD-WRT would work fine for me now. Just haven’t put aside time to have my network down for that long. The new firmware recognizes newer MAC addresses without a problem, so I’m just out my DNS server. I have to decide if it’ll be easier to build my own, or go back to DD-WRT firmware.