Today I’ll show you one of my hobbies. This will be pretty dry reading if you don’t share my obsession with networking. I’ll try to explain along the way and I won’t include the really geeky stuff. I don’t particularly like the word “hobby” because it sounds un-cutting edge, like knitting or gardening—which, I must add, are perfectly acceptable pastimes—hobbies, if you will. I enjoy gardening and gladly took responsibility for the many indoor plants (some of them small trees) in my house upon move-in. But today I’m going to talk computers.
Computer networks intrigue me both with their simplicity (when things work) and with their complexity (when things don’t work). What is a network? What is the Internet? (answer: a giant network) How do networks work? Wouldn’t it be nice if I understood it? These questions were the basis for this foray into my “learn networking” project.
A project started a year or two ago was to build a web server to be able to have my own website. This took a bit of research to figure out how to get my own domain name and have it point to my computer/web server. I had a few domain names to play with, but taking it from there wasn’t real intuitive. Without getting too technical, most users who have servers are businesses on static Internet addresses. Residential Internet accounts are on dynamic Internet addresses, which means the actual address can change on a daily or weekly basis. This doesn’t work for websites because a domain name needs to have an assigned Internet address, and if this changes people won’t be able to get to the website. The solution for hosting a website on a dynamic address was for me to get a cheap Linksys wireless router (shown above) from Craigslist and convert it to a mini single-function computer. These routers use a chip that is compatible with Linux-based operating systems, so I installed special software on it that would reach out every minute or so and confirm its Internet address. Whenever the address changes, Linksys updates the address in the domain address “phone books” online. This keeps the Internet records in sync with my address so people are able to access the website stored on the server in my walk-in closet.
A web server for a simple low-traffic website does not need to be very big or powerful. The computer I turned into a server is ten years old and cost $20 (shown on the right above). The main use of this site is to catalog my ebooks so I can access them anywhere in the world from my Kindle. My home Internet connection is the bottleneck in speed and this computer is more than powerful enough to keep up with the slow residential connection speed. Since it runs 24/7, power efficiency is pretty important. This server is headless (no monitor, keyboard, or mouse), and costs around $8 a month in electricity to run. I’m currently working on a more efficient system that will cost around 30 cents a month with the same performance.
The server on the left (shown above) is a domain controller. This is a separate system from the webserver, although a single machine could easily perform both functions. The domain controller manages network file sharing (the stack of hard drives in the center, above) and logon accounts for all my computers. This is not information that I want to share with the entire world through the Internet, so I prefer to have a physically separate machine handling these tasks. The domain controller is completely firewalled from the Internet so it has no access to the outside world. It, too, lives headlessly in a dark corner of my closet.
I am paranoid about backups. I’ve been through many computer failures but have yet to lose data. This yields mountains of data to store as I am storing multiple sets of data in different forms. I do weekly images of my laptop and desktop computers. An image is a bit-level copy of the entire hard drive, and allows a complete restore should the computer get corrupted or be destroyed. Last fall the hard drive failed on my laptop: I replaced it with a new drive and restored the most recent backup and had all my programs and data back an hour after putting the new hard drive in. All of my important data is also backed up online so if my house burned down or other catastrophe I could rebuild my life anyway. Online backups are slow, and I like doing this stuff, hence my own personal “cloud.”
A network allows file sharing and printing across computers on the network. As anyone who has tried sharing files knows, it’s complicated to manage all the permissions involved. I have roommates and visitors on my wireless network and I don’t need to expose all of my files and backups to them. A domain controller manages permissions and accounts in a central location and makes network storage effortless. The downside is that when the domain controller is down, nobody is sharing any files. It’s been heating my closet for a few months now without any problems.
The stack of hard drives is in a wooden case that I made in Dad’s shop over winter break. I needed a place to put eight hard drives since most computers don’t have that much free space inside. Storing them outside the computer case in the open air cuts down on cooling requirements which lowers power consumption. This is a RAID array, which is fault tolerant and expandable. When a hard drive fails, as they often do, I simply plug in a spare and the array heals itself. The computer sees only one huge disk, as all the individual drives are combined into one array. This array is also expandable, so if the disk space is filling up I can add another hard drive and the array will automatically expand its storage space. You can’t do this with a single hard drive in a typical computer. Lastly, all the network components are gigabit speeds, which allows fast file transfers. Files transfer between computers on the network faster than using a USB connection. This makes backups and file sharing much easier and faster than using an external USB hard drive.
I couldn’t do this stuff without taking classes on networking. One perk I get as a networking student is a subscription to the Microsoft software developers network, which allows me to legally download and use (for development purposes) standard and server operating systems and related software worth thousands of dollars. Few people would spend $1,500 for an piece of software that enhances their home network, and neither would I. My job has also exposed me to a lot of enterprise systems and real-life scenarios that help me understand how all this stuff works. When I get stumped, there is always someone I can ask who will have an answer.