[olsr-dev] Integration of Multicast DNS
Thu Dec 23 12:19:36 CET 2004
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
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),
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
Because the multicast protocols use DNS packets, writing a local DNS
proxy (127.0.0.1:53 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.
More information about the Olsr-dev