522 lines
22 KiB
Plaintext
522 lines
22 KiB
Plaintext
|
|
|
|
DNSEXT Working Group Levon Esibov
|
|
INTERNET-DRAFT Bernard Aboba
|
|
Category: Standards Track Dave Thaler
|
|
<draft-ietf-dnsext-mdns-00.txt> Microsoft
|
|
November 16, 2000
|
|
|
|
|
|
Multicast DNS
|
|
|
|
This document is an Internet-Draft and is in full conformance with all
|
|
provisions of Section 10 of RFC2026.
|
|
|
|
Internet-Drafts are working documents of the Internet Engineering Task
|
|
Force (IETF), its areas, and its working groups. Note that other groups
|
|
may also distribute working documents as Internet- Drafts.
|
|
|
|
Internet-Drafts are draft documents valid for a maximum of six months
|
|
and may be updated, replaced, or obsoleted by other documents at any
|
|
time. It is inappropriate to use Internet-Drafts as reference material
|
|
or to cite them other than as "work in progress."
|
|
|
|
The list of current Internet-Drafts can be accessed at
|
|
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
|
|
The list of Internet-Draft Shadow Directories can be accessed at
|
|
http://www.ietf.org/shadow.html.
|
|
|
|
Copyright Notice
|
|
|
|
Copyright (C) The Internet Society (2000). All Rights Reserved.
|
|
|
|
Abstract
|
|
|
|
Today, with the rise of home networking, there are an increasing number
|
|
of small networks operating without a DNS server. In order to allow DNS
|
|
name resolution in such environments, the use of a multicast DNS is
|
|
proposed.
|
|
|
|
1. Introduction
|
|
|
|
Multicast DNS enables DNS name resolution in the scenarios when
|
|
conventional DNS name resolution is not possible. Namely, when there are
|
|
no DNS servers available on the network or available DNS servers do not
|
|
provide name resolution for the names of the hosts on the local
|
|
network. The latter case, for example, corresponds to a scenario when a
|
|
home network that doesn't have a DNS server is connected to the Internet
|
|
through an ISP and the home network hosts are configured with the ISP's
|
|
DNS server for the name resolution. The ISP's DNS server provides the
|
|
name resolution for the names registered on the Internet, but doesn't
|
|
provide name resolution for the names of the hosts on the home network.
|
|
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 1]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
|
|
This document discusses multicast DNS, an extension to the DNS protocol
|
|
which consists of a single change to the method of use, and no change to
|
|
the format of DNS packets.
|
|
|
|
Discovery of the services in general as well as discovery of the DNS
|
|
servers in particular using multicast DNS is left outside of the scope
|
|
of this document.
|
|
|
|
Name resolution over non-multicast capable media is left outside of the
|
|
scope of this document.
|
|
|
|
In this document, the key words "MAY", "MUST, "MUST NOT", "optional",
|
|
"recommended", "SHOULD", and "SHOULD NOT", are to be interpreted as
|
|
described in [1].
|
|
|
|
|
|
2. Name resolution using Multicast DNS
|
|
|
|
This extension to the DNS protocol consists of a single change to the
|
|
method of use, and no change whatsoever to the current format of DNS
|
|
packets. Namely, this extension allows multicast DNS queries to be sent
|
|
to and received on port 53 using the LINKLOCAL addresses [2] for IPv4
|
|
and IPv6 (below in this text referred as LINKLOCAL address), which are
|
|
yet to be assigned by IANA. LINKLOCAL addresses are used to prevent
|
|
propagation of the multicast DNS traffic across the routers that may
|
|
cause network flooding. Propagation of the multicast DNS packets within
|
|
the boundaries is considered sufficient to enable DNS name resolution,
|
|
since the expectation is that if a network has a router, then this
|
|
router can function as a mini-DHCP server, as described in [3], and a
|
|
DNS proxy, possibly implementing dynamic DNS. Thus there is not expected
|
|
to be a need for use of multicast DNS in networks with multiple
|
|
segments.
|
|
|
|
2.1 Behavior of the sender and responder
|
|
|
|
For the purpose of this document a device that sends a multicast query
|
|
is called a "sender", while a device that listens to (but not
|
|
necessarily responds to) a multicast query is called "responder". A
|
|
device configured to be a "responder" may also be a "sender". A device
|
|
configured to not be a "responder" cannot be a "sender".
|
|
|
|
A sender sends multicast DNS query for any legal Type of resource record
|
|
(e.g. A, PTR, etcà) for a name within the ".local.arpa." domain to the
|
|
LINKLOCAL address. The RD (Recursion Desired) bit MUST NOT be set. If a
|
|
responder receives a query with the header containing RD set bit, the
|
|
responder MUST ignore the RD bit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 2]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
|
|
If the multicast query is not positively resolved ("positively resolved"
|
|
refers in this document to the response with the RCODE set to 0) during
|
|
a limited amount of time, then a sender MAY repeat the transmission of a
|
|
query in order to assure themselves that the query has been received by
|
|
a host capable of responding to the query. Repetition MUST NOT be
|
|
attempted more than 5 times, and the repetition SHOULD NOT be repeated
|
|
more often than once per 0.1 seconds to reduce the unnecessary network
|
|
traffic. Retry intervals SHOULD be exponentially increased.
|
|
|
|
A responder listens on port 53 on the LINKLOCAL address. Responders MUST
|
|
respond to multicast queries to those and only those names for which
|
|
they are authoritative. As an example, computer
|
|
"host.example.com.local.arpa." is authoritative for the domain
|
|
"host.example.com.local.arpa.". When such host receives a multicast DNS
|
|
query for an A record for the name "host.example.com.local.arpa." it
|
|
responds with an A record(s) that contains its IP address(es) in the
|
|
RDATA of the record.
|
|
In conventional DNS terminology a DNS server authoritative for a zone is
|
|
authoritative for all the domain names under the zone root except for
|
|
the branches delegated into separate zones. Contrary to conventional DNS
|
|
terminology, a responder is authoritative only for the zone root. For
|
|
example the host "host.example.com.local.arpa." is not authoritative for
|
|
the name "child.host.example.com.local.arpa." unless the host is
|
|
configured with multiple names, including "host.example.com.local.arpa."
|
|
and "child.host.example.com.local.arpa.". The purpose of such limitation
|
|
of the name authority scope of a responder is to prevent complication
|
|
that could be caused by coexistence of two or more devices with the
|
|
names representing child and parent (or grandparents) nodes in the DNS
|
|
tree, for example, "host.example.com.local.arpa." and
|
|
"child.host.example.com.local.arpa.". In this example (unless this
|
|
limitation introduced) the multicast query for an A record for the name
|
|
"child.host.example.com.local.arpa." would cause two authoritative
|
|
responses: name error received from "host.example.com.local.arpa.", and
|
|
requested A record - from "child.host.example.com.local.arpa.". To
|
|
prevent such ambiguity, we could propose to implement multicast enabled
|
|
devices to perform a dynamic update of the parent (or grandparent) zone
|
|
with a delegation to a child zone, in this example a host
|
|
"child.host.example.com.local.arpa." would send a dynamic update for
|
|
the NS and glue A record to the "host.example.com.local.arpa.", but this
|
|
approach significantly complicates implementation of the multicast DNS
|
|
and would not be acceptable for a lightweight devices.
|
|
|
|
The response to the multicast query is composed in exactly the same
|
|
manner as in case of a response to the unicast DNS query as specified
|
|
in [4]. Responders MUST never respond using cached data, and the AA
|
|
(Authoritative Answer) bit MUST be set. The response is sent to the
|
|
sender via unicast. If a TC (truncation) bit is set in the response,
|
|
then the sender MAY use the response if it contains all necessary
|
|
information, or the sender MAY discard the response and resend the query
|
|
over TCP or using EDNS0 with larger window using unicast address of the
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 3]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
|
|
responder. The RA (Recursion Available) bit in the header of the
|
|
response MUST NOT be set. Even if the RA bit is set in the response
|
|
header, the sender MUST ignore it. The responder MUST set the Hop Limit
|
|
field in IPv6 header and TTL field in IPv4 header of all responses to
|
|
the multicast DNS query to 255. The sender MUST verify that the Hop
|
|
Limit field in IPv6 header and TTL field in IPv4 header of each response
|
|
to the multicast DNS query is set to 255. If it is not, then sender MUST
|
|
ignore such response.
|
|
|
|
The responder should use a pre-configured TTL [5] value in the records
|
|
returned in the multicast DNS query response. Due to the TTL
|
|
minimalization necessary when caching an RRset, all TTLs in an RRset
|
|
MUST be set to the same value.
|
|
|
|
The responder includes in the additional and authority section of the
|
|
response the same records, as a DNS server would insert in the response
|
|
to the unicast DNS query.
|
|
|
|
Sender MUST anticipate receiving no replies to some multicasted queries,
|
|
in the event that no responders are available within the multicast
|
|
scope, or in the event that no positive non-null responses exist to the
|
|
transmitted query.
|
|
|
|
If no positive response is received, a resolver treats it as a response
|
|
that no records of the specified type and class for the specified name
|
|
exist (NXRRSET), which SHOULD be cached for a period that SHOULD NOT
|
|
exceed 5 seconds.
|
|
|
|
Sender MUST anticipate receiving multiple replies to the same
|
|
multicasted query, in the event that several multicast DNS enabled
|
|
computers receive the query and respond with valid answers. When this
|
|
occurs, the responses MAY first be concatenated, and then treated in the
|
|
same manner that multiple RRs received from the same DNS server would,
|
|
ordinarily.
|
|
|
|
|
|
3. Usage model
|
|
|
|
A device configured to be a "responder" may also be a "sender". A device
|
|
configured to not be a "responder" cannot be a "sender".
|
|
|
|
Multicast DNS usage is determined by the domain search configuration as
|
|
well as by special treatment of the ".local.arpa." namespace. Any
|
|
device whose domain search configuration contains ".local.arpa." domain
|
|
is configured to behave as "responder". A device configured to be a
|
|
"responder" may also be a "sender". A device cannot be configured to
|
|
behave as one (i.e. sender or responder), but not another. The sender
|
|
treats queries for ".local.arpa." as a special case. The domain search
|
|
list can be configured manually or automatically via a DHCP option.
|
|
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 4]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
|
|
A sender MUST NOT send a unicast query for names ending with the
|
|
".local.arpa." suffix except in the case when a sender repeats a query
|
|
over TCP after it received a response to the previous multicast query
|
|
with TC bit set or unless sender's cache contains NS resource record
|
|
that enables sender to send a query directly to the devices
|
|
authoritative for the name in query.
|
|
|
|
It is not expected that a device "host.example.com." will be manually
|
|
configured to have additional name "host.example.com.local.arpa." when
|
|
it is configured to use multicast DNS. Instead, a responder with a name
|
|
"host.example.com." configured with ".local.arpa." suffix in its domain
|
|
search configuration is authoritative for the name
|
|
"host.example.com.local.arpa.". I.e. when responder with the name
|
|
"host.example.com." receives an A type query for the name
|
|
"host.example.com.local.arpa." it authoritatively responds to the query.
|
|
|
|
If ".local.arpa" is not in the domain search list, then multicast DNS
|
|
MUST NOT be used by a device. This implies that the device will neither
|
|
listen on the DNS LINKLOCAL multicast address, nor will it send queries
|
|
to that address. An auto-configured host will typically have
|
|
".local.arpa" first in its search list so that it will be enabled to
|
|
use mDNS. Typically an enterprise host will not have ".local.arpa" in
|
|
its search list at all so that it will not use mDNS.
|
|
|
|
The same device may use multicast DNS queries for the name resolution of
|
|
the names ending with ".local.arpa.", and unicast DNS queries for name
|
|
resolution of all other names. When a DNS client is requested by a user
|
|
or application to perform a name resolution of a dot-terminated name
|
|
that contains a ".local.arpa" suffix, a query for such name MUST be
|
|
multicasted and such name should not be concatenated with any suffix.
|
|
|
|
If a DNS server is running on a device, the device MUST NOT listen for
|
|
the multicast DNS queries, to prevent a device from listening on port 53
|
|
and intercepting DNS queries directed to a DNS server. A DNS server may
|
|
listen and respond to the multicast queries. A DNS server by default
|
|
doesn't listen to the multicast DNS queries. Presence of the
|
|
".local.arpa." in the domain search list doesn't affect the
|
|
configuration on the DNS server.
|
|
|
|
|
|
4. Sequence of events
|
|
|
|
The sequence of events for usage of multicast DNS is as follows:
|
|
|
|
1. If a sender needs to resolve a query for a name
|
|
"host.example.com.local.arpa", then it sends a multicast query to the
|
|
LINKLOCAL multicast address.
|
|
|
|
2. A responder responds to this query only if it is authoritative
|
|
for the domain name "host.example.com.local.arpa". The responder sends
|
|
a response to the sender via unicast over UDP.
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 5]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
|
|
3. Upon the reception of the response the sender verifies that the Hop
|
|
Limit field in IPv6 header or TTL field in IPv4 header (depending on
|
|
used protocol) of the response is set to 255. If it is, then sender
|
|
uses and caches the returned response. If not, then the sender ignores
|
|
the response and continues waiting for the response.
|
|
|
|
|
|
5. Name conflicts
|
|
|
|
It is required to verify the uniqueness of the host DNS name when a host
|
|
boots, when its name is changed, or when it is configured to use
|
|
multicast DNS (such as when the domain search option is changed to
|
|
include ".local.arpa.").
|
|
|
|
A gratuitous name resolution query SHOULD be done to check for a name
|
|
conflict. This is done by having the resolver send a multicast query for
|
|
a SOA type query for its own name (i.e. for the name it is authoritative
|
|
for). If the query is not positively resolved then host assumes
|
|
authority for the name. If the query is positively resolved, then the
|
|
host should verify that the computer name specified in the RDATA of the
|
|
SOA record in the answer section of the response is its own computer
|
|
name. If the host verifies it, then it assumes authority for its name.
|
|
If the host cannot match the returned computer name to its computer
|
|
name, then a conflict has been detected. In order to resolve name
|
|
conflict, the host will change the name.
|
|
|
|
A host that has detected a name conflict MUST NOT use the name. This
|
|
means that the host MUST NOT respond to multicast queries for that name
|
|
and MUST NOT respond to other multicast queries with the records that
|
|
contain in RDATA name in conflict (for example, PTR record).
|
|
|
|
Note that this name conflict detection mechanism doesn't prevent name
|
|
conflicts when previously separate networks are connected by a bridge.
|
|
Name conflict in such situation is detected when a sender receives more
|
|
than one response to its multicasted DNS query. Such sender sends using
|
|
unicast the first response that it received to all responders, except
|
|
the first one, that responded to this query. A host that receives a
|
|
response for a query for it's own name, even if it didn't send such
|
|
query, sends a multicast query for the SOA record for the name that it
|
|
is authoritative for. Based on the response the host detects the name
|
|
conflict and acts according to the description above.
|
|
|
|
|
|
6. IANA Considerations
|
|
|
|
Authors will contact IANA to reserve LINKLOCAL IPv4 and IPv6 addresses.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 6]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
|
|
7. Security Considerations
|
|
|
|
This draft does not prescribe a means of securing the multicast DNS
|
|
mechanism. It is possible that hosts will allocate conflicting names for
|
|
a period of time, or that non-conforming hosts will attempt to deny
|
|
service to other hosts by allocating the same name. Such attacks also
|
|
allow nodes to receive packets destined for other nodes. The protocol
|
|
reduces the exposure to such threats in the absence of authentication
|
|
by ignoring multicast DNS query response packets received from off-link
|
|
senders. The Hop Limit field in IPv6 and TTL field in IPv4 of all
|
|
received packets is verified to contain 255, the maximum legal value.
|
|
Because routers decrement the Hop Limit on all packets they forward,
|
|
received packets containing a Hop Limit of 255 must have originated
|
|
from a neighbor.
|
|
|
|
These threats are most serious in wireless networks such as 802.11,
|
|
since attackers on a wired network will require physical access to the
|
|
home network, while wireless attackers may reside outside the home. In
|
|
order to provide for privacy equivalent to a wired network, the 802.11
|
|
specification provides for RC4-based encryption. This is known as the
|
|
"Wired Equivalency Privacy" (WEP) specification. Where WEP is
|
|
implemented, an attacker will need to obtain the WEP key prior to
|
|
gaining access to the home network.
|
|
|
|
The mechanism specified in this draft does not require use of the
|
|
DNSSEC, which means that the responses to the multicast DNS queries may
|
|
not be authenticated. If a network contains a "signed key distribution
|
|
center" for all (or at least some) of the DNS zones that the responders
|
|
are authoritative for, then those devices on such a network are
|
|
configured with the key for the top zone, "local.arpa." (hosted by
|
|
"signed keys distribution center") may use DNSSEC for the authentication
|
|
of the responders using DNSSEC.
|
|
|
|
8. Acknowledgements
|
|
|
|
The authors would like to thank Stuart Cheshire, Michael Patton, Erik
|
|
Guttman, Olafur Gudmundsson, Thomas Narten, Mark Andrews, Erik Nordmark,
|
|
Myrong Hattig, Bill Manning and James Gilroy for comments on this draft.
|
|
|
|
9. Authors' Addresses
|
|
|
|
Levon Esibov
|
|
Microsoft Corporation
|
|
One Microsoft Way
|
|
Redmond, WA 98052
|
|
|
|
EMail: levone@microsoft.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 7]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
Bernard Aboba
|
|
Microsoft Corporation
|
|
One Microsoft Way
|
|
Redmond, WA 98052
|
|
|
|
Phone: +1 (425) 936-6605
|
|
EMail: bernarda@microsoft.com
|
|
|
|
|
|
Dave Thaler
|
|
Microsoft Corporation
|
|
One Microsoft Way
|
|
Redmond, WA 98052
|
|
|
|
Phone: +1 (425) 703-8835
|
|
EMail: dthaler@microsoft.com
|
|
|
|
|
|
10. References
|
|
|
|
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
|
Levels", BCP 14, RFC 2119, March 1997.
|
|
|
|
[2] Meyer, D., "Administratively Scoped IP Multicast", BCP 23, RFC
|
|
2365, July 1998.
|
|
|
|
[3] Aboba, B., "The Mini-DHCP Server", Internet draft (work in
|
|
progress), draft-aboba-dhc-mini-01.txt, April 2000.
|
|
|
|
[4] Mockapetris, P., "Domain Names - Implementation and Specification",
|
|
RFC 1035, November 1987.
|
|
|
|
[5] Mockapetris, P., "DOMAIN NAMES - CONCEPTS AND FACILITIES",
|
|
RFC 1034, November 1987.
|
|
|
|
11. Intellectual Property Statement
|
|
|
|
The IETF takes no position regarding the validity or scope of any
|
|
intellectual property or other rights that might be claimed to pertain
|
|
to the implementation or use of the technology described in this
|
|
document or the extent to which any license under such rights might or
|
|
might not be available; neither does it represent that it has made any
|
|
effort to identify any such rights. Information on the IETF's
|
|
procedures with respect to rights in standards-track and standards-
|
|
related documentation can be found in BCP-11. Copies of claims of
|
|
rights made available for publication and any assurances of licenses to
|
|
be made available, or the result of an attempt made to obtain a general
|
|
license or permission for the use of such proprietary rights by
|
|
implementors or users of this specification can be obtained from the
|
|
IETF Secretariat.
|
|
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 8]
|
|
|
|
INTERNET-DRAFT Multicast DNS 16 November 2000
|
|
|
|
|
|
The IETF invites any interested party to bring to its attention any
|
|
copyrights, patents or patent applications, or other proprietary rights
|
|
which may cover technology that may be required to practice this
|
|
standard. Please address the information to the IETF Executive
|
|
Director.
|
|
|
|
12. Full Copyright Statement
|
|
|
|
Copyright (C) The Internet Society (2000). All Rights Reserved.
|
|
This document and translations of it may be copied and furnished to
|
|
others, and derivative works that comment on or otherwise explain it or
|
|
assist in its implementation may be prepared, copied, published and
|
|
distributed, in whole or in part, without restriction of any kind,
|
|
provided that the above copyright notice and this paragraph are included
|
|
on all such copies and derivative works. However, this document itself
|
|
may not be modified in any way, such as by removing the copyright notice
|
|
or references to the Internet Society or other Internet organizations,
|
|
except as needed for the purpose of developing Internet standards in
|
|
which case the procedures for copyrights defined in the Internet
|
|
Standards process must be followed, or as required to translate it into
|
|
languages other than English. The limited permissions granted above are
|
|
perpetual and will not be revoked by the Internet Society or its
|
|
successors or assigns. This document and the information contained
|
|
herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE
|
|
INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
|
|
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
|
|
|
|
13. Expiration Date
|
|
|
|
This memo is filed as <draft-ietf-dnsext-mdns-00.txt>, and expires
|
|
May 16, 2001.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esibov, Aboba & Thaler Standards Track [Page 9]
|