mDNS was defined to achieve zero configuration, with zero configuration
being defined as providing the following features:
-
Addressing—Allocating IP addresses to hosts
-
Naming—Using
names to refer to hosts instead of IP addresses
-
Service
discovery—Finding services automatically on the network
With mDNS, network
users no longer have to assign IP addresses, assign host names, or type in
names to access services on the network. Users only need to ask to see what
network services are available, and choose from a list.
With mDNS,
addressing is
accomplished through the use of DHCP/DHCPv6 or IPv4 and IPv6 Link Local scoped
addresses. The benefit of zero-configuration occurs when no infrastructure
services such as DHCP or DNS are present and self-assigned link-local
addressing can be used. The client can then select a random IPv4 address in the
link-local range (169.254.0.0/24) or use its IPv6 link-local address
(FE80::/10) for communication.
With mDNS,
naming
(name-to-address translation on a local network using mDNS) queries are sent
over the local network using link-local scoped IP multicast. Because these DNS
queries are sent to a multicast address (IPv4 address 224.0.0.251 or IPv6
address FF02::FB), no single DNS server with global knowledge is required to
answer the queries. When a service or device sees a query for any service it is
aware of, it provides a DNS response with the information from its cache.
With mDNS,
service
discovery is accomplished by browsing. An mDNS query is sent out for a
given service type and domain, and any device that is aware of matching
services replies with service information. The result is a list of available
services for the user to choose from.
The mDNS protocol
(mDNS-RFC), together with DNS Service Discovery (DNS-SD-RFC) achieves the
zero-configuration addressing, naming, and service discovery.