Figure 1: Students using a Wi-Fi hotspot.
If you've ever tried to set up a Wi-Fi HotSpot, you may have already discovered that you need more than a broadband Internet connection and wireless router or access point. Off-the-shelf routers and APs don't provide the "captive portal" function needed to either authenticate users or just let them know who to thank for their free connection. Nor do they usually provide other features such as billing support, bandwidth limiting and user isolation. To obtain hotspot-specific features and capabilities, you must use a device commonly referred to as a hotspot gateway.
If you have already figured out that you need a hotspot gateway to set up a Wi-Fi hotspot, you might not know about the great benefits open-source projects offer in this realm. The focus of this How To is to get you up to speed on open-source resources and walk you through a simple configuration example.
Alternative Firmware - Pros and Cons
Many wireless routers are based on open source operating systems and tools, which open the door to enterprising developers to either provide minor tweaks, or entire alternative firmware distros. These alternative firmwares open up features not usually available in inexpensive SOHO routers, including hotspot features such as captive portal and bandwidth limiting.
Whether youre setting up wireless Internet access at a public venue (such as a small B&B, store or restaurant) or in an office building (for visitors, consultants, and salespeople), open source firmware offers an alternative solution for your hotspot needs. Before you take the plunge, you should be aware of the negatives, along with the benefits you can reap, shown in Table 1.
|Saves money||Voids factory warranty|
|Enterprise features||No guaranteed support|
|Customization||More complex setup|
Table 1: Pros and Cons of Alternative router firmware
Saving money is one of the greatest benefits. You can spend just $40 to $60 for a simple router and load it with free firmware to gain functions similar to those in a "real" hotspot gateway costing hundreds more.
Additionally, the third-party firmware gives you the ability to use features usually available only in enterprise devices, such as VLANs, virtual/multiple SSIDs, VPN server, bridging and Quality-of-Service (QoS) capabilities. Another benefit is being able to customize the functionality of the router even beyond whats provided by the open-source firmware—if you know your way around coding and networking.
On the minus side, using third-party firmware will definitely void your warranty. So if you have problems, you can't tap your product's vendor for help or product replacement in case of failure. And given that youre essentially messing with the "brains" of electronic equipment, setup is a bit more complex than using off-the-shelf hotspot gateways, which are specifically designed for hotspot solutions.
Fortunately, the more popular alternative distributions, like the one we'll use, tend to have active user communities with wikis, forums and other lifelines that you can grab onto in case of problems. But if you're the type who needs to be able to call someone when you run into a problem, then alternative firmware probably isn't for you.
There are three popular general open-source firmware projects offering hotspot capabilities:
- DD-WRT: Offers many firmware versions to support many different routers. Along with adding new general features, open-source projects designed specifically for hotspots are intergraded.
- Sveasoft: Also offers multiple firmware versions, including a free public release supporting the ubiquitous Linksys WRT54G/GS routers and more advanced editions supporting additional routers. It includes hotspot specific features, but requires a yearly $20 subscription fee.
- OpenWRT: Unlike most other firmware replacements, setting up hotspot features and a web-based GUI interface requires advanced knowledge and additional installation.
There are also many open-source projects specifically developed for hotspot solutions, including the following (which I discuss later):