Avahi is a technology which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite. In theory, this enables you to plug your computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared. Avahi also allows your computer to advertise running network services.
Avahi implements the Zeroconf specification, mDNS, DNS-SD and RFC 3927/IPv4LL. It also uses D-Bus. Compatible technology is found in Bonjour/mDNSResponder. By the way, Avahi is the Malagasy name and scientific Latin name of a genus of woolly lemur, a family of primates indigenous to Madagascar. The principal Avahi developers are Trent Lloyd and Lennart Poettering.
Multicast DNS (mDNS) is a way of using familiar Domain Name System (DNS) programming interfaces, packet formats and operating, without configuring a conventional DNS server. It is useful in small networks without a DNS server, but can also work in environments beside a DNS server. mDNS functionality is provided using IP multicast over User Datagram Protocol (UDP).
mDNS enables a client to determine the IP address of a given without the direct help of a centralised DNS server. The client, when looking for the given host’s IP, simply sends a mDNS IP multicast query message to all the hosts sharing its local network. The corresponding host replies with a multicast message announcing itself. With this reply, all machines in a subnet can update their mDNS cache with the given host’s information. A host can clear its announcement to a network by sending a response packet with a Time To Live (TTL) equal to zero. By the way, mDNS uses the reserved namespace .local
While Avahi can assign an IP address automatically, even without the presence of a DHCP server, it should not be confused with APIPA ( Automatic Private IP Addressing) which is implemented in Microsoft Windows local networks. APIPA is a DHCP failover mechanism for local networks. With APIPA, DHCP clients can obtain IP addresses when DHCP servers are non-functional. APIPA exists in all modern versions of Windows except Windows NT. When a DHCP server is unavailable or fails, APIPA allocates IP addresses in the private range 169.254.0.1 to 169.254.255.254. Clients verify their address is unique on the network using ARP. When the DHCP server is again able to service requests, clients update their addresses automatically.
By default, the Avahi service is enabled in most Linux distributions nowadays and thus uses a certain amount of system resources and may reduce network performance. It takes up about 250K of memory and requires two open ports (UDP 32768 and 5353.) Fedora 18 intends enabling it by default for desktops.
You can check the status of Avahi in Fedora 17 and later using:
# systemctl status avahi-daemon.service
If you do not need Avahi, I recommend that you disable it.
# systemctl disable avahi-daemon.service