How to: Set up a Linux-based Open-Mesh Wireless Network, Part 1
June 01, 2009
Mesh networking is great for deploying Wi-Fi in larger areas. Open-Mesh, a volunteer-based organization that provides hardware and services for mesh networks offers low-cost nodes loaded with open-source firmware.
Mesh networks are a type of wireless network. As you'll discover, mesh networking is great for blanketing Wi-Fi in larger areas. They are especially useful in places where the environment changes frequently, such as people and walls moving around in malls, trees and buildings growing around an apartment complex, boats moving around the docks, and trucks coming in and out of stops. Additionally, they are perfect for locations and applications where it's hard to run network cabling.
Instead of having to run Ethernet cables to each of the access points, mesh networks work wirelessly. Only one mesh node (or more for larger networks) must be grounded and plugged into an Internet connection. Other mesh nodes, acting as repeaters, can be placed throughout a building or outdoor area, only requiring power. When someone surfs the web from a repeater, the traffic hops from node-to-node, making it back to a gateway. The hops can vary depending upon the current signal levels among them all. Hence the common saying about mesh, "self configuring and healing", and why they are perfect for busy areas.
Where does Linux or open source come into play? Well, there's Open-Mesh, a volunteer-based organization that provides hardware and services for mesh networks. The comparatively low-cost hardware, or nodes, are loaded with open-source firmware.
The service or dashboard is provided for free by Open-Mesh and lets operators manage their mesh networks online. Then for user authentication (username and password-based access) or pay-for-use applications, there's the free CoovaOM or CoovaAAA services in addition to other paid options.
In this two-part tutorial series, we'll set up a mesh network using the Open-Mesh gear and services. First we'll gather the hardware, create a Dashboard account, and configure the network settings. Then in the next part, we'll experiment with the internal splash page, third-party captive portal, set up web filtering with OpenDNS, and finally install the nodes and test coverage. Now lets get started!
Gathering the hardware
First you need to estimate how many mesh nodes/routers you need to cover the desired area. Each node provides about the same coverage as a normal wireless router or access point. However keep in mind, each node needs to at least overlap in coverage with one other node. You can mount them anywhere with a power outlet, however, if the budget and time is limited you'll probably want to stick with indoor locations.
Don't forget about pumping in the Internet. You must have at least one node hooked to an Internet connection. You'd then call it a gateway node; other nodes that aren't directly connected to the Internet are called repeater nodes. For larger locations and networks, you'd use two or more gateways, thus multiple Internet connections would be required. This would provide users with better bandwidth, as each hop between nodes cuts the bandwidth in about half. It would also provide redundancy for the Internet access; one goes down you still have the other.
You can refer to the guide from Open-Mesh for help on designing and deploying your mesh network.
You can use the Open-Mesh line of hardware. Prices range from $29 for lower-grade nodes and $49 for professional-level--both very affordable. The professional node includes the hardware watchdog chip that auto restarts the node when errors or problems are detected. It also supports longer Power-over-Ethernet (PoE) runs. Additionally, it has both a 2dbi onboard chip diversity antenna and a removable external 2.5dbi antenna.
The following features are on both the lower-cost and professional nodes:
- Use of the Open-Mesh Dashboard to control and monitor your networks.
- Dual ESSIDs (network names); one open for the public users and another one that's firewalled and WPA-encrypted for secure private access.
- Optional splash page feature for the public access that's fully customizable with the HTML/WYSIWYG editor.
- User authentication and billing options via third-party solutions from Coova.org, WiFi-CPA.com, WorldSpot.net, or any RADIUS server.
- Redirect users after they view the splash page or login.
- Bandwidth (speed) limitation settings for the public access.
- Wireless bridge mode on non-gateway nodes lets you plug in a computer for the public access.
- Automatic firmware downloads and updates.
- PoE support, with longer runs supported by the professional nodes.
- SSH and Telnet redboot access.
You could alternatively flash your own supported equipment with the Open-Mesh firmware. Remember, the node features can greatly impact the design and installation. So make sure you carefully compare the features between the vendors and nodes.
Now when the postal worker drops off the equipment, don't get ahead of yourself and start installing right off the bat.Once you have the initial design complete and the hardware in hand, you can sign-up for a Dashboard account on Open-Mesh's website and logon. This control panel is hosted for free and will let you configure all the network and node settings. You can even do this remotely. The nodes check for (and apply if needed) setting updates from the Open-Mesh servers about every 5 minutes.
First you probably want to configure most of the settings before plugging in the nodes. On the General tab of the Dashboard (see Figure 1), you'll likely want to change at least the time zone settings, display name, and the email address for notifications.
On the SSID #1 tab (see Figure 2), you'll want to at least change the network name. This is the name users will see on their computer when searching for the public network. We'll go back to the other settings later, after we have the basic components and features working.
On the SSID #2 tab (see Figure 3), configure the private network settings, if desired; otherwise disable it.
On the Advanced tab (see Figure 4), make sure you change the root password for SSH. As they mention about the Access Point Isolation feature, it prevents user-to-user communication. I recommend this always be enabled if the public SSID #1 is open for visitors. If you want to share a printer, look into sharing printers over the Internet using the Internet Printing Protocol (IPP), on either a Linux or Windows machine. This way you could set up any public workstations with the shared printer over the Internet (port 80) rather than the typical sharing ports that will be blocked. You could also inform visitors of this printer access, and possibly add a link to the splash page for easier configuring. If you are actually using the public SSID for only private use, however, its fine to disable Access Point Isolation because you probably want to share files between computers.
Adding nodes to your network (Dashboard)
Now you can add the nodes to your Dashboard account. Select the General tab and click the Add/Edit Nodes button. A Google map will pop-up, centered on the location you entered when signing up for the Dashboard account. You want to move to the actual area where you're located, using the Satellite mode to get an image of the buildings and area. Now click on the map where you are planning to install a node. A dialog box will appear, where you can give it a name and input the node's MAC address.
After the nodes are added, you can view their status and details by clicking on their markers. Additionally, you can click the Network Status link in the upper right corner for more details, such as Figure 5 shows.
Stay tuned--in the next part, we'll fiddle with the internal splash page, a third-party captive portal, and a web filtering solution. Plus we'll finally install the nodes and test coverage
Eric Geier is an author of many computing and networking books, including Home Networking All-in-One Desk Reference For Dummies (Wiley 2008) and 100 Things You Need to Know about Microsoft Windows Vista (Que 2007). Article courtesy of LinuxPlanet.