Sometimes you need a machine to pass network traffic from one interface to another and fiddle with it. You may need to route traffic to your network, or inspect network traffic in a transparent bridge. In my case I needed a fake DHCP client to hold on to public IPs from AT&T U-Verse so I could assign IPs at will behind it. Whatever you need to do, the requirements brief is generally the same:
- Low Power Utilization
- Quiet Operation
- As Few Moving Parts as Possible
- Small Size
- Near Wire-Speed Performance for Gigabit Network Traffic
- Cheap
There are plenty of embedded systems with multiple network ports that can run stripped down versions of linux and boot off a CFcard. They win in the small category, but they’re all consistently more than $300 or are older devices that can’t approach gigabit speeds.
An older PC would work fine, especially if it’s onboard ethernet was gigabit and wired to a PCI Express bus. The theoretical speed limit of a 32bit, 33mhz PCI card is just under the theoretical throughput for Gigabit Ethernet, so if you throw more cards on the PCI bus, you’ll increasingly limit your throughput. That goes double if you’re using a PCI based drive controller with any kind of real traffic. An older PC probably won’t be small, though, and it’ll have lots of moving parts.
I ended up spending $229.95 on my solution. It features the following:
- 1.8 ghz dual core Atom D525
- 4 Gig of DDR3 RAM
- 16 gig SSD
- Media Center Style Case
- Trend-Net Gigabit Ethernet PCI Card
There are cheaper options for nearly all of these components, but this felt like the best price/performance compromise. The box is fast enough that if I wanted to, I could re-purpose it into nearly anything. It also has enough performance overhead that I could give it an additional task without worrying about crippling my network performance. I installed Ubuntu 11.04 Server on it (via a temporary CD-ROM Drive), so I can apt-get install anything else I need.
Installation is fairly straightforward, though I’m not sure if I’d use the same case if I did it again. I needed a case with a PCI slot (there are PCI Express Mini Full ethernet cards, but they’re really expensive and rare), and there aren’t many that don’t include a full-size CD-ROM bay. The case is probably twice as big as it needs to be. You mount the motherboard with four screws, plug in two power supply connectors, slot the PCI card, slot the memory, plug in the front-panel connectors and the SSD’s SATA cable, mount the SSD somehow (I just screwed it in on one side), plug an SATA power cable into the SSD and you’re done.
The system’s quiet enough that I can’t tell if it’s really making noise. There’s one large fan on the underside of the power supply. It’s the only moving part in the system. The system uses around 28 watts of power when operating, and from power button to login prompt is around 23 seconds. A good half of that is in the bios.
Some pictures: