The conference router is our portable setup for Internet access at events. Each venue has a different setup and most are not equipped to handle 100+ laptops and mobile devices. Our conference router project provides our own portable access solution on top of the base connection.
This project was conceived on October 10, 2010 (10/10/10), a day after DocType HTML5. That event was organized at IIMB which has excellent WiFi, but which we neglected to ask for access to. The band-aid solution we came up with using commodity wireless routers failed to survive under the load of the day.
Our project uses an old Eee PC 701 as the router and bridge, serving DHCP, transparently proxying HTTP requests, and filtering access to non-critical bandwidth-consuming resources such as torrents and automatic software updates. The Eee PC's 900 MHz Celeron M processor has far more processing power than the 200-300 MHz ARM CPUs used on most routers. The Eee PC was originally owned by Kiran Jonnalagadda, sold to Ashwin Murali in mid 2008, and bought back by Kiran for HasGeek on 10/10/10 to serve as the conference router. In honour of this date, it serves up Class C 192.168.42.x IP addresses. The Eee PC comes with 512 MB RAM (upgradeable to 2 GB) and 4 GB of flash storage (hardwired to the board). It is also capable of booting off an SD card or USB device.
The Eee PC's internal flash storage is failing as of October 2010, so we acquired an 8 GB Class 4 SD card and used GParted Live to replicate the internal disk. SD Class 4 is supposedly rated for 4 MB/s throughput, but it is unclear if this is read or write performance. GParted took close to an hour to copy the 4 GB internal disk, indicating that performance was going to be a problem.
The Eee PC's BIOS does not allow disabling the internal flash disk. It can only be assigned a lower priority in the boot order. Since the disk remains available as
/dev/sda in Linux, it becomes the default target for the
grub boot loader. We realized this only after abandoning the GParted copy and making a fresh Ubuntu installation which wouldn't boot either. The solution was to re-install
grub via the Ubuntu CD's command line (boot up the install disk and press
Ctrl+Alt+F1 for the command line):
cd /media sudo mkdir disk sudo mount /dev/sdc disk sudo chroot disk mount /dev grub-install /dev/sdc
The Eee PC would boot off the SD card after this, but performance remained dismal. Class 4 is simply not fast enough (most SD cards in the market are the slower Class 2). We wanted a Class 6 card but couldn't find it in the stores and took a chance on the Class 4 card, which didn't work.
We're now back on the Eee PC's internal flash storage, still at risk of impending failure.
Since a router needs to sit astride LAN and upstream networks, the Eee PC needs a second ethernet port. We acquired a USB Ethernet dongle from eBay.in (Spec). This turned out to be a Davicom DM9601 (spec) 10 Mbps-only device with Linux drivers that no longer compile. Modern kernels have the driver built-in. The driver recognizes the device, but no data is transferred. We confirmed that the device works under Windows XP. Since using an older Linux kernel (and thereby, older distro) is not feasible, we have abandoned the device and ordered another from DealExtreme.
IP address range
This article originally proposed Class B 10.42.x.x IP addresses, but it turns out BSNL 3G uses Class A 10.x.x.x IP addresses. Class B is more specific and will have higher routing priority, but we'll test that some other time.
List of equipment
- Asus Eee PC 701
- USB-Ethernet dongle from eBay.in. Spec
- D-Link DIR-600 wireless router, flashed with DD-WRT
The router runs Ubuntu Maverick Meerkat with the Unity netbook UI. Servers are typically headless and remote-console only, but this machine is only used at conferences and has to be reconfigured for each venue, so a local graphical terminal is required.
As of this writing, the machine is configured as a simple NAT router.