# Avahi vs mDNSResponder

## Ahri

Hi this is an info-seeking post, I have been reading up on these two apps but would like more insight.

From what I've read it seems like Avahi isn't deemed 'ready' yet, which is why KDE's networking reccomends mDNSResponder. However on the Avahi website they've recently posted about how Avahi is fully compliant with Apple's Bonjour test suite... So is Avahi now 'ready' to be a replacement for mDNSResponder?

I also notice in Avahi's USE flags that howl-compat and mdnsresponder-compat are off by default, but there suggest to me that Avahi is now a superset of the available features, but one that provides backwards compatibility to the subsets that are Howl and mDNSResponder.

Am I correct? If I am then I'd like to remove mDNSResponder and compile Avahi with both compatibility flags on. Is this is a feasable replacement in the eyes of KDE?

Also; what are the different Avahi init scripts for? I have both avahi-daemon and avahi-dnsconfd.

Thanks in advance for clarification!

----------

## lefou

I'm interested in a good explanation too. Some packages only have support for avahi, so I would like to know, if I lose anything, when I switch from mDNSResponder to avahi.

----------

## 1ino1eum_4the_win

In the The GNOME Configuration HOWTO, at http://www.gentoo.org/doc/en/gnome-config.xml , it is writed that it could be a good idea to use howl as a DNS-detection to GNOME similar to rendez-vous apple.

but few weeks ago, with a emerge --depclean, emerge automaticaly removed howl ... so I went to the website : http://www.porchdogsoft.com/products/howl/ and they say that howl is dead , and advice linux users to use avahi instead ... 

so I guess the gnome config howto should be uptodate and we should remove howl and /etc/init.d/mDNSResponder frow rc-update, then  use avahii...

----------

## kastorff

Anyone got a definitive answer on this? I'm interested in the Avahi/mDNSResponder relationship as well.

----------

## rzZzn

I just want to *bump* this....

I would like an explanation... mDNSresponder or Avahi??? What to use???

Thanks rZn

----------

## dete

I'm no expert, but since no-one else seems to know anything better, here's what I've been able to glean so far.

mDNSresponder was released by Apple under an open-source license with the hope that it would speed the adoption of Zeroconf/Bonjour (nee Rendezvous).  It was intended to be a small but working implementation of Zeroconf for service announcement only; I don't believe that it included code for browsing or doing mDNS lookups.  The goal was to make it trivial for networked device manufacturers to make their devices (printers, routers, etc.) discoverable via Bonjour.  This code ran as-is on Linux and so was immediately used for service annoucement for that platform.

Howl was a library that added some abstractions atop of mDNSresponder, but used Apple's mDNSresponder code at its core.  This was mostly syntactic sugar.  Work on Howl has been suspended in lieu of Avahi.

libnss-mdns was written as a plugin for glibc to support Bonjour name resolution in any process using glibc for lookups (it's worth noting at this point that the host and dig commands DON'T use glibc's lookup mechanism, and so won't automatically do Bonjour name resolution even with libnss-mdns installed).  libnss-mdns implemented the core functionality of doing local name lookups, but didn't include service browsing, nor did it have support for wide-area Bonjour (which is reportedly coming from Apple in Leopard).  Recent versions of libnss-mdns depend on Avahi since it is more complete, although the code can still be built stand-alone if you don't need the extra functionality.  (The gentoo ebuild doesn't actually allow this, you'd need to build from source to disable the Avahi dependancy.)

Avahi was the project that ended up with all the momentum.  It's goal is a complete implemenation of the entire Zeroconf spec, and it already implements 100% of the required functionality, with only a few optional portions outstanding.  While Avahi may have borrowed some code from mDNSresponder, it is much more than a convenience library built on that code.  It appears to include optional compatibility APIs so that applications written for Howl or the original mDNSresponder can link to Avahi and work correctly.  At this point, for a non-imbedded Linux installation, there's is no point to look at anything other than Avahi.

Hope this helps!

----------

## rmh3093

I have been using avahi with my system for some time now and it works wonderfully.

----------

## rzZzn

 *dete wrote:*   

> Hope this helps!

 

Thank you  :Smile:  It clear things up.

//rZn

----------

## jcat

Thanks for the info, just swithced to avahi myself.  All good.

Cheers,

jcat

----------

## Kasumi_Ninja

Thanks for the info! Very insightful.

----------

