Multicast DNS Network Service Discovery with Avahi
Auto-configuration in general is becoming very popular in new applications, one feature that is very usefull is the ability to "discover" services running on a network without manually entering IP addresses. Such services would include file servers, printers, and users ready to play network games! A new library, Avahi (http://www.freedesktop.org/Software/Avahi), developed by Trent Lloyd (Myself) and Lennart Poetterring allows developers to make easy use of this feature by way of the "Multicast DNS Service Discovery" (http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt) standard, as used by Apple dubbed "Bonjour" (previously known as Rendezvous, http://www.apple.com/macosx/features/bonjour/) This library has been developed to provide a fully free, LGPL and standard compliant implementation of mDNS-SD for linux, other implementations were previously non-free which restricted them from being packaged or distributed in major distrubutions, and hindered their use in major applications and platforms such as the GNOME desktop. I will be coding and pushing for Avahi integration into the GNOME 2.14 release, giving functionality such as discovering FTP and Webdav services within nautilus. This talk will walk through what mDNS-SD is, how to use it, and how developers can integrate this functionality into their C and Python programs including an explanation of all steps involved and code examples. The first section of this talk will be interesting to anyone interested in this new technology, the second half will be more interesting to developers who want to learn how to integrate Avahi into their applications, but would also be interesting to people who wish to learn more about the inner workings of Avahi.
Trent Lloyd is studying "Internetworking and Security" and the Murdoch University in Perth, Western Australia. His involvement with free software includes the Avahi Project, the Ubuntu "Masters of the Universe (MOTU)" team and a number of small contributions to the GNOME project. He has previously presented at Linux.conf.au 2003 and 2004 mini-conferences on IPv6 related topics, as well as organizing the IPv6 Mini-Conference in both years and being an organiser of the 2003 Perth conference.