MobileMesh is an ad-hoc routing protocol and implementation from Mitre. It's pretty easy to get running, though in the long run it isn't really what we want. Here's a quick howto on getting it going:
- Download it:
For Linux: Download it from the homepage unpack it, run "make", then "make install" as root.
For Windows: Get it here: http://ipmesh.sourceforge.net/ (404)
- Edit /etc/mobilemesh/mmrp.conf and change 'eth0' towards the bottom to the interface you wish to do ad-hoc routing on.
- To start mobilemesh, first run "mmdiscover -i ethN" where ethN is the interface above. Then run "mmrp".
To fully utilize the ad-hoc routing, you then want to remove the network route on that interface, so MobileMesh is fully in control of local routing. Do this with "route del -net w.x.y.z netmask 255......0" as appropriate.
Note that the mobilemesh daemons mmdiscover and mmrp will die if the interface goes away. This means that for PCMCIA cards, as most 802.11 cards are, you'll have to do some tricky stuff to get it to work consistently. I personally have a script I run manually right now anyway, so I've just created a modified form.
(one can do this by sending meassages to the mmrp control socket to tell it that interfaces have come up or gone down. email@example.com)
If you have a normal node on the network with just a network route, I'm unsure whether it will be able to talk to other nodes, because without specific host routes on the remote nodes, they can't talk back. This is a design requirement I would have of any new routing protocol (and unfortunately requires a packet sniffer active on every node...).
(I don't know what you mean by this requires a sniffer at every node. To use mobile mesh with non-mobile mesh hosts simply have mmrp anounce a external route for a small sub net say /26 which is unique for each mobile mesh node. Then give the node a network route for that network and have it hand out IPs via DHCP. I have used this method to have wireless and wired computers that do not run mobile mesh talk to the mesh through a wireless node. firstname.lastname@example.org)