Consumer networking equipment quality has taken a nosedive in the last 18 to 24 months. Having been working very closely with one consumer networking equipment manufacturer over the last six months, I can honestly say that I don't think I will ever buy a consumer-grade piece of networking gear ever again.
The problems here are two fold and quite obvious; hardware design/quality and software quality. In the hardware realm, quality problems are not a new idea. Part qualification standards are, as far as I can see, non-existent. For example, the KR1 Mobile Router I've been working on had a CMOS battery in it. The battery was reportedly there to keep the time on the router while it was unplugged as this is a mobile product. In testing, I showed that the battery was completely non-functional. As it turns out, it was never designed to operate on a battery so they took it off. Why was the battery placed on the PCB in the first place?
Moreover, software quality and standards have really degraded. In my observation, it is now standard practice to write code, compile it, ensure that the product actually boots up, and ship it. There is no black box testing by a quality organization and no verification that all features are functional. The product is released to the public and then the support complaints roll in. Based on these customer reported issues, firmware fixes are rolled in and a new upgrade build is spun and put up on support sites for users to upgrade themselves. In effect, the customer is the tester. This is quite cost effective because the company doesn't need to pay testers or spend any extra time before getting the product to market. People almost must have some form of networking equipment in this day and age and they continue to purchase it. So why does this matter? I'm glad you asked.
My D-Link DI-524 is a victim of this downward trend in quality. It is a basic router with 802.11g WiFi support. It suffers from a problem where it likes to reboot randomly when you chunk too much data through it. And by too much, I mean connecting to IRC or and FTP server. It is highly frustrating to be cruising along and suddenly completely drop your Ethernet connection to the router. I found a hacked version of the DI-624 firmware (same hardware in both units, just a different driver for the WiFi chipset that does 108mbps) and loaded it. It exhibited the same type of issues but in different ways. Rolling back to older firmware lessens the frequency of the problems.
These problems are not generic to D-Link. They also affect the latest version of one of Linksys' best selling product lines: the WRT54G. Version five is an utterly horrible piece of junk and a simple Google search will enlighten you to all of the varied issues. Netgear suffers as well but to somewhat of a lesser degree. It seems that they started with a more solid code base which allows them to get the basics right without breaking DHCP or something
"So Mackie, what's your great plan for solving this problem?" A simple answer: m0n0wall. m0n0wall is a barebones edition of FreeBSD that contains a web server with PHP parser that runs most basic network functions. It will do the standard DHCP, DNS, and other routing duties but will also provide traffic shaping and reporting services. All of this is configured via a single XML file and the web-based GUI. It is compatible with all hardware that FreeBSD supports so you can use nearly anything with it. All of this for free, and it runs on an 8MB Compact Flash card.
It is designed to work on embedded PC platforms but can also work on any old PII you have laying around, provided it has at least 64MB of RAM. No hard drive or optical drive is required provided you acquire a CF to IDE adapter. It will run on any x86 architecture, including MiniITX, MicroATX, and ATX systems. I've ordered all the parts for mine and they should be arriving in the next week. I'll be providing update posts to go through system setup and configuration soon. Stay tuned.