[olsr-dev] Integration of Multicast DNS

Felix Hupfeld (spam-protected)
Thu Dec 23 12:19:36 CET 2004

Hello everybody.

from my perspective, one of the problems of running a community adhoc 
network is the lack of DNS name resolution and service discovery. While 
it would be possible to run a centralized DNS server for a network, this 
solution is totally unsuited to the network's technical and 
administrative architecture.

Fortunately, there are technologies for decentralized name and service 
name resolution available, which basically all base on sending multicast 
queries. For name resolution, the ones I know of are based on DNS, 
namely LLMNR (lead by Microsoft,  in the ietf's rfc process), and its 
predecessors known under the names of mdns, Multicast-DNS, Apple 
Rendezvous. For service discovery, there is Apple's Rendezvous based on 
SRV DNS entries, Microsoft's UPnP,  SLP (Service Location Protocol), 
Sun's stuff.

Because of the progress in standardization, and the availability of open 
source code, the ones based on DNS are the natural choice. I can smell a 
lot of political issues here (LLMNR by Microsoft, mDNS by Apple), but 
unfortunately don't know the background and games played.

There are two main problems I see in adopting them in a adhoc network:
1. Multicast Traffic
The named protocols were designed to be used in LANs, where mulitcast 
traffic is a cheap thing (for critics who are still in doubt, the 
argument is usually made, that you also run ARP). The protocols also 
work in adhoc network where multicast traffic is flooded to all nodes. 
Given the size of the current olsr networks, I don't see a big problem 
with that, but one can also see immediatly that this can be improved. 
Because caching of query responses is possible, intermediate nodes that 
know the requested information can reply to the request directly without 
flooding any further.

For the DNS based protocols, DNS packets are sent over a well-defined 
multicast address and port. Andreas, do you see a clean way how 
olsrd/plugin could provide this transparent caching functionality for 
answering mDNS requests?

2. Integration with OSes
The only OS with true multicast DNS integration is OS X, though it bases 
on Apple's old drafts. There is source code available for user-land mDNS 
servers, but I haven't seen any plug and play solution for the other 
major OSes.
Because the multicast protocols use DNS packets, writing a local DNS 
proxy ( to 224.x.x.x:535x) olsrd plugin should be feasible.

Because we are not in the position to play a role in the standards war, 
and because olsrd is based on internet technology, but won't be used to 
run the internet, only private adhoc networks, we could go for a 
pragmatic solution here.

 From my persprective, the first step towards usable decentralized name 
resolution is to implement/adopt a mDNS server for easy setup and 
integration with olsrd, and implementing a olsr proxy.

Opinions? Alternatives?

... Felix

More information about the Olsr-dev mailing list