-------- Original Message -------- 
Subject: [Pebble-linux] Meshing pebbles!
Date: Mon, 12 May 2003 20:37:08 +0100
From: Mike Saywell <ms@ecs.soton.ac.uk>
To: pebble-linux@freenetworks.org

Hi,

I've put together a tarball which is a collection of apps/scripts to make 1 more pebbles mesh together automatically to form a fully routed network.

It uses OSPF to do this (already in Pebble), infact the only additional binary is a little program I knocked up to automatically assign IPs to WDS links.

I think you'll need to disable NoCat to make it work, at least I always do cos it plays havoc with iptables :)

You can download from http://www.sown.org.uk/pebble-mesh.tar.gz

Any feedback is highly welcomed. Readme file attached.

Cheers,
Mike Saywell

Southampton Open Wireless Network
http://www.sown.org.uk/


OSPF based meshing for Pebble Linux

Mike Saywell
Southampton Open Wireless Network
http://www.sown.org.uk/

Requirements:

Assumptions:

Overview:

If you dont know IP subnets off by heart I've found http://www.tangent.org/~brian/dict/subnet.html to be most useful!

Everything is routed in this setup. The easiest way to set things up is to allocate each node a subnet, something in the order of a /26 or /25 should be about right.

Out of that allocation I use the first 1/2 for wireless clients (i.e. on wlan0). The remaining 1/2 is divided between assigning IPs for WDS links and for any wired connections.

For example, an allocation of 10.11.12.0/25 (10.11.12.0 -> 10.11.12.127) could be split as follows:

Wireless:    10.11.12.0/27   (10.11.12.0  -> 10.11.12.63) 
WDS:            10.11.12.63/28  (10.11.12.64 -> 10.11.12.95)
Wired:          10.11.12.96/28  (10.11.12.96 -> 10.11.12.127)

WDS Addressing:

We've written a small daemon called Aladin (Automatic Link Addressing Daemon for wIreless Nets). This uses reverse arp to assign addresses to WDS links. It has a small config file in which you specify an IP range, form this pool /30 subnets are allocated as needed on the WDS interfaces. This pool is the WDS allocation as calculated above.

The full source can be downloaded from

Quick start:

Routing in depth:

In order to do this you'll need some level of understanding of OSPF, there's plenty of information on the net.

We use 10.0.0.0/8 as our backbone or area 0. You can change this to a different prefix if you wish, but it should be the same on all nodes. This causes OSPF to automatically be active on interfaces which have IPs in this range, other interfaces will be ignored.

One or more machines may advertise a default route on the network, if this node has no default route of it's own then it will select the best (least hops), from the wireless net.

If you have a subnet connected to your pebble box which you want to be reachable over wireless you can either define an additional area or tell OSPF to advertise connected routes.

Mobility:

A down-side of a fully routed mesh is that clients will need to get a new IP via DHCP whenever they switch access point, which is annoying and confusing to users.

To this end we've developed Tmip (transparent mobile IP), this allows clients to move between subnets without any loss of connectivity and requires no software on the client as with traditional mobile IP. See http://www.slyware.com/projects_tmip.shtml for more details.

Complete list of files:

/usr/local/sbin/aladin 
/etc/network/aladin.conf
/etc/network/wireless
/etc/network/wds
/etc/init.d/wds
/etc/init.d/wireless
/etc/init.d/aladin
/etc/rc2.d/S12wireless
/etc/rc2.d/S14wds
/etc/rc2.d/S15aladin
/etc/zebra/ospfd.conf
/etc/zebra/zebra.conf
/etc/zebra/daemons

Source: http://lists.personaltelco.net/pipermail/general/2003q2/012776.html

PebbleLinuxMeshing (last edited 2003-05-20 15:30:41 by AdamShand)