lib/mdns/README
author Saverio Proto <zioproto@gmail.com>
Thu Mar 26 01:25:34 2009 +0100 (3 years ago)
changeset 2289 10ad22c88dbb
child 23731b0f69669562
permissions -rw-r--r--
Adding first version of the OLSR mdns plugin written by Saverio Proto and
Claudio Pisa (Ninux.org)
zioproto@2289
     1
= OLSR mdns plugin =
zioproto@2289
     2
zioproto@2289
     3
This README file is the main documentation source for the OLSR mdns plugin
zioproto@2289
     4
zioproto@2289
     5
Last update 24/03/2009
zioproto@2289
     6
zioproto@2289
     7
== Description ==
zioproto@2289
     8
zioproto@2289
     9
This plugin goal is the distribution of multicast DNS messages over an OLSR Wireless Mesh Network.
zioproto@2289
    10
zioproto@2289
    11
In a wireless mesh network, the usage of wireless interfaces in ad-hoc mode and the OLSR routing protocol prevent
zioproto@2289
    12
multicast messages to be distributed all over the network. 
zioproto@2289
    13
zioproto@2289
    14
We are especially interested in the distribution of Multicast DNS (mDNS) messages, used for host-based service discovery, 
zioproto@2289
    15
over the networks that do not directly partecipate in the OLSR mesh cloud.
zioproto@2289
    16
zioproto@2289
    17
This task is achieved in the following way: 
zioproto@2289
    18
 1. the local router picks up from the local non-OLSR (HNA) network mDNS messages and encapsulates them in a new type of OLSR messages, 
zioproto@2289
    19
 2. the OLSR infrastructure is exploited for the transport of these messages,
zioproto@2289
    20
 3. remote routers decapsulate mDNS messages from received OLSR messages and send them over their attached non-OLSR networks.
zioproto@2289
    21
zioproto@2289
    22
The work could have its practical and immediate application in all the wireless network communities that employ the OLSR protocol.
zioproto@2289
    23
zioproto@2289
    24
The plugin captures the traffic (only IPv4 if OLSR is running IPv4 and only IPv6 if OLSR is running IPv6)
zioproto@2289
    25
and encapsulates this traffic in OLSR messages that are forwarded to all the other nodes in the mesh.
zioproto@2289
    26
zioproto@2289
    27
Other nodes running the plugin will decapsulate the packets and will send them to the interfaces specified in the configuration file
zioproto@2289
    28
zioproto@2289
    29
Let's get this example topology
zioproto@2289
    30
zioproto@2289
    31
pc1->eth0 ----- eth0<-r1->ath0 -------ath0<-r2->eth0 ---------eth0<-pc2
zioproto@2289
    32
zioproto@2289
    33
r1 and r2 are OLSR routers with mdns plugin enabled. pc1 will be able to receive mdns traffic generated at pc2 and vice versa
zioproto@2289
    34
zioproto@2289
    35
The most interesting feature is that messages are forwarded also by OLSR routers without the plugin. For example:
zioproto@2289
    36
zioproto@2289
    37
pc1->eth0 ----- eth0<-r1->ath0 ---r3----ath0<-r2->eth0 ---------eth0<-pc2
zioproto@2289
    38
zioproto@2289
    39
also in this topology mdns traffic between pc1 and pc2 is possible because r3 forwards mdns plugin OLSR packets even if it is not aware of the new application.
zioproto@2289
    40
zioproto@2289
    41
== Configuration ==
zioproto@2289
    42
zioproto@2289
    43
To enable the Plugin use the following syntax
zioproto@2289
    44
zioproto@2289
    45
LoadPlugin "olsrd_mdns.so.1.0.0"
zioproto@2289
    46
{
zioproto@2289
    47
PlParam     "NonOlsrIf"  "eth0"
zioproto@2289
    48
PlParam     "NonOlsrIf"  "eth1"
zioproto@2289
    49
}
zioproto@2289
    50
zioproto@2289
    51
Where eth0 and eth1 are the names of the interfaces where you want to capture traffic (and decapsulate incoming traffic).
zioproto@2289
    52
zioproto@2289
    53
Note that this interfaces must not talk OLSR and also the subnets on this interfaces must be announced with an appropriate HNA entry.
zioproto@2289
    54
This version of the plugin will not chech this stuff to be properly configured!
zioproto@2289
    55
zioproto@2289
    56
zioproto@2289
    57
zioproto@2289
    58
=== References ===
zioproto@2289
    59
zioproto@2289
    60
 * Multicast DNS: [http://tools.ietf.org/html/draft-cheshire-dnsext-multicastdns-07 IETF draft-cheshire-dnsext-multicastdns-07]
zioproto@2289
    61
 * OLSR Optimized Link State Routing: [http://tools.ietf.org/html/rfc3626 IETF RFC 3626]
zioproto@2289
    62
zioproto@2289
    63
=== Contact ===
zioproto@2289
    64
 * Saverio Proto proto@ing.uniroma2.it
zioproto@2289
    65
 * Claudio Pisa claudio.pisa@clauz.net