What is Zeroconf?



Reaction score: 713
Messages: 1,557

Zeroconf (Zero Configuration) simplifies network configuration. It takes care of IP allocation for network devices so the user doesn't have to set this up manually. Zeroconf can be used even when DHCP isn't working correctly. With manual set up or with DHCP, two network devices can inadvertently be set for the same IP address and cause a conflict. Zeroconf makes sure that a network device is allocated to an IP address that is not occupied by another network connection. In Zeroconf, network administration uses device labels, rather than knowing IP addresses. These device labels are referenced in a Zeroconf implementation directory, and also by the local (in contrast to localhost) web-address.

Zeroconf consists of: MDNS (Multi-DNS) described by RFC 6762, DNS-SD (DNS-Service Discovery) described by RFC 6763, and link-local addressing (RFC3927 for IPv4; RFC 7404 for IPv6).

In Zeroconf, MDNS broadcasts probes to see which IP's are available, and which devices are connected. link-local addressing continues establishing network connections. DNS-SD allows the user to find which devices are available.

Bonjour, Avahi and Openmdns are different implementations of Zeroconf. Mac OS uses the Bonjour (formerly Rendezvous) protocol for Zeroconf, which net/mDNSResponder is FreeBSD's port of it. net/avahi-libdns is a library for the Linux (and FreeDesktop) implementation of Zeroconf. The OpenBSD implementation of Zeroconf is the lightweight (7k lines of code) net/openmdns. Openmdns, Avahi and mDNSResponder conflict in the ports tree.

To set up Bonjour's (mDNSresponder) Zeroconf implementation on FreeBSD, see: Thread how-to-install-and-configure-mdnsresponder.70713

DNS uses port 53, and MDNS uses port 5353.