# What is Zeroconf?



## sidetone (Apr 4, 2021)

*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*, *openmdns* and *mdnsd* are different implementations of Zeroconf. Openmdns, Avahi and mDNSResponder conflict in the ports tree.

net/mDNSResponder - FreeBSD's port of  *MacOS*'s *Bonjour* (formerly _Rendezvous_) protocol. Bonjour is the original Zeroconf implementation, but it is often confused for the encompassing technology of Zeroconf.
net/openmdns - *OpenBSD* lightweight (7k lines of code) and complete Zeroconf implementation.
net/avahi-libdns - a library for the *Linux* (and *FreeDesktop*) implementation of Zeroconf.
dns/mdnsd - *BSD* developer's implementation of Zeroconf. NetBSD contains an mdnsd, which is of Bonjour. Unsure if these are the same mdnsd.
Foxen - based on Howl implementation for Zeroconf. Mozilla related implementation. Foxen and Howl seem to be defunct.
To set up Bonjour's (mDNSResponder) Zeroconf implementation on FreeBSD, see: Thread how-to-install-and-configure-mdnsresponder.70713. dns-sd(1) is a testing tool that comes with mDNSRresponder.

DNS uses port 53, and MDNS uses port 5353. Zeroconf uses IP's on the local network. When there's no DHCP server, Zeroconf is expected to use IP's 169.254.1.0 through 169.254.254.255.

*More*

http://zeroconf.org
Zero Configuration Networking: The Definite Guide
https://www.oreilly.com/library/view/zero-configuration-networking/0596101007/ch01.html

https://developer.apple.com/bonjour/
http://www.haesbaert.org/openmdns/
https://github.com/Pro/mdnsd/


----------



## Jose (Jul 29, 2021)

The port net/mDNSResponder also installs a /usr/local/sbin/mdnsd daemon which can be enabled using `mdnsd` flags in rc.conf. It's meant for client systems as explained here:








						How to install and configure mDNSResponder
					

Wasn't able to find much info on configuring mDNSResponder. Most posts talk about using Avahi or Netatalk. I was using Avahi on FreeBSD 11 and recently clean installed FreeBSD 12-Release and read somewhere that mDNSResponder is more lightweight (but don't quote me on that :p).  Anyhow, I was...




					forums.FreeBSD.org


----------

