|
NAMEmdnsd —
Multicast DNS/DNS-SD daemon
SYNOPSIS
DESCRIPTIONmdnsd is a Multicast Domain Name System (MDNS) daemon
which acts as the host mdns querier and responder.
mdnsd supports both raw MDNS as well as DNS-SD
(Service Discovery) as described in the MDNS and DNS-SD drafts.
MDNS is a way to perform DNS-like operations via multicast in the local link, there is no hierarchy or multiple domains as in conventional unicast DNS. MDNS provides a way for hosts to co-operate and maintain a cache name database which can then be used to resolve local host names without the need of a central DNS server. DNS-SD is a convention on some names used in MDNS to provide hosts with Service Discovery capabilities. A host can publish a service of any type, be it a HTTP server, NTP server, a Printer and so on, this services can then be browsed and resolved by the other hosts in the local network. There are basically two roles in a MDNS environment, the Querier, and the Responder. The Querier is the entity responsible for sending questions and MDNS requests in the local link, it can't be done as it is in libc, where each process does its own lookup, there must be something centralizing all the requests as there are various complications implied: cache, timers and so on. The Responder is the entity responsible for answering those queries, there should be only one responder per host. Both roles are performed by MDNS. MDNS operates on the All-Link-Local Multicast address 224.0.0.251 under UDP port 5353. There are no multiple domains in MDNS as in unicast DNS, the .local domain name is the single MDNS domain name and it's where all the queries and answers take place. There are three basic types of MDNS question, in which
The One-Shot Query, which resembles unicast DNS, where a single question is sent and an answer is expected, if no answer is received it means no one can answer that question. This question is used for simple lookups. Continuous Multicast Query is a more complex way of querying, the
querier will send the same question multiple times, doubling the interval
between each time,
To diminish the volume of redundant answers, a feature called Known Answer Suppression is present, in which the querier when performing a Continuous Multicast Query places all the previous known answers in the additional section of the MDNS packet, thus, any answer that would be given which is already in the additional section, is suppressed. There are two type of Resource Records, Unique and Shared. Unique records are the ones which there may be only one answer for it in the local name, the A, PTR and HINFO under the hostname.local name are examples of Unique records, it would be strange if two hosts would answer an address for the same foobar.local. All Unique records must be Probed to verify its uniqueness, if a conflict is found, another name must be chosen (Unimplemented). A Shared record is used for PTR records in DNS-SD, a host may have as many answers as necessary for a shared record, it's used only in network browsing, where there may be multiple instances of the same service. To access the MDNS services, a libmdns library will be provided in the near future, programs will then, be able to link with libmdns and publish its own services though MDNS. By now, only mdnsctl(8) is provided which is a command line interface to the daemon in the same fashion as ripctl(8) and ospfctl(8). When If -w was not specified,
MDNS operations can be done with the mdnsctl(8) utility. The options are as follows: FILES
SEE ALSOmdnsctl(8)MDNS Draft, http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt, July 2010. DNS-SD Draft, http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt, January 2011. LICENSEmdnsd is released under the ISC license.x
HISTORYThemdnsd program version 0.1 was released in 13
February 2011.
AUTHORSChristiano Farina Haesbaert <haesbaert@haesbaert.org>BUGSNo proper error return in mdnsl.c.
Visit the GSP FreeBSD Man Page Interface. |