Centralized Home Gateway (2010)

Open Source on Commodity Hardware
This blog intends to share the knowledge and experiences gathered from my hobby of working on open source applications in my free time, on my otherwise idle second-hand computers sitting at home. 

I have also included the knowledge gathered from setting up my home networking, including Wifi and Network over Power using off-the-shelf products.

In summary, there are little financial benefits in developing such platform over commercially available solutions (wireless routers, media gateway and server), I still see the benefits and potential of such development - there is no better way to become good and comfortable with Unix and open-source!


1. Unix Server/ Home Gateway
My observations on home networking... 
The main purpose of home networking of any sort is to distribute internet connectivity reach. First there came those NAT routers with multiple Ethernet ports, then 802.11a/b/g/n and Network over Power. Sooner or later, we will probably be seeing IPv6 internet services delivered through more efficient technologies.

Internet connectivity is no longer the sole purpose of a home network these days. In parallel, the services delivered across the once modest copper-wires have also grown to include applications such as VoIP and IPTV. This trend, along with the increasing demand in portable media-contents e.g. being able to play a video taken from a smart-phone on an LCD TV.

This trend has added new requirements, components to the home networking environment. Subsequently, the typical home networking setup is rather clumsy and quite complex for people who would rather sit back and relax at home.

Using my home setup as an example:
The Unix Server

In early 2010, I came up with the idea of building a single computing platform that functions as a home gateway. This gateway would consolidate all the home computing needs, as such, it must allow for a certain degree of flexibility. 

For this task, I have chosen an UNIX OS, FreeBSD.

Furthermore, this gateway has to be "always-on", providing 24/7 internet connectivity for my residence. This requirement, along with economical constraints, led me to look into commodity hardware and eventually choosing a second hand desktop computer to build this solution upon.

It has been over a year since the first post, and this prototype system has been up-and-running with the following functions implemented so far (in addition to being a wireless access point):
- IPv4 PPPoE client and NAT
- IPv6 Tunnel
- Reverse DNS
- NIDS (Network Intrusion Detection) using Snort
- ATA (VoIP to Analog) Gateway, using OpenVox hardware
- Internet connection failover (between DSL and USB 3G wireless)
... and more.

There are some photos of this prototype "box" in the gallery.

All the configuration details, thoughts and know-how I have picked up along the way, have been shared on this blog.

If interested, the posts are labelled with its corresponding technologies for easier navigation. (Unfortunately, Blogspot does not support placing posts in new static pages). Nonetheless, please feel free to look into the archives for implementation details which may be of interest.




Comments
Having spent a year working and using this system, I have to admit there are several issues and herewith the most important ones:

1. Noise. Having a desktop constantly running in the living room eventually becomes too noisy and disturbing. 
2. FreeBSD hardware driver or hardware in general. The hardware drivers are hard to come by, especially for the TV tuner cards.
3. Using a wireless NIC card as a light-weighted access point. Its performance is simply not as good as an off-the-shelf wireless router. 

(Added in Nov 2012)
2. Ubuntu Servers
Having spent a year running various software applications on Ubuntu server, several items become obvious in terms of its user-friendliness:
- Much more comprehensive hardware driver library. In summary, I have not encountered any hardware driver incompatibility issues so far.
- "do-release-upgrade" is a joy :)
- I felt that I maybe slightly biased in the comment above, since I have yet to attempt the same functionality using FreeBSD.
- Software package upgrade is compatible to FreeBSD (i.e. apt-get vs portsnap)

In summary, Ubuntu is easy to use and certainly allows me to focus on software applications or other technologies I am interested in. From what I can see so far, I am sticking with it.

Jonathon Lam 16th November 2012

No comments:

Post a Comment