wiki:Avah4users

Avahi for the Users

Screenshots

On the Avahi Walk of Fame you can get a glimpse on what Avahi can do for you.

Software Making use of Avahi

The below list contains applications that are using Avahi in one way or another, although it is incomplete. If you think there's an application that should be added to this, no matter whether it supports Avahi natively or via Avahi's excellent compatibility layer, do not hesitate to add this particular application to the below list!

Or even better - If you do have some neat screenshots about an application that runs against Avahi, you may consider to add your shots to the Avahi Walk of Fame.

Devices Making use of Avahi

FAQ

  1. Is it OK to run multiple mDNS responders on the same machine?
    • No, it is not OK. Sooner or later some mDNS features known as "Known Answer Suppression" and "Unicast Reply" (and probably some more) will result in problems if more than one responder runs on the same machine.
  2. May I enable the mDNS reflector on multiple hosts accessing the same two networks?
    • No, don't do that. Queries will be looped, and sooner or later your network will be stalled with mDNS traffic.
  3. Avahi doesn't work, it doesn't register or find any services and doesn't resolve mDNS host names!
    • Make sure:
      • That you run a recent Kernel (both Linux 2.4 and 2.6 should work) with IP Multicasting enabled
      • That you run only one mDNS stack
      • That you disabled all local firewalls (This includes disabling the Firestarter default FW), at least for UDP traffic from and to port 5353
      • That you don't use a crappy NDISWrapper driver or proprietary WLAN driver that doesn't support multicasting properly
      • If you want the entire system to resolve .local domain names, nss-mdns is for you
  4. Does avahi run on non-Linux operating systems?
    • Avahi 0.6 runs on Linux, FreeBSD, NetBSD, Solaris and Darwin/MacOSX. There is some preliminary support for OpenBSD. Avahi still lacks Win32 support. You're welcome to help porting!
  5. Blah, you fools, glib is bloat and sucks!
    • Avahi doesn't depend on glib. Yet it comes with a glib event loop adapter. Use --disable-glib to disable building it.
  6. Blah, you fools, D-Bus is bloat and sucks!
    • Then Avahi is not for you, sorry. As it seems we think a little different about D-Bus than you do.
  7. Why did you implement yet another free mDNS stack? Apple released their code under a free license!
    • The "freeness" of the license Apple used is questionnable, e.g. the Debian project decided to not include code under APSL (Bonjour is now licensed under the Apache License 2.0). In addition we consider our code superior to Apple's in many aspects. In case you want to flame us on this topic, our email address is /dev/null.
  8. Will Avahi work without a GUI and/or X/GNOME/KDE?
    • Yes, while Avahi is most often useful in a GUI with some kind of program, actual use of its libraries are in no way tied to X, GNOME, KDE or any other kind of GUI. The screenshot we show here is simply of a tool which displays services on the network (It's really just a demonstration). One example is that you can use the static service files (/etc/avahi/services/) to advertise some services on a head-less machine, e.g. a WEB or FTP server.
  9. I want to bridge two networks that are connected via a VPN regarding mDNS. Avahi doesn't let me!
    • By default Avahi will not consider a Point-To-Point link (such as a VPN link) for mDNS traffic. This has multiple reasons. One is security, since usually P-t-P links are used for connections to the Internet. Secondly, P-t-P links are usually much slower latency-wise than normal Ethernet based LAN. mDNS however is designed exclusively for low-latency networks. A number of timeout limitations inhibit the use of mDNS over long-latency links. Finally, multicasting is usually not supported or at least cumbersome on P-t-P links. If you still want to use Avahi with P-t-P links, you can enable the allow-point-to-point= option in Avahi's configuration file. But don't come to us and whine when it doesn't work for you. YMMV.
  10. How can I tell Avahi to ignore certain network interfaces?
    • Right now Avahi will make use of all suitable network interfaces, there is no configuration option to restrict the interfaces used. However, there is a trick to make sure that Avahi ignores specific interfaces: remove the MULTICAST bit from the interface flags. You can do this with ifconfig like this:
      ifconfig eth1 -multicast
      
    • Keep in mind that this might disable multicasting for other applications, too. Since only very few programs make use of multicasting this is usally not much a problem, though.
    • To automatically remove the MULTICAST bit using udev on specific interfaces, add a file to /etc/udev/rules.d containing this (replace "RULE TO MATCH DEVICES" with correct rule):
      ACTION=="add", SUBSYSTEM=="net", KERNEL=="RULE TO MATCH DEVICES", PROGRAM="/sbin/ifconfig %k -multicast"
      
  11. I installed Avahi and now I cannot resolve hosts from my unicast DNS zone .local!
  12. avahi-discover doesn't find my bonjour-enabled HP printer/other device!
    • Not all mDNS implementations (especially embedded ones) support the special protocol extension that is required to allow avahi-discover to find a service without asking for a specific service type. Thus, some printers and a few other devices will not show up in avahi-discover. You should, however, be able to find them if you look for them with avahi-browse and specify service type you are looking for. e.g.: avahi-browse _ipp._tcp
  13. I want to write a TCP server application that automatically chooses a free IP port for listening and then announces it via Avahi. How do I do that best?
    • Just create the socket and call listen() on it. Then, the IP stack will automatically assign a free port number. Use getsockname() to query the port number that has been chosen and use that when registering the Avahi service. An example how to do this may be found in our GIT
  14. I get a lot of IP_ADD_MEMBERSHIP failed: No buffer space available messages in syslog!
    • Increase your /proc/sys/net/ipv4/igmp_max_memberships (on Linux)
  15. My system running Avahi can see all services on the network but its own services can not be seen on other machines (or vice versa)!
    • Make sure that you are not running a firewall that blocks multicast traffic on port 5353, group 224.0.0.251. If that's not the issue then you most likely are experiencing trouble with a broken network driver or WLAN AP, which doesn't properly support IP multicasting. Try to set the ALLMULTI or even PROMISC flags for your interface with ifconfig. Also, try to enable UPnP support in your router (because some routers disable multicasting if UPnP is not enabled). And check with wireshark what traffic is actually being generated and where it is lost!

Documentation

You can read the man pages online:

There's also some information about AvahiAutoipd available, and about AvahiAndUnicastDotLocal.

Troubleshooting

Some wifi cards using proprietary or ndiswrapper drivers may not work. The following cards require specific customisation:

  • Linksys (lsbcmnds ndiswrapper driver) - not working. Occasionally seen in Avahi browser when avahi-daemon is restarted, but queries soon timeout. Unable to see other machines. Note - iwconfig notes that "Warning: Driver for device wlan0 recommend version 18 of Wireless Extension, but has been compiled with version 17, therefore some driver features may not be available..."
Last modified 3 years ago Last modified on Nov 18, 2011, 11:45:34 AM