Zero Configuration Networking (Zerofconf)
Bonjour, mDNS, LLMNR, and friends
This document provides a quick overview of how various link-local
auto-configuration network protocols works and interact with each
other. This is work in progress and reflects my current knowledge, which
might or might not be accurate.
Keywords: Bonjour, Rendezvous, mDNS, multicast-DNS, Zeroconf, LLMNR,
WINS, dynamic DNS updates, dynDNS, Link-Local Multicast Name Resolution,
DNS-SD, DNS service discovery, auto configuration
1 Overview
There is an IETF Zero Configuration Networking group
(http://www.zeroconf.org). The "goals" of Zeroconf are as follows:
- Allocate addresses without a DHCP server
- IP <--> Name translation without DNS server
- Service discovery (printers, directory server, etc.)
Notes
- I think that Wikipedia's Zeroconf site is incorrect or at least
misleading.
- IP allocation has been standardized first, is used by Apple,
Microsoft and others and is defined in RFC 3927
(uses 169.254.0.0/16), IPv6 auto-configuration is straight-forward
- Apple's Bonjour is Apple's implementation of Zeroconf. It uses Multicast DNS (mDNS) and DNS service discovery (DNS-SD)
- LLMNR (Link-Local Multicast Name Resolution) is Microsoft's
version. First appeared in WinVista and Win2008 Server. Differs
slightly from Bonjour.
2 Bonjour
aka. Rendezvous, mDNS, multicast-DNS
- Uses Multicast addresses.
- IPs and ports:
- 224.0.0.251
- FF02::FB
- Port 5353/UDP
- Currently an Internet Draft: draft-cheshire-dnsext-multicastdns.txt
- ?? Uses .local as DNS domain name.
- DNS service discovery (DNS-SD) extends mDNS to locate services like
printers, etc. using DNS SRV (and TXT) resource records.
3 LLMNR
aka. Link-Local Multicast Name Resolution Protocol.
Introduced by Microsoft with Windows Vista and Windows 2008 Server.
Similar but slightly different from Bonjour. LLMNR seems to be little
used
- Specified in (informational) RFC 4795
- Uses Multicast addresses.
- IPs and ports:
- 224.0.0.252
- FF02::1:3
- Port 5355/UDP [sic] (!= 5353)
- Supports any query, including SRV, but I don't know yet if/how service
discovery is specified to work for LLMNR