The Tiny Internet Project, Part I

As LJ readers well know, Linux drives many of the technologies we use every day, from smart TVs to Web servers. Linux is everywhere—except most homes and classrooms.

That's a problem if we want to help breed the next generation of engineers and computer scientists. In fact, if teenagers (or any other group of curious individuals) want to learn about Linux, they often must rely on a geeky friend or parent willing to show them the way.

This three-part series seeks to change that by offering a way for anyone to learn about Linux by building what is essentially a tiny, self-contained Internet. Using old equipment and free software, you'll build a private network (with your own domain name), build Web sites, set up an e-mail server, install and use a database, and set up a Linux distro mirror.

If you like to learn by doing, but you're intimidated by the thick Linux texts you find at the bookstore, this Tiny Internet Project is for you. If you're a teacher interested in bringing Linux to the classroom, this is a great way to do it.

At the core of the project is a Proxmox KVM environment. KVM, or kernel-based virtual machine, is an open-source alternative to often costly VM technology like VMware and Hyper-V. You'll use Proxmox to host several Ubuntu 14.04 servers (or other Linux flavors), connect them over a private network and learn a lot about Linux along the way.

Figure 1. Proxmox

The Tiny Internet Project assumes you have some basic computer skills (Windows, Mac or Linux), that you have a couple computers lying around and that you have some time to tinker. The project can be done in whole or in part, depending on your interests and needs. It's particularly designed for educators who want to introduce school-aged kids to Linux.

What You'll Be Building

You'll be using open-source software for everything in this project, so everything you need will be free to download and use. You'll also take advantage of virtualization technology, which will enable you to deploy a bunch of virtual machines. In all, you'll deploy:

  • The Proxmox server to host all your virtual machines.

  • Two DNS servers, a primary and a secondary.

  • An e-mail server.

  • One or more Web servers.

  • An Ubuntu 14.04 repository mirror.

Strictly speaking, the mirror is optional. As long as you have an Internet connection, you'll be able to download new software and run Linux updates on all the servers you deploy. But the goal is to create a self-contained tiny Internet that will work without a permanent connection to the public Internet. Setting up a local mirror will enable you to do just that.

Optionally, you can build two or more Proxmox hosts and set up a cluster (I'll cover that when I describe building the Proxmox server). Obviously, you'll need one physical computer for each Proxmox host you want to add to your tiny Internet.

Project Requirements

When it comes to hardware for this project, the goal is not to have you buy anything new, but to use stuff you already own—maybe your recently retired desktop, an old wireless router or an old laptop or netbook. If you don't have any hardware like this lying around, ask friends and family, and then consider Craigslist or eBay.

The bare minimum hardware you'll need includes:

  • One 64-bit PC that supports virtualization.

  • One PC that can attach to a network and run a Web browser (Windows, Mac or Linux).

  • One network switch or router.

Nice to have:

  • Another 64-bit PC that supports virtualization so you can build a cluster.

  • Some sort of network-attached storage (NAS).

  • Another old PC that can run Linux to act as a proxy server.


John S. Tonello is Director of IT for NYSERNet, Inc., in Syracuse, New York. He's been a Linux user and enthusiast since he installed his first Slackware system from diskette 20 years ago. You can follow him @johntonello.