LUNAR - Lightweight Underlay Network Ad hoc Routing
Working below IP
LUNAR is a simple and robust self-configuring wireless ad-hoc routing system that creates an IP subnet illusion. It is developed as a kernel module which can be dynamically loaded in a running system : no need to recompile your current kernel, and no need to specify any complex parameters when loading the LUNAR module. LUNAR allows you to join a wireless ad-hoc group and use all Internet applications as if the nodes were tethered: no parameters required!
Requirements:
- Linux kernel 2.4 or 2.6.
- A wireless Ethernet card (e.g., 802.11) and the wireless tools.
LUNAR is purposefully simple. It works well in the most common situations of wireless ad-hoc networking, namely small groups of less than 10 mobile nodes that are close enough (up to 3 times the useful IEEE 802.11 distance i.e., approx 50m/150ft). LUNAR implements a bare-bones on-demand route discovery protocol with broadcast dampening and reconfigures communications paths typically within 3 seconds. IP addresses are self-configured and MANET name resolution is supported. LUNAR includes automatic IP gatewaying and supports IP unicast and broadcast. The ideal solution for spontaneous ad hoc networks and wireless ad-hoc Internet access links. Enjoy!
Code/Download
Note: the 2 versions of LUNARng contain a cross-compiled version for the Linksys WRT54G router.
- LUNARng + Private Address Maps + Dynamic Shortest Discriminating Names (June 2007). An experimental version of LUNARng implementing the novell concepts of "Private Address Maps" and "Dynamic Shortest Discriminating Names". See publication below for details.
- LUNARng. With support for Kernel Linux 2.4/2.6: features IPv4/IPv6 routing, MANET-specific DNS name resolution (A, AAAA, and PTR), IPv6 gatewaying + global addressing, and nodes directory (yellow-pages). Note that this LUNAR version does not include the "weather collector" feature, and does not yet include NS2 code (see below for an NS2-ready version).
- LUNAR6 (replaced by LUNARng). See related publication Underlay Fusion of DNS, ARP/ND, and Path Resolution in MANETs.
- LUNAR (old version). With support for Kernel Linux 2.4/2.6, Windows XP/2000, & NS2. Also features counter-based request flooding and a "weather collector" to help determine best paths.
Publications
- Dynamic Names and Private Address Maps: Complete Self-Configuration for MANETs. 2nd Conference on Future Networking Technologies (CoNEXT'06), December 2006, Lisboa, Portugal.
- Model Based Protocol Fusion for MANET-Internet Integration. 3rd Annual Conference on Wireless On demand Network Systems and Services (WONS'06), January 2006, Les Ménuires, France.
- Underlay Fusion of DNS, ARP/ND, and Path Resolution in MANETs. 5th Scandinavian Workshop on Wireless Ad-hoc Networks (ADHOC'05), May 2005, Stockholm, Sweden.
- Ad Hoc Routing Protocol Verification Through Broadcast Abstraction. Proc. Formal Techniques for Networked and Distributed Systems (FORTE'05), Springer LNCS 3731, pp 128-142, 2005.
- Estimating the Ad Hoc Horizon for TCP over IEEE 802.11 Networks. 3rd Annual Mediterranean Ad Hoc Networking Workshop (Med-Hoc-Net 2004) June 27-30, 2004, Bodrum, Turkey.
- LUNAR: a Lightweight Underlay Network Ad-hoc Routing Protocol and Implementation. Proc of Next Generation Teletraffic and Wired/Wireless Advanced Networking (NEW2AN'04), St. Petersburg, Feb 2004.
- LUNAR Technical Report.
- LUNAR Internet Draft. Expired!
Old versions/ports
- micro-Lunar (May and Sep 2002): was demoed at Mobicom'02.
- See how to run IP over a stripped down version of Lunar on the LEGO mindstorm bricks: µLunar requires a mere 3.3 KB (out of 32 KB of available RAM).
- Try out the LUNAR-on-a-floppy demo for x86 laptops! (2002-01-23).
Coming Soon
- Future projects are currently being investigated.
More About LUNAR
LUNAR is an exercise in sticking to essential ad hoc functionality. Our work is based on the following assumptions and design principles:
- There is an ad hoc horizon. With current commodity wireless technology it does not make sense to handle more than three hops.
- Keep interaction with IP low. Fooling IP about the ad hoc reality with an underlay enables us to keep the route tables untouched. Also, it easily enables us to operate multiple ad hoc routing clouds in parallel.
- Keep implementation complexity low. Adopt a remote state patching approach for the implementation and restrict yourself to protocols that fit into this scheme.
- More specifically, only work with explicit remote commands and avoid any piggy backing and implicit inference on network state. Also, avoid any autonomous actions by transit nodes and let the end nodes control the game.
LUNAR sits below IP and traps ARP/ND/DNS solicit requests and rewrites them to a set of XRP commands (eXtensible Resolution Protocol), resulting in tunnels being punched through the ad hoc network. See the LUNAR and SelNet papers on this WEB page for more details.
Acknowledgments
Many people have been involved in the development and testing of LUNAR. Two versions are currently maintained: LUNARng, and LUNARng with dynamic names and private address maps. For questions about these 2 versions, contact Christophe Jelger at UBasel.
Related Links
Page updated: 2007-12-14,
Computer Networks Group [cn.cs.unibas.ch]