mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
sync
This commit is contained in:
parent
04e104d1c2
commit
38e8b3d11b
21 changed files with 2689 additions and 14347 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1,785 +0,0 @@
|
|||
|
||||
|
||||
|
||||
IPv6 Maintenance Working Group S. Kawamura
|
||||
Internet-Draft NEC BIGLOBE, Ltd.
|
||||
Updates: 4291 (if approved) M. Kawashima
|
||||
Intended status: Standards Track NEC AccessTechnica, Ltd.
|
||||
Expires: August 29, 2010 February 25, 2010
|
||||
|
||||
|
||||
A Recommendation for IPv6 Address Text Representation
|
||||
draft-ietf-6man-text-addr-representation-07
|
||||
|
||||
Abstract
|
||||
|
||||
As IPv6 deployment increases there will be a dramatic increase in the
|
||||
need to use IPv6 addresses in text. While the IPv6 address
|
||||
architecture in RFC 4291 section 2.2 describes a flexible model for
|
||||
text representation of an IPv6 address this flexibility has been
|
||||
causing problems for operators, system engineers, and users. This
|
||||
document defines a canonical textual representation format. It does
|
||||
not define a format for internal storage, such as within an
|
||||
application or database. It is expected that the canonical format is
|
||||
followed by humans and systems when representing IPv6 addresses as
|
||||
text, but all implementations must accept and be able to handle any
|
||||
legitimate RFC 4291 format.
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This Internet-Draft is submitted to IETF in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
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.
|
||||
|
||||
This Internet-Draft will expire on August 29, 2010.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 1]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the BSD License.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 2]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4
|
||||
2. Text Representation Flexibility of RFC4291 . . . . . . . . . . 4
|
||||
2.1. Leading Zeros in a 16 Bit Field . . . . . . . . . . . . . 4
|
||||
2.2. Zero Compression . . . . . . . . . . . . . . . . . . . . . 5
|
||||
2.3. Uppercase or Lowercase . . . . . . . . . . . . . . . . . . 5
|
||||
3. Problems Encountered with the Flexible Model . . . . . . . . . 6
|
||||
3.1. Searching . . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
3.1.1. General Summary . . . . . . . . . . . . . . . . . . . 6
|
||||
3.1.2. Searching Spreadsheets and Text Files . . . . . . . . 6
|
||||
3.1.3. Searching with Whois . . . . . . . . . . . . . . . . . 6
|
||||
3.1.4. Searching for an Address in a Network Diagram . . . . 7
|
||||
3.2. Parsing and Modifying . . . . . . . . . . . . . . . . . . 7
|
||||
3.2.1. General Summary . . . . . . . . . . . . . . . . . . . 7
|
||||
3.2.2. Logging . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
3.2.3. Auditing: Case 1 . . . . . . . . . . . . . . . . . . . 7
|
||||
3.2.4. Auditing: Case 2 . . . . . . . . . . . . . . . . . . . 8
|
||||
3.2.5. Verification . . . . . . . . . . . . . . . . . . . . . 8
|
||||
3.2.6. Unexpected Modifying . . . . . . . . . . . . . . . . . 8
|
||||
3.3. Operating . . . . . . . . . . . . . . . . . . . . . . . . 8
|
||||
3.3.1. General Summary . . . . . . . . . . . . . . . . . . . 8
|
||||
3.3.2. Customer Calls . . . . . . . . . . . . . . . . . . . . 8
|
||||
3.3.3. Abuse . . . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
3.4. Other Minor Problems . . . . . . . . . . . . . . . . . . . 9
|
||||
3.4.1. Changing Platforms . . . . . . . . . . . . . . . . . . 9
|
||||
3.4.2. Preference in Documentation . . . . . . . . . . . . . 9
|
||||
3.4.3. Legibility . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
4. A Recommendation for IPv6 Text Representation . . . . . . . . 9
|
||||
4.1. Handling Leading Zeros in a 16 Bit Field . . . . . . . . . 10
|
||||
4.2. "::" Usage . . . . . . . . . . . . . . . . . . . . . . . . 10
|
||||
4.2.1. Shorten As Much As Possible . . . . . . . . . . . . . 10
|
||||
4.2.2. Handling One 16 Bit 0 Field . . . . . . . . . . . . . 10
|
||||
4.2.3. Choice in Placement of "::" . . . . . . . . . . . . . 10
|
||||
4.3. Lower Case . . . . . . . . . . . . . . . . . . . . . . . . 10
|
||||
5. Text Representation of Special Addresses . . . . . . . . . . . 10
|
||||
6. Notes on Combining IPv6 Addresses with Port Numbers . . . . . 11
|
||||
7. Prefix Representation . . . . . . . . . . . . . . . . . . . . 12
|
||||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 12
|
||||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
|
||||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
11.1. Normative References . . . . . . . . . . . . . . . . . . . 12
|
||||
11.2. Informative References . . . . . . . . . . . . . . . . . . 13
|
||||
Appendix A. For Developers . . . . . . . . . . . . . . . . . . . 13
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
|
||||
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 3]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
A single IPv6 address can be text represented in many ways. Examples
|
||||
are shown below.
|
||||
|
||||
2001:db8:0:0:1:0:0:1
|
||||
|
||||
2001:0db8:0:0:1:0:0:1
|
||||
|
||||
2001:db8::1:0:0:1
|
||||
|
||||
2001:db8::0:1:0:0:1
|
||||
|
||||
2001:0db8::1:0:0:1
|
||||
|
||||
2001:db8:0:0:1::1
|
||||
|
||||
2001:db8:0000:0:1::1
|
||||
|
||||
2001:DB8:0:0:1::1
|
||||
|
||||
All of the above examples represent the same IPv6 address. This
|
||||
flexibility has caused many problems for operators, systems
|
||||
engineers, and customers. The problems are noted in Section 3.
|
||||
Also, a canonical representation format to avoid problems is
|
||||
introduced in Section 4.
|
||||
|
||||
1.1. Requirements Language
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
|
||||
2. Text Representation Flexibility of RFC4291
|
||||
|
||||
Examples of flexibility in Section 2.2 of [RFC4291] are described
|
||||
below.
|
||||
|
||||
2.1. Leading Zeros in a 16 Bit Field
|
||||
|
||||
'It is not necessary to write the leading zeros in an individual
|
||||
field.'
|
||||
|
||||
Conversely it is also not necessary to omit leading zeros. This
|
||||
means that, it is possible to select from such as the following
|
||||
example. The final 16 bit field is different, but all these
|
||||
addresses represent the same address.
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 4]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:eeee:0001
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:eeee:001
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:eeee:01
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:eeee:1
|
||||
|
||||
2.2. Zero Compression
|
||||
|
||||
'A special syntax is available to compress the zeros. The use of
|
||||
"::" indicates one or more groups of 16 bits of zeros.'
|
||||
|
||||
It is possible to select whether or not to omit just one 16 bits of
|
||||
zeros.
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd::1
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:0:1
|
||||
|
||||
In case where there is more than one zero fields, there is a choice
|
||||
of how many fields can be shortened.
|
||||
|
||||
2001:db8:0:0:0::1
|
||||
|
||||
2001:db8:0:0::1
|
||||
|
||||
2001:db8:0::1
|
||||
|
||||
2001:db8::1
|
||||
|
||||
In addition, [RFC4291] in section 2.2 notes,
|
||||
|
||||
'The "::" can only appear once in an address.'
|
||||
|
||||
This gives a choice on where in a single address to compress the
|
||||
zero.
|
||||
|
||||
2001:db8::aaaa:0:0:1
|
||||
|
||||
2001:db8:0:0:aaaa::1
|
||||
|
||||
2.3. Uppercase or Lowercase
|
||||
|
||||
[RFC4291] does not mention any preference of uppercase or lowercase.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 5]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:eeee:aaaa
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:eeee:AAAA
|
||||
|
||||
2001:db8:aaaa:bbbb:cccc:dddd:eeee:AaAa
|
||||
|
||||
|
||||
3. Problems Encountered with the Flexible Model
|
||||
|
||||
3.1. Searching
|
||||
|
||||
3.1.1. General Summary
|
||||
|
||||
A search of an IPv6 address if conducted through a UNIX system is
|
||||
usually case sensitive and extended options to allow for regular
|
||||
expression use will come in handy. However, there are many
|
||||
applications in the Internet today that do not provide this
|
||||
capability. When searching for an IPv6 address in such systems, the
|
||||
system engineer will have to try each and every possibility to search
|
||||
for an address. This has critical impacts especially when trying to
|
||||
deploy IPv6 over an enterprise network.
|
||||
|
||||
3.1.2. Searching Spreadsheets and Text Files
|
||||
|
||||
Spreadsheet applications and text editors on GUI systems, rarely have
|
||||
the ability to search for a text using regular expression. Moreover,
|
||||
there are many non-engineers (who are not aware of case sensitivity
|
||||
and regular expression use) that use these application to manage IP
|
||||
addresses. This has worked quite well with IPv4 since text
|
||||
representation in IPv4 has very little flexibility. There is no
|
||||
incentive to encourage these non-engineers to change their tool or
|
||||
learn regular expression when they decide to go dual-stack. If the
|
||||
entry in the spreadsheet reads, 2001:db8::1:0:0:1, but the search was
|
||||
conducted as 2001:db8:0:0:1::1, this will show a result of no match.
|
||||
One example where this will cause problem is, when the search is
|
||||
being conducted to assign a new address from a pool, and a check was
|
||||
being done to see if it was not in use. This may cause problems to
|
||||
the end-hosts or end-users. This type of address management is very
|
||||
often seen in enterprise networks and also in ISPs.
|
||||
|
||||
3.1.3. Searching with Whois
|
||||
|
||||
The "whois" utility is used by a wide range of people today. When a
|
||||
record is set to a database, one will likely check the output to see
|
||||
if the entry is correct. If an entity was recorded as 2001:db8::/48,
|
||||
but the whois output showed 2001:0db8:0000::/48, most non-engineers
|
||||
would think that their input was wrong and will likely retry several
|
||||
times or make a frustrated call to the database hostmaster. If there
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 6]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
was a need to register the same address on different systems, and
|
||||
each system showed a different text representation, this would
|
||||
confuse people even more. Although this document focuses on
|
||||
addresses rather than prefixes, this is worth mentioning since the
|
||||
problems encountered are mostly equal.
|
||||
|
||||
3.1.4. Searching for an Address in a Network Diagram
|
||||
|
||||
Network diagrams and blueprints often show what IP addresses are
|
||||
assigned to a system devices. In times of trouble shooting there may
|
||||
be a need to search through a diagram to find the point of failure
|
||||
(for example, if a traceroute stopped at 2001:db8::1, one would
|
||||
search the diagram for that address). This is a technique quite
|
||||
often in use in enterprise networks and managed services. Again, the
|
||||
different flavors of text representation will result in a time-
|
||||
consuming search leading to longer MTTR in times of trouble.
|
||||
|
||||
3.2. Parsing and Modifying
|
||||
|
||||
3.2.1. General Summary
|
||||
|
||||
With all the possible methods of text representation each application
|
||||
must include a module, object, link, etc. to a function that will
|
||||
parse IPv6 addresses in a manner that no matter how it is
|
||||
represented, they will mean the same address. Many system engineers
|
||||
who integrate complex computer systems for corporate customers will
|
||||
have difficulties finding that their favorite tool will not have this
|
||||
function, or will encounter difficulties such as having to rewrite
|
||||
their macros or scripts for their customers.
|
||||
|
||||
3.2.2. Logging
|
||||
|
||||
If an application were to output a log summary that represented the
|
||||
address in full (such as 2001:0db8:0000:0000:1111:2222:3333:4444),
|
||||
the output would be highly unreadable compared to the IPv4 output.
|
||||
The address would have to be parsed and reformed to make it useful
|
||||
for human reading. Sometimes logging for critical systems is done by
|
||||
mirroring the same traffic to two different systems. Care must be
|
||||
taken so that no matter what the log output is the logs should be
|
||||
parsed so they will mean the same.
|
||||
|
||||
3.2.3. Auditing: Case 1
|
||||
|
||||
When a router or any other network appliance machine configuration is
|
||||
audited, there are many methods to compare the configuration
|
||||
information of a node. Sometimes auditing will be done by just
|
||||
comparing the changes made each day. In this case if configuration
|
||||
was done such that 2001:db8::1 was changed to 2001:0db8:0000:0000:
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 7]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
0000:0000:0000:0001 just because the new engineer on the block felt
|
||||
it was better, a simple diff will show that a different address was
|
||||
configured. If this was done on a wide scale network people will be
|
||||
focusing on 'why the extra zeros were put in' instead of doing any
|
||||
real auditing. Lots of tools are just plain diffs that do not take
|
||||
into account address representation rules.
|
||||
|
||||
3.2.4. Auditing: Case 2
|
||||
|
||||
Node configurations will be matched against an information system
|
||||
that manages IP addresses. If output notation is different there
|
||||
will need to be a script that is implemented to cover for this. The
|
||||
result of an SNMP GET operation, converted to text and compared to a
|
||||
textual address written by a human is highly unlikely to match on the
|
||||
first try.
|
||||
|
||||
3.2.5. Verification
|
||||
|
||||
Some protocols require certain data fields to be verified. One
|
||||
example of this is X.509 certificates. If an IPv6 address field in a
|
||||
certificate was incorrectly verified by converting it to text and
|
||||
making a simple textual comparison to some other address, the
|
||||
certificate may be mistakenly shown as being invalid due to a
|
||||
difference in text representation methods.
|
||||
|
||||
3.2.6. Unexpected Modifying
|
||||
|
||||
Sometimes, a system will take an address and modify it as a
|
||||
convenience. For example, a system may take an input of
|
||||
2001:0db8:0::1 and make the output 2001:db8::1. If the zeros were
|
||||
input for a reason, the outcome may be somewhat unexpected.
|
||||
|
||||
3.3. Operating
|
||||
|
||||
3.3.1. General Summary
|
||||
|
||||
When an operator sets an IPv6 address of a system as 2001:db8:0:0:1:
|
||||
0:0:1, the system may take the address and show the configuration
|
||||
result as 2001:DB8::1:0:0:1. Someone familiar with IPv6 address
|
||||
representation will know that the right address is set, but not
|
||||
everyone may understand this.
|
||||
|
||||
3.3.2. Customer Calls
|
||||
|
||||
When a customer calls to inquire about a suspected outage, IPv6
|
||||
address representation should be handled with care. Not all
|
||||
customers are engineers nor have the same skill in IPv6 technology.
|
||||
The network operations center will have to take extra steps to
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 8]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
humanly parse the address to avoid having to explain to the customers
|
||||
that 2001:db8:0:1::1 is the same as 2001:db8::1:0:0:0:1. This is one
|
||||
thing that will never happen in IPv4 because IPv4 address cannot be
|
||||
abbreviated.
|
||||
|
||||
3.3.3. Abuse
|
||||
|
||||
Network abuse reports generally include the abusing IP address. This
|
||||
'reporting' could take any shape or form of the flexible model. A
|
||||
team that handles network abuse must be able to tell the difference
|
||||
between a 2001:db8::1:0:1 and 2001:db8:1::0:1. Mistakes in the
|
||||
placement of the "::" will result in a critical situation. A system
|
||||
that handles these incidents should be able to handle any type of
|
||||
input and parse it in a correct manner. Also, incidents are reported
|
||||
over the phone. It is unnecessary to report if the letter is an
|
||||
uppercase or lowercase. However, when a letter is spelled uppercase,
|
||||
people tend to clarify that it is uppercase, which is unnecessary
|
||||
information.
|
||||
|
||||
3.4. Other Minor Problems
|
||||
|
||||
3.4.1. Changing Platforms
|
||||
|
||||
When an engineer decides to change the platform of a running service,
|
||||
the same code may not work as expected due to the difference in IPv6
|
||||
address text representation. Usually, a change in a platform (e.g.
|
||||
Unix to Windows, Cisco to Juniper) will result in a major change of
|
||||
code anyway, but flexibility in address representation will increase
|
||||
the work load.
|
||||
|
||||
3.4.2. Preference in Documentation
|
||||
|
||||
A document that is edited by more than one author may become harder
|
||||
to read.
|
||||
|
||||
3.4.3. Legibility
|
||||
|
||||
Capital case D and 0 can be quite often misread. Capital B and 8 can
|
||||
also be misread.
|
||||
|
||||
|
||||
4. A Recommendation for IPv6 Text Representation
|
||||
|
||||
A recommendation for a canonical text representation format of IPv6
|
||||
addresses is presented in this section. The recommendation in this
|
||||
document is one that, complies fully with [RFC4291], is implemented
|
||||
by various operating systems, and is human friendly. The
|
||||
recommendation in this section SHOULD be followed by systems when
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 9]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
generating an address to represent as text, but all implementations
|
||||
MUST accept and be able to handle any legitimate [RFC4291] format.
|
||||
It is advised that humans also follow these recommendations when
|
||||
spelling an address.
|
||||
|
||||
4.1. Handling Leading Zeros in a 16 Bit Field
|
||||
|
||||
Leading zeros MUST be suppressed. For example 2001:0db8::0001 is not
|
||||
acceptable and must be represented as 2001:db8::1. A single 16 bit
|
||||
0000 field MUST be represented as 0.
|
||||
|
||||
4.2. "::" Usage
|
||||
|
||||
4.2.1. Shorten As Much As Possible
|
||||
|
||||
The use of symbol "::" MUST be used to its maximum capability. For
|
||||
example, 2001:db8::0:1 is not acceptable, because the symbol "::"
|
||||
could have been used to produce a shorter representation 2001:db8::1.
|
||||
|
||||
4.2.2. Handling One 16 Bit 0 Field
|
||||
|
||||
The symbol "::" MUST NOT be used to shorten just one 16 bit 0 field.
|
||||
For example, the representation 2001:db8:0:1:1:1:1:1 is correct, but
|
||||
2001:db8::1:1:1:1:1 is not correct.
|
||||
|
||||
4.2.3. Choice in Placement of "::"
|
||||
|
||||
When there is an alternative choice in the placement of a "::", the
|
||||
longest run of consecutive 16 bit 0 fields MUST be shortened (i.e.
|
||||
the sequence with three consecutive zero fields is shortened in 2001:
|
||||
0:0:1:0:0:0:1). When the length of the consecutive 16 bit 0 fields
|
||||
are equal (i.e. 2001:db8:0:0:1:0:0:1), the first sequence of zero
|
||||
bits MUST be shortened. For example 2001:db8::1:0:0:1 is correct
|
||||
representation.
|
||||
|
||||
4.3. Lower Case
|
||||
|
||||
The characters "a", "b", "c", "d", "e", "f" in an IPv6 address MUST
|
||||
be represented in lower case.
|
||||
|
||||
|
||||
5. Text Representation of Special Addresses
|
||||
|
||||
Addresses such as IPv4-Mapped IPv6 addresses, ISATAP [RFC5214], and
|
||||
IPv4-translatable addresses [I-D.ietf-behave-address-format] have
|
||||
IPv4 addresses embedded in the low-order 32 bits of the address.
|
||||
These addresses have special representation that may mix hexadecimal
|
||||
and dot decimal notations. The decimal notation may be used only for
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 10]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
the last 32 bits of the address. For these addresses, mixed notation
|
||||
is RECOMMENDED if the following condition is met: The address can be
|
||||
distinguished as having IPv4 addresses embedded in the lower 32 bits
|
||||
solely from the address field through the use of a well known prefix.
|
||||
Such prefixes are defined in [RFC4291] and [RFC2765] at the time of
|
||||
writing. If it is known by some external method that a given prefix
|
||||
is used to embed IPv4, it MAY be represented as mixed notation.
|
||||
Tools that provide options to specify prefixes that are (or are not)
|
||||
to be represented as mixed notation may be useful.
|
||||
|
||||
There is a trade-off here where a recommendation to achieve exact
|
||||
match in a search (no dot decimals whatsoever) and recommendation to
|
||||
help the readability of an addresses (dot decimal whenever possible)
|
||||
does not result in the same solution. The above recommendation is
|
||||
aimed at fixing the representation as much as possible while leaving
|
||||
the opportunity for future well known prefixes to be represented in a
|
||||
human friendly manner as tools adjust to newly assigned prefixes.
|
||||
|
||||
The text representation method noted in Section 4 should be applied
|
||||
for the leading hexadecimal part (i.e. ::ffff:192.0.2.1 instead of
|
||||
0:0:0:0:0:ffff:192.0.2.1).
|
||||
|
||||
|
||||
6. Notes on Combining IPv6 Addresses with Port Numbers
|
||||
|
||||
When IPv6 addresses and port numbers are represented in text combined
|
||||
together, there are many different ways to do so. Examples are shown
|
||||
below.
|
||||
|
||||
o [2001:db8::1]:80
|
||||
|
||||
o 2001:db8::1:80
|
||||
|
||||
o 2001:db8::1.80
|
||||
|
||||
o 2001:db8::1 port 80
|
||||
|
||||
o 2001:db8::1p80
|
||||
|
||||
o 2001:db8::1#80
|
||||
|
||||
The situation is not much different in IPv4, but the most ambiguous
|
||||
case with IPv6 is the second bullet. This is due to the "::"usage in
|
||||
IPv6 addresses. This style is NOT RECOMMENDED for its ambiguity.
|
||||
The [] style as expressed in [RFC3986] SHOULD be employed, and is the
|
||||
default unless otherwise specified. Other styles are acceptable when
|
||||
there is exactly one style for the given context and cross-platform
|
||||
portability does not become an issue. For URIs containing IPv6
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 11]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
address literals, [RFC3986] MUST be followed, as well as the rules in
|
||||
this document.
|
||||
|
||||
|
||||
7. Prefix Representation
|
||||
|
||||
Problems with prefixes are just the same as problems encountered with
|
||||
addresses. The text representation method of IPv6 prefixes should be
|
||||
no different from that of IPv6 addresses.
|
||||
|
||||
|
||||
8. Security Considerations
|
||||
|
||||
This document notes some examples where IPv6 addresses are compared
|
||||
in text format. The example on Section 3.2.5 is one that may cause a
|
||||
security risk if used for access control. The common practice of
|
||||
comparing X.509 data is done in binary format.
|
||||
|
||||
|
||||
9. IANA Considerations
|
||||
|
||||
None.
|
||||
|
||||
|
||||
10. Acknowledgements
|
||||
|
||||
The authors would like to thank Jan Zorz, Randy Bush, Yuichi Minami,
|
||||
Toshimitsu Matsuura for their generous and helpful comments in kick
|
||||
starting this document. We also would like to thank Brian Carpenter,
|
||||
Akira Kato, Juergen Schoenwaelder, Antonio Querubin, Dave Thaler,
|
||||
Brian Haley, Suresh Krishnan, Jerry Huang, Roman Donchenko, Heikki
|
||||
Vatiainen ,Dan Wing, and Doug Barton for their input. Also a very
|
||||
special thanks to Ron Bonica, Fred Baker, Brian Haberman, Robert
|
||||
Hinden, Jari Arkko, and Kurt Lindqvist for their support in bringing
|
||||
this document to the light of IETF working groups.
|
||||
|
||||
|
||||
11. References
|
||||
|
||||
11.1. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2765] Nordmark, E., "Stateless IP/ICMP Translation Algorithm
|
||||
(SIIT)", RFC 2765, February 2000.
|
||||
|
||||
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 12]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
Resource Identifier (URI): Generic Syntax", STD 66,
|
||||
RFC 3986, January 2005.
|
||||
|
||||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
|
||||
Architecture", RFC 4291, February 2006.
|
||||
|
||||
11.2. Informative References
|
||||
|
||||
[I-D.ietf-behave-address-format]
|
||||
Huitema, C., Bao, C., Bagnulo, M., Boucadair, M., and X.
|
||||
Li, "IPv6 Addressing of IPv4/IPv6 Translators",
|
||||
draft-ietf-behave-address-format-04 (work in progress),
|
||||
January 2010.
|
||||
|
||||
[RFC4038] Shin, M-K., Hong, Y-G., Hagino, J., Savola, P., and E.
|
||||
Castro, "Application Aspects of IPv6 Transition",
|
||||
RFC 4038, March 2005.
|
||||
|
||||
[RFC5214] Templin, F., Gleeson, T., and D. Thaler, "Intra-Site
|
||||
Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214,
|
||||
March 2008.
|
||||
|
||||
|
||||
Appendix A. For Developers
|
||||
|
||||
We recommend that developers use display routines that conform to
|
||||
these rules. For example, the usage of getnameinfo() with flags
|
||||
argument NI_NUMERICHOST in FreeBSD 7.0 will give a conforming output,
|
||||
except for the special addresses notes in Section 5. The function
|
||||
inet_ntop() of FreeBSD7.0 is a good C code reference, but should not
|
||||
be called directly. See [RFC4038] for details.
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Seiichi Kawamura
|
||||
NEC BIGLOBE, Ltd.
|
||||
14-22, Shibaura 4-chome
|
||||
Minatoku, Tokyo 108-8558
|
||||
JAPAN
|
||||
|
||||
Phone: +81 3 3798 6085
|
||||
Email: kawamucho@mesh.ad.jp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 13]
|
||||
|
||||
Internet-Draft IPv6 Text Representation February 2010
|
||||
|
||||
|
||||
Masanobu Kawashima
|
||||
NEC AccessTechnica, Ltd.
|
||||
800, Shimomata
|
||||
Kakegawa-shi, Shizuoka 436-8501
|
||||
JAPAN
|
||||
|
||||
Phone: +81 537 23 9655
|
||||
Email: kawashimam@necat.nec.co.jp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Kawamura & Kawashima Expires August 29, 2010 [Page 14]
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||||
<html><head>
|
||||
<title>302 Found</title>
|
||||
</head><body>
|
||||
<h1>Found</h1>
|
||||
<p>The document has moved <a href="http://www.ietf.org/id/draft-ietf-dane-protocol-19.txt">here</a>.</p>
|
||||
</body></html>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,504 +0,0 @@
|
|||
|
||||
|
||||
|
||||
DNSEXT R. Bellis
|
||||
Internet-Draft Nominet UK
|
||||
Updates: 1035, 1123 March 22, 2010
|
||||
(if approved)
|
||||
Intended status: Standards Track
|
||||
Expires: September 23, 2010
|
||||
|
||||
|
||||
DNS Transport over TCP - Implementation Requirements
|
||||
draft-ietf-dnsext-dns-tcp-requirements-03
|
||||
|
||||
Abstract
|
||||
|
||||
This document updates the requirements for the support of TCP as a
|
||||
transport protocol for DNS implementations.
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This Internet-Draft is submitted to IETF in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
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.
|
||||
|
||||
This Internet-Draft will expire on September 23, 2010.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 1]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the BSD License.
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
|
||||
2. Terminology used in this document . . . . . . . . . . . . . . . 3
|
||||
|
||||
3. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
|
||||
4. Transport Protocol Selection . . . . . . . . . . . . . . . . . 4
|
||||
|
||||
5. Connection Handling . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
|
||||
6. Response re-ordering . . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
|
||||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
|
||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
10.1. Normative References . . . . . . . . . . . . . . . . . . . 7
|
||||
10.2. Informative References . . . . . . . . . . . . . . . . . . 7
|
||||
|
||||
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . . 8
|
||||
|
||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 2]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
Most DNS [RFC1035] transactions take place over UDP [RFC0768]. TCP
|
||||
[RFC0793] is always used for zone transfers and is often used for
|
||||
messages whose sizes exceed the DNS protocol's original 512 byte
|
||||
limit.
|
||||
|
||||
Section 6.1.3.2 of [RFC1123] states:
|
||||
|
||||
DNS resolvers and recursive servers MUST support UDP, and SHOULD
|
||||
support TCP, for sending (non-zone-transfer) queries.
|
||||
|
||||
However, some implementors have taken the text quoted above to mean
|
||||
that TCP support is an optional feature of the DNS protocol.
|
||||
|
||||
The majority of DNS server operators already support TCP and the
|
||||
default configuration for most software implementations is to support
|
||||
TCP. The primary audience for this document is those implementors
|
||||
whose failure to support TCP restricts interoperability and limits
|
||||
deployment of new DNS features.
|
||||
|
||||
This document therefore updates the core DNS protocol specifications
|
||||
such that support for TCP is henceforth a REQUIRED part of a full DNS
|
||||
protocol implementation.
|
||||
|
||||
Whilst this document makes no specific recommendations to operators
|
||||
of DNS servers, it should be noted that failure to support TCP (or
|
||||
blocking of DNS over TCP at the network layer) may result in
|
||||
resolution failure and/or application-level timeouts.
|
||||
|
||||
|
||||
2. Terminology used in this document
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
|
||||
3. Discussion
|
||||
|
||||
In the absence of EDNS0 (see below) the normal behaviour of any DNS
|
||||
server needing to send a UDP response that would exceed the 512 byte
|
||||
limit is for the server to truncate the response so that it fits
|
||||
within that limit and then set the TC flag in the response header.
|
||||
When the client receives such a response it takes the TC flag as an
|
||||
indication that it should retry over TCP instead.
|
||||
|
||||
RFC 1123 also says:
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 3]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
|
||||
... it is also clear that some new DNS record types defined in the
|
||||
future will contain information exceeding the 512 byte limit that
|
||||
applies to UDP, and hence will require TCP. Thus, resolvers and
|
||||
name servers should implement TCP services as a backup to UDP
|
||||
today, with the knowledge that they will require the TCP service
|
||||
in the future.
|
||||
|
||||
Existing deployments of DNSSEC [RFC4033] have shown that truncation
|
||||
at the 512 byte boundary is now commonplace. For example an NXDOMAIN
|
||||
(RCODE == 3) response from a DNSSEC signed zone using NSEC3 [RFC5155]
|
||||
is almost invariably larger than 512 bytes.
|
||||
|
||||
Since the original core specifications for DNS were written, the
|
||||
Extension Mechanisms for DNS (EDNS0 [RFC2671]) have been introduced.
|
||||
These extensions can be used to indicate that the client is prepared
|
||||
to receive UDP responses larger than 512 bytes. An EDNS0 compatible
|
||||
server receiving a request from an EDNS0 compatible client may send
|
||||
UDP packets up to that client's announced buffer size without
|
||||
truncation.
|
||||
|
||||
However, transport of UDP packets that exceed the size of the path
|
||||
MTU causes IP packet fragmentation, which has been found to be
|
||||
unreliable in some circumstances. Many firewalls routinely block
|
||||
fragmented IP packets, and some do not implement the algorithms
|
||||
necessary to reassemble fragmented packets. Worse still, some
|
||||
network devices deliberately refuse to handle DNS packets containing
|
||||
EDNS0 options. Other issues relating to UDP transport and packet
|
||||
size are discussed in [RFC5625].
|
||||
|
||||
The MTU most commonly found in the core of the Internet is around
|
||||
1500 bytes, and even that limit is routinely exceeded by DNSSEC
|
||||
signed responses.
|
||||
|
||||
The future that was anticipated in RFC 1123 has arrived, and the only
|
||||
standardised UDP-based mechanism which may have resolved the packet
|
||||
size issue has been found inadequate.
|
||||
|
||||
|
||||
4. Transport Protocol Selection
|
||||
|
||||
All general purpose DNS implementations MUST support both UDP and TCP
|
||||
transport.
|
||||
|
||||
o Authoritative server implementations MUST support TCP so that they
|
||||
do not limit the size of responses.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 4]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
o Recursive resolver (or forwarder) implementations MUST support TCP
|
||||
so that the do not prevent large responses from a TCP-capable
|
||||
server from reaching its TCP-capable clients.
|
||||
o Stub resolver implementations (e.g. an operating system's DNS
|
||||
resolution library) MUST support TCP since to do otherwise would
|
||||
limit their interoperability with their own clients and with
|
||||
upstream servers.
|
||||
|
||||
An exception may be made for proprietary stub resolver
|
||||
implementations. These MAY omit support for TCP if operating in an
|
||||
environment where truncation can never occur, or where DNS lookup
|
||||
failure is acceptable should truncation occur.
|
||||
|
||||
Regarding the choice of when to use UDP or TCP, RFC 1123 says:
|
||||
|
||||
... a DNS resolver or server that is sending a non-zone-transfer
|
||||
query MUST send a UDP query first.
|
||||
|
||||
That requirement is hereby relaxed. A resolver SHOULD send a UDP
|
||||
query first, but MAY elect to send a TCP query instead if it has good
|
||||
reason to expect the response would be truncated if it were sent over
|
||||
UDP (with or without EDNS0) or for other operational reasons, in
|
||||
particular if it already has an open TCP connection to the server.
|
||||
|
||||
|
||||
5. Connection Handling
|
||||
|
||||
Section 4.2.2 of [RFC1035] says:
|
||||
|
||||
If the server needs to close a dormant connection to reclaim
|
||||
resources, it should wait until the connection has been idle for a
|
||||
period on the order of two minutes. In particular, the server
|
||||
should allow the SOA and AXFR request sequence (which begins a
|
||||
refresh operation) to be made on a single connection. Since the
|
||||
server would be unable to answer queries anyway, a unilateral
|
||||
close or reset may be used instead of a graceful close.
|
||||
|
||||
Other more modern protocols (e.g. HTTP [RFC2616]) have support for
|
||||
persistent TCP connections and operational experience has shown that
|
||||
long timeouts can easily cause resource exhaustion and poor response
|
||||
under heavy load. Intentionally opening many connections and leaving
|
||||
them dormant can trivially create a "denial of service" attack.
|
||||
|
||||
This document therefore RECOMMENDS that the default application-level
|
||||
idle period should be of the order of seconds, but does not specify
|
||||
any particular value. In practise the idle period may vary
|
||||
dynamically, and servers MAY allow dormant connections to remain open
|
||||
for longer periods as resources permit.
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 5]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
To mitigate the risk of unintentional server overload, DNS clients
|
||||
MUST take care to minimize the number of concurrent TCP connections
|
||||
made to any individual server. Similarly servers MAY impose limits
|
||||
on the number of concurrent TCP connections being handled for any
|
||||
particular client.
|
||||
|
||||
Further recommendations for the tuning of TCP stacks to allow higher
|
||||
throughput or improved resiliency against denial of service attacks
|
||||
are outside the scope of this document.
|
||||
|
||||
|
||||
6. Response re-ordering
|
||||
|
||||
RFC 1035 is ambiguous on the question of whether TCP queries may be
|
||||
re-ordered - the only relevant text is in Section 4.2.1 which relates
|
||||
to UDP:
|
||||
|
||||
Queries or their responses may be reordered by the network, or by
|
||||
processing in name servers, so resolvers should not depend on them
|
||||
being returned in order.
|
||||
|
||||
For the avoidance of future doubt, this requirement is clarified.
|
||||
Client resolvers MUST be able to process responses which arrive in a
|
||||
different order to that in which the requests were sent, regardless
|
||||
of the transport protocol in use.
|
||||
|
||||
|
||||
7. Security Considerations
|
||||
|
||||
Some DNS server operators have expressed concern that wider use of
|
||||
DNS over TCP will expose them to a higher risk of denial of service
|
||||
(DoS) attacks.
|
||||
|
||||
Although there is a higher risk of such attacks against TCP-enabled
|
||||
servers, techniques for the mitigation of DoS attacks at the network
|
||||
level have improved substantially since DNS was first designed.
|
||||
|
||||
At the time of writing the vast majority of TLD authority servers and
|
||||
all of the root name servers support TCP and the author knows of no
|
||||
evidence to suggest that TCP-based DoS attacks against existing DNS
|
||||
infrastructure are commonplace.
|
||||
|
||||
That notwithstanding, readers are advised to familiarise themselves
|
||||
with [CPNI-TCP].
|
||||
|
||||
Operators of recursive servers should ensure that they only accept
|
||||
connections from expected clients, and do not accept them from
|
||||
unknown sources. In the case of UDP traffic this will help protect
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 6]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
against reflector attacks [RFC5358] and in the case of TCP traffic it
|
||||
will prevent an unknown client from exhausting the server's limits on
|
||||
the number of concurrent connections.
|
||||
|
||||
|
||||
8. IANA Considerations
|
||||
|
||||
This document requests no IANA actions.
|
||||
|
||||
|
||||
9. Acknowledgements
|
||||
|
||||
The author would like to thank the document reviewers from the DNSEXT
|
||||
Working Group, and in particular George Barwood, Alex Bligh, Alfred
|
||||
Hoenes, Fernando Gont, Jim Reid, Paul Vixie and Nicholas Weaver.
|
||||
|
||||
|
||||
10. References
|
||||
|
||||
10.1. Normative References
|
||||
|
||||
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
|
||||
August 1980.
|
||||
|
||||
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7,
|
||||
RFC 793, September 1981.
|
||||
|
||||
[RFC1035] Mockapetris, P., "Domain names - implementation and
|
||||
specification", STD 13, RFC 1035, November 1987.
|
||||
|
||||
[RFC1123] Braden, R., "Requirements for Internet Hosts - Application
|
||||
and Support", STD 3, RFC 1123, October 1989.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)",
|
||||
RFC 2671, August 1999.
|
||||
|
||||
10.2. Informative References
|
||||
|
||||
[CPNI-TCP]
|
||||
CPNI, "Security Assessment of the Transmission Control
|
||||
Protocol (TCP)", 2009, <http://www.cpni.gov.uk/Docs/
|
||||
tn-03-09-security-assessment-TCP.pdf>.
|
||||
|
||||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
|
||||
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 7]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
|
||||
|
||||
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "DNS Security Introduction and Requirements",
|
||||
RFC 4033, March 2005.
|
||||
|
||||
[RFC5155] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
|
||||
Security (DNSSEC) Hashed Authenticated Denial of
|
||||
Existence", RFC 5155, March 2008.
|
||||
|
||||
[RFC5358] Damas, J. and F. Neves, "Preventing Use of Recursive
|
||||
Nameservers in Reflector Attacks", BCP 140, RFC 5358,
|
||||
October 2008.
|
||||
|
||||
[RFC5625] Bellis, R., "DNS Proxy Implementation Guidelines",
|
||||
BCP 152, RFC 5625, August 2009.
|
||||
|
||||
|
||||
Appendix A. Change Log
|
||||
|
||||
NB: to be removed by the RFC Editor before publication.
|
||||
|
||||
draft-ietf-dnsext-dns-tcp-requirements-03
|
||||
Editorial nits from WGLC
|
||||
Clarification on "general purpose"
|
||||
Fixed ref to UDP (RFC 768)
|
||||
Included more S.4.2.2 text from RFC 1035 and removed some from
|
||||
this draft relating to connection resets.
|
||||
s/long/large/ for packet sizes
|
||||
|
||||
draft-ietf-dnsext-dns-tcp-requirements-02
|
||||
Change of title - more focus on implementation and not operation
|
||||
Re-write of some of the security section
|
||||
Added recommendation for minimal concurrent connections
|
||||
Minor editorial nits from Alfred Hoenes
|
||||
|
||||
draft-ietf-dnsext-dns-tcp-requirements-01
|
||||
Addition of response ordering section
|
||||
Various minor editorial changes from WG reviewers
|
||||
|
||||
draft-ietf-dnsext-dns-tcp-requirements-00
|
||||
Initial draft
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 8]
|
||||
|
||||
Internet-Draft DNS over TCP March 2010
|
||||
|
||||
|
||||
Author's Address
|
||||
|
||||
Ray Bellis
|
||||
Nominet UK
|
||||
Edmund Halley Road
|
||||
Oxford OX4 4DQ
|
||||
United Kingdom
|
||||
|
||||
Phone: +44 1865 332211
|
||||
Email: ray.bellis@nominet.org.uk
|
||||
URI: http://www.nominet.org.uk/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Bellis Expires September 23, 2010 [Page 9]
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,448 +0,0 @@
|
|||
|
||||
|
||||
|
||||
DNS Extensions Working Group S. Rose
|
||||
Internet-Draft NIST
|
||||
Updates: 2536, 2539, 3110, 4034, August 11, 2010
|
||||
4398, 5155, 5702, 5933
|
||||
(if approved)
|
||||
Intended status: Standards Track
|
||||
Expires: February 12, 2011
|
||||
|
||||
|
||||
Applicability Statement: DNS Security (DNSSEC) DNSKEY Algorithm IANA
|
||||
Registry
|
||||
draft-ietf-dnsext-dnssec-registry-fixes-06
|
||||
|
||||
Abstract
|
||||
|
||||
The DNS Security Extensions (DNSSEC) requires the use of
|
||||
cryptographic algorithm suites for generating digital signatures over
|
||||
DNS data. There is currently an IANA registry for these algorithms
|
||||
that is incomplete in that it lacks the implementation status of each
|
||||
algorithm. This document provides an applicability statement on
|
||||
algorithm status for DNSSEC implementations. This document replaces
|
||||
that registry table with a new IANA registry table for Domain Name
|
||||
System Security (DNSSEC) Algorithm Numbers which lists each
|
||||
algorithm's status based on the current reference. If that status is
|
||||
not defined in the original specification, this document assigns a
|
||||
status.
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This Internet-Draft is submitted to IETF in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 1]
|
||||
|
||||
Internet-Draft IANA Registry Fixes August 2010
|
||||
|
||||
|
||||
This Internet-Draft will expire on February 12, 2011.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the BSD License.
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3
|
||||
|
||||
2. The DNS Security Algorithm Number Subregistry . . . . . . . . . 3
|
||||
2.1. Individual Changes . . . . . . . . . . . . . . . . . . . . 3
|
||||
2.2. Domain Name System (DNS) Security Algorithm Number
|
||||
Registry Table . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
2.3. Specifying New Algorithms and Updating Status of
|
||||
Existing Entries . . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
5.1. Normative References . . . . . . . . . . . . . . . . . . . 6
|
||||
5.2. Informative References . . . . . . . . . . . . . . . . . . 8
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 2]
|
||||
|
||||
Internet-Draft IANA Registry Fixes August 2010
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
The Domain Name System (DNS) Security Extensions (DNSSEC) [RFC4033],
|
||||
[RFC4034], and [RFC4035] uses digital signatures over DNS data to
|
||||
provide source authentication and integrity protection. DNSSEC uses
|
||||
an IANA registry to allocate codes for digital signature algorithms
|
||||
(consisting of a cryptographic algorithm and one-way hash function).
|
||||
|
||||
The original list of algorithm status is found in [RFC4034]. Other
|
||||
DNSSEC documents have added new algorithms or changed the status of
|
||||
algorithms in the registry. However, currently implementors must
|
||||
read through all the documents in order to discover the current
|
||||
status of each algorithm in the registry.
|
||||
|
||||
This document replaces the current IANA registry for Domain Name
|
||||
System Security (DNSSEC) Algorithm Numbers with a newly defined
|
||||
registry table. This new table (Section 2.2 below) contains a column
|
||||
that will list the current status of each digital signature algorithm
|
||||
in the registry at the time of writing and assigns status for some
|
||||
algorithms used with DNSSEC that did not have an identified status in
|
||||
their specification. This document updates the following: [RFC2536],
|
||||
[RFC2539], [RFC3110], [RFC4034], [RFC4398], [RFC5155], [RFC5702], and
|
||||
[RFC5933].
|
||||
|
||||
1.1. Requirements Language
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
2. The DNS Security Algorithm Number Subregistry
|
||||
|
||||
The DNS Security Algorithm Number subregistry (part of the Domain
|
||||
Name System (DNS) Security Number registry) will be replaced with the
|
||||
table below. This table contains a column that contains the current
|
||||
implementation requirements of the given algorithm.
|
||||
|
||||
There are additional differences to entries that are described in
|
||||
sub-section 2.1. The overall new registry table is in sub-section
|
||||
2.2. The values for the status were obtained from [RFC4034] with
|
||||
updates for algorithms specified after the original DNSSEC
|
||||
specification. If no status was listed in the original
|
||||
specification, this document assigns one.
|
||||
|
||||
2.1. Individual Changes
|
||||
|
||||
This document changes three entries in the Domain Name System
|
||||
Security (DNSSEC) Algorithm Registry. They are:
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 3]
|
||||
|
||||
Internet-Draft IANA Registry Fixes August 2010
|
||||
|
||||
|
||||
The description for assignment number 4 is changed to "Reserved until
|
||||
2020".
|
||||
|
||||
The description for assignment number 9 is changed to "Reserved until
|
||||
2020".
|
||||
|
||||
The description for assignment number 11 is changed to "Reserved
|
||||
until 2020".
|
||||
|
||||
Registry entries 13-251 remains Unassigned.
|
||||
|
||||
The status of RSASHA1-NSEC3-SHA1 and DSA-NSEC3-SHA1 are set to
|
||||
RECOMMENDED and OPTIONAL respectively. The difference is due to the
|
||||
fact that RSA/SHA-1 is REQUIRED and DSA/SHA-1 is only OPTIONAL. The
|
||||
status of RSA/SHA-256 and RSA/SHA-512 are set to RECOMMENDED as it is
|
||||
believed that these algorithms will replace older algorithms (e.g.
|
||||
RSA/SHA-1) that have a perceived weakness in their hash algorithm
|
||||
(SHA-1).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 4]
|
||||
|
||||
Internet-Draft IANA Registry Fixes August 2010
|
||||
|
||||
|
||||
2.2. Domain Name System (DNS) Security Algorithm Number Registry Table
|
||||
|
||||
The Domain Name System (DNS) Security Algorithm Number registry is
|
||||
hereby specified as follows:
|
||||
|
||||
Zone Transaction
|
||||
Number Description Mnemonic Sign Sign Status Reference
|
||||
------ ----------- ------ ---- ----- ------------ ---------
|
||||
0 Reserved [RFC4398]
|
||||
1 RSA/MD5 RSAMD5 N Y MUST NOT [RFC4034],
|
||||
IMPLEMENT [RFC3110]
|
||||
(this memo)
|
||||
2 Diffie-Hellman DH N Y [RFC2539]
|
||||
(this memo)
|
||||
3 DSA/SHA-1 DSASHA1 Y Y [RFC2536],
|
||||
[RFC4034],
|
||||
FIPS 186-3,
|
||||
FIPS 180-3
|
||||
(this memo)
|
||||
4 Reserved until ECC (this memo)
|
||||
2020
|
||||
5 RSA/SHA-1 RSASHA1 Y Y REQUIRED [RFC4034]
|
||||
(this memo)
|
||||
6 DSA-NSEC3-SHA1 DSA-NSEC3 Y Y [RFC5155]
|
||||
-SHA1 (this memo)
|
||||
7 RSASHA1-NSEC3 RSASHA1- Y Y RECOMMENDED [RFC5155]
|
||||
-SHA1 NSEC3- (this memo)
|
||||
SHA1
|
||||
8 RSA/SHA-256 RSASHA256 Y * RECOMMENDED [RFC5702]
|
||||
(this memo)
|
||||
9 Reserved until (this memo)
|
||||
2020
|
||||
10 RSA/SHA-512 RSASHA512 Y * RECOMMENDED [RFC5702]
|
||||
(this memo)
|
||||
11 Reserved until (this memo)
|
||||
2020
|
||||
12 GOST R GOST-ECC Y * [RFC5933]
|
||||
34.10-2001 (this memo)
|
||||
13-251 Unassigned
|
||||
252 Reserved for INDIRECT N N [RFC4034]
|
||||
Indirect keys (this memo)
|
||||
253 private PRIVATE Y Y [RFC4034]
|
||||
algorithm (this memo)
|
||||
254 private PRIVATEOID Y Y [RFC4034]
|
||||
algorithm OID (this memo)
|
||||
255 Reserved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 5]
|
||||
|
||||
Internet-Draft IANA Registry Fixes August 2010
|
||||
|
||||
|
||||
2.3. Specifying New Algorithms and Updating Status of Existing Entries
|
||||
|
||||
[I-D.ietf-dnsext-dnssec-alg-allocation] establishes a parallel
|
||||
procedure for obtaining an algorithm number for new algorithms other
|
||||
than a standards track document. Algorithms entered into the
|
||||
registry using that procedure do not have a listed status.
|
||||
Specifications that follow this path do not need to obsolete or
|
||||
update this document.
|
||||
|
||||
Adding a newly specified algorithm to the registry with a status
|
||||
SHALL entail obsoleting this document and replacing the registry
|
||||
table (with the new algorithm entry). Altering the status column
|
||||
value of any existing algorithm in the registry SHALL entail
|
||||
obsoleting this document and replacing the registry table.
|
||||
|
||||
This document cannot be updated, only made obsolete and replaced by a
|
||||
successor document.
|
||||
|
||||
3. IANA Considerations
|
||||
|
||||
This document replaces the Domain Name System (DNS) Security
|
||||
Algorithm Numbers registry. The new registry table is in Section
|
||||
2.2.
|
||||
|
||||
The original Domain Name System (DNS) Security Algorithm Number
|
||||
registry is available at http://www.iana.org/assignments/
|
||||
dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml.
|
||||
|
||||
4. Security Considerations
|
||||
|
||||
This document replaces the Domain Name System (DNS) Security
|
||||
Algorithm Numbers registry. It is not meant to be a discussion on
|
||||
algorithm superiority. No new security considerations are raised in
|
||||
this document.
|
||||
|
||||
5. References
|
||||
|
||||
5.1. Normative References
|
||||
|
||||
[I-D.ietf-dnsext-dnssec-alg-allocation] Hoffman, P., "Cryptographic
|
||||
Algorithm Identifier
|
||||
Allocation for DNSSEC", draf
|
||||
t-ietf-dnsext-dnssec-alg-
|
||||
allocation-03 (work in
|
||||
progress), March 2010.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for
|
||||
use in RFCs to Indicate
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 6]
|
||||
|
||||
Internet-Draft IANA Registry Fixes August 2010
|
||||
|
||||
|
||||
Requirement Levels", BCP 14,
|
||||
RFC 2119, March 1997.
|
||||
|
||||
[RFC2536] Eastlake, D., "DSA KEYs and
|
||||
SIGs in the Domain Name
|
||||
System (DNS)", RFC 2536,
|
||||
March 1999.
|
||||
|
||||
[RFC2539] Eastlake, D., "Storage of
|
||||
Diffie-Hellman Keys in the
|
||||
Domain Name System (DNS)",
|
||||
RFC 2539, March 1999.
|
||||
|
||||
[RFC3110] Eastlake, D., "RSA/SHA-1
|
||||
SIGs and RSA KEYs in the
|
||||
Domain Name System (DNS)",
|
||||
RFC 3110, May 2001.
|
||||
|
||||
[RFC4033] Arends, R., Austein, R.,
|
||||
Larson, M., Massey, D., and
|
||||
S. Rose, "DNS Security
|
||||
Introduction and
|
||||
Requirements", RFC 4033,
|
||||
March 2005.
|
||||
|
||||
[RFC4034] Arends, R., Austein, R.,
|
||||
Larson, M., Massey, D., and
|
||||
S. Rose, "Resource Records
|
||||
for the DNS Security
|
||||
Extensions", RFC 4034,
|
||||
March 2005.
|
||||
|
||||
[RFC4035] Arends, R., Austein, R.,
|
||||
Larson, M., Massey, D., and
|
||||
S. Rose, "Protocol
|
||||
Modifications for the DNS
|
||||
Security Extensions",
|
||||
RFC 4035, March 2005.
|
||||
|
||||
[RFC4398] Josefsson, S., "Storing
|
||||
Certificates in the Domain
|
||||
Name System (DNS)",
|
||||
RFC 4398, March 2006.
|
||||
|
||||
[RFC5155] Laurie, B., Sisson, G.,
|
||||
Arends, R., and D. Blacka,
|
||||
"DNS Security (DNSSEC)
|
||||
Hashed Authenticated Denial
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 7]
|
||||
|
||||
Internet-Draft IANA Registry Fixes August 2010
|
||||
|
||||
|
||||
of Existence", RFC 5155,
|
||||
March 2008.
|
||||
|
||||
[RFC5702] Jansen, J., "Use of SHA-2
|
||||
Algorithms with RSA in
|
||||
DNSKEY and RRSIG Resource
|
||||
Records for DNSSEC",
|
||||
RFC 5702, October 2009.
|
||||
|
||||
[RFC5933] Dolmatov, V., Chuprina, A.,
|
||||
and I. Ustinov, "Use of GOST
|
||||
Signature Algorithms in
|
||||
DNSKEY and RRSIG Resource
|
||||
Records for DNSSEC",
|
||||
RFC 5933, July 2010.
|
||||
|
||||
5.2. Informative References
|
||||
|
||||
[FIPS.180-3.2008] National Institute of
|
||||
Standards and Technology,
|
||||
"Secure Hash Standard",
|
||||
FIPS PUB 180-3,
|
||||
October 2008, <http://
|
||||
csrc.nist.gov/publications/
|
||||
fips/fips180-3/
|
||||
fips180-3.pdf>.
|
||||
|
||||
[FIPS.186-3.2009] National Institute of
|
||||
Standards and Technology,
|
||||
"Digital Signature
|
||||
Standard", FIPS PUB 186-3,
|
||||
June 2009, <http://
|
||||
csrc.nist.gov/publications/
|
||||
fips/fips186-3/
|
||||
fips_186-3.pdf>.
|
||||
|
||||
Author's Address
|
||||
|
||||
Scott Rose
|
||||
NIST
|
||||
100 Bureau Dr.
|
||||
Gaithersburg, MD 20899
|
||||
USA
|
||||
|
||||
Phone: +1-301-975-8439
|
||||
EMail: scottr.nist@gmail.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires February 12, 2011 [Page 8]
|
||||
|
||||
448
doc/draft/draft-ietf-dnsext-dnssec-registry-fixes-08.txt
Normal file
448
doc/draft/draft-ietf-dnsext-dnssec-registry-fixes-08.txt
Normal file
|
|
@ -0,0 +1,448 @@
|
|||
|
||||
|
||||
|
||||
DNS Extensions Working Group S. Rose
|
||||
Internet-Draft NIST
|
||||
Updates: 2536, 2539, 3110, 4034, 4398, May 26, 2011
|
||||
5155, 5702, 5933 (if approved)
|
||||
Intended status: Standards Track
|
||||
Expires: November 27, 2011
|
||||
|
||||
|
||||
Applicability Statement: DNS Security (DNSSEC) DNSKEY Algorithm IANA
|
||||
Registry
|
||||
draft-ietf-dnsext-dnssec-registry-fixes-08
|
||||
|
||||
Abstract
|
||||
|
||||
The DNS Security Extensions (DNSSEC) requires the use of
|
||||
cryptographic algorithm suites for generating digital signatures over
|
||||
DNS data. There is currently an IANA registry for these algorithms
|
||||
that is incomplete in that it lacks the implementation status of each
|
||||
algorithm. This document provides an applicability statement on
|
||||
algorithm implementation compliance status for DNSSEC
|
||||
implementations. This status is to measure compliance to this RFC
|
||||
only. This document replaces that registry table with a new IANA
|
||||
registry table for Domain Name System Security (DNSSEC) Algorithm
|
||||
Numbers that lists (or assigns) each algorithm's status based on the
|
||||
current reference.
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This Internet-Draft is submitted in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF). Note that other groups may also distribute
|
||||
working documents as Internet-Drafts. The list of current Internet-
|
||||
Drafts is at http://datatracker.ietf.org/drafts/current/.
|
||||
|
||||
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."
|
||||
|
||||
This Internet-Draft will expire on November 27, 2011.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2011 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 1]
|
||||
|
||||
Internet-Draft IANA Registry Fixes May 2011
|
||||
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3
|
||||
|
||||
2. The DNS Security Algorithm Number Sub-registry . . . . . . . . 3
|
||||
2.1. Updates and Additions . . . . . . . . . . . . . . . . . . . 4
|
||||
2.2. Domain Name System (DNS) Security Algorithm Number
|
||||
Registry Table . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
2.3. Specifying New Algorithms and Updating Status of
|
||||
Existing Entries . . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
5. Normative References . . . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 2]
|
||||
|
||||
Internet-Draft IANA Registry Fixes May 2011
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
The Domain Name System (DNS) Security Extensions (DNSSEC) [RFC4033],
|
||||
[RFC4034], [RFC4035], [RFC4509], [RFC5155], and [RFC5702] uses
|
||||
digital signatures over DNS data to provide source authentication and
|
||||
integrity protection. DNSSEC uses an IANA registry to list codes for
|
||||
digital signature algorithms (consisting of a cryptographic algorithm
|
||||
and one-way hash function).
|
||||
|
||||
The original list of algorithm status is found in [RFC4034]. Other
|
||||
DNSSEC RFC's have added new algorithms or changed the status of
|
||||
algorithms in the registry. However, implementers must read through
|
||||
all the documents in order to discover which algorithms are
|
||||
considered wise to implement, which are not, and which algorithms may
|
||||
become widely used in the future. This document replaces the
|
||||
original list with a new table that includes the current compliance
|
||||
status for certain algorithms.
|
||||
|
||||
This compliance status indication is only to be considered for
|
||||
implementation, not deployment or operations. Operators are free to
|
||||
deploy any digital signature algorithm available in implementations
|
||||
or algorithms chosen by local security policies. This status is to
|
||||
measure compliance to this RFC only.
|
||||
|
||||
This document replaces the current IANA registry for Domain Name
|
||||
System Security (DNSSEC) Algorithm Numbers with a newly defined
|
||||
registry table. This new table (Section 2.2 below) contains a column
|
||||
that will list the current compliance status of each digital
|
||||
signature algorithm in the registry at the time of writing and
|
||||
assigns status for some algorithms used with DNSSEC that did not have
|
||||
an identified status in their specification. This document updates
|
||||
the following: [RFC2536], [RFC2539], [RFC3110], [RFC4034], [RFC4398],
|
||||
[RFC5155], [RFC5702], and [RFC5933].
|
||||
|
||||
1.1. Requirements Language
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
2. The DNS Security Algorithm Number Sub-registry
|
||||
|
||||
The DNS Security Algorithm Number sub-registry (part of the Domain
|
||||
Name System (DNS) Security Number registry) will be replaced with the
|
||||
table below. This table is based on the existing DNS Security
|
||||
Algorithm Number sub-registry and adds a column that contains the
|
||||
current implementation status of the given algorithm.
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 3]
|
||||
|
||||
Internet-Draft IANA Registry Fixes May 2011
|
||||
|
||||
|
||||
There are additional differences to entries that are described in
|
||||
sub-section 2.1. The overall new registry table is in sub-section
|
||||
2.2. The values for the compliance status were obtained from
|
||||
[RFC4034] with updates for algorithms specified after the original
|
||||
DNSSEC specification. If no status was listed in the original
|
||||
specification, this document assigns one.
|
||||
|
||||
2.1. Updates and Additions
|
||||
|
||||
This document updates three entries in the Domain Name System
|
||||
Security (DNSSEC) Algorithm Registry. They are:
|
||||
|
||||
The description for assignment number 4 is changed to "Reserved until
|
||||
2020".
|
||||
|
||||
The description for assignment number 9 is changed to "Reserved until
|
||||
2020".
|
||||
|
||||
The description for assignment number 11 is changed to "Reserved
|
||||
until 2020".
|
||||
|
||||
Registry entries 13-251 remains Unassigned.
|
||||
|
||||
The status of RSASHA1-NSEC3-SHA1 is set to RECOMMENDED TO IMPLEMENT.
|
||||
This is due to the fact that RSA/SHA-1 is a MUST IMPLEMENT. The
|
||||
status of RSA/SHA-256 and RSA/SHA-512 are also set to RECOMMENDED TO
|
||||
IMPLEMENT as it is believed that these algorithms will replace an
|
||||
older algorithm (e.g. RSA/SHA-1) that have a perceived weakness in
|
||||
its hash algorithm (SHA-1).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 4]
|
||||
|
||||
Internet-Draft IANA Registry Fixes May 2011
|
||||
|
||||
|
||||
2.2. Domain Name System (DNS) Security Algorithm Number Registry Table
|
||||
|
||||
The Domain Name System (DNS) Security Algorithm Number registry is
|
||||
hereby specified as follows below. The new column is titled
|
||||
"Compliance to RFC TBD" (where TBD will change when published) as the
|
||||
IANA Registry table is not normative. The IANA registry table is
|
||||
only a reflection of the RFC, which is normative.
|
||||
|
||||
Trans-
|
||||
Zone action Compliance to
|
||||
Number Description Mnemonic Sign Sign RFC TBD1 Reference
|
||||
------ ----------- ------ ---- ----- ------------ ---------
|
||||
0 Reserved [RFC4398]
|
||||
1 RSA/MD5 RSAMD5 N Y MUST NOT [RFC2537]
|
||||
IMPLEMENT
|
||||
2 Diffie-Hellman DH N Y [RFC2539]
|
||||
3 DSA/SHA-1 DSASHA1 Y Y [RFC2536]
|
||||
4 Reserved until
|
||||
2020
|
||||
5 RSA/SHA-1 RSASHA1 Y Y MUST [RFC3110]
|
||||
IMPLEMENT
|
||||
6 DSA-NSEC3-SHA1 DSA-NSEC3 Y Y [RFC5155]
|
||||
-SHA1
|
||||
7 RSASHA1-NSEC3 RSASHA1- Y Y RECOMMENDED [RFC5155]
|
||||
-SHA1 NSEC3- TO IMPLEMENT
|
||||
SHA1
|
||||
8 RSA/SHA-256 RSASHA256 Y * RECOMMENDED [RFC5702]
|
||||
TO IMPLEMENT
|
||||
9 Reserved until
|
||||
2020
|
||||
10 RSA/SHA-512 RSASHA512 Y * RECOMMENDED [RFC5702]
|
||||
TO IMPLEMENT
|
||||
11 Reserved until
|
||||
2020
|
||||
12 GOST R GOST-ECC Y * [RFC5933]
|
||||
34.10-2001
|
||||
13-251 Unassigned
|
||||
252 Reserved for INDIRECT N N [RFC4034]
|
||||
Indirect keys
|
||||
253 private PRIVATE Y Y [RFC4034]
|
||||
algorithm
|
||||
254 private PRIVATEOID Y Y [RFC4034]
|
||||
algorithm OID
|
||||
255 Reserved
|
||||
|
||||
Table rows where the compliance column is not filled in are left to
|
||||
the discretion of implementers. Their implementation (or lack
|
||||
thereof) therefore cannot be included when judging compliance to this
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 5]
|
||||
|
||||
Internet-Draft IANA Registry Fixes May 2011
|
||||
|
||||
|
||||
document.
|
||||
|
||||
2.3. Specifying New Algorithms and Updating Status of Existing Entries
|
||||
|
||||
[RFC6014] establishes a parallel procedure for adding a registry
|
||||
entry for a new algorithm other than a standards track document.
|
||||
Algorithms entered into the registry using that procedure do not have
|
||||
a listed compliance status. Specifications that follow this path do
|
||||
not need to obsolete or update this document.
|
||||
|
||||
Adding a newly specified algorithm to the registry with a compliance
|
||||
status SHALL entail obsolescing this document and replacing the
|
||||
registry table (with the new algorithm entry). Altering the status
|
||||
column value of any existing algorithm in the registry SHALL entail
|
||||
obsoleting this document and replacing the registry table.
|
||||
|
||||
This document cannot be updated, only made obsolete and replaced by a
|
||||
successor document.
|
||||
|
||||
3. IANA Considerations
|
||||
|
||||
This document replaces the Domain Name System (DNS) Security
|
||||
Algorithm Numbers registry. The new registry table is in Section
|
||||
2.2. In the column "Compliance to RFC TBD", "RFC TBD" should be
|
||||
changed to the official RFC when published.
|
||||
|
||||
The original Domain Name System (DNS) Security Algorithm Number
|
||||
registry is available at
|
||||
http://www.iana.org/assignments/dns-sec-alg-numbers.
|
||||
|
||||
4. Security Considerations
|
||||
|
||||
This document replaces the Domain Name System (DNS) Security
|
||||
Algorithm Numbers registry. It is not meant to be a discussion on
|
||||
algorithm superiority. No new security considerations are raised in
|
||||
this document.
|
||||
|
||||
5. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2536] Eastlake, D., "DSA KEYs and SIGs in the Domain Name System
|
||||
(DNS)", RFC 2536, March 1999.
|
||||
|
||||
[RFC2537] Eastlake, D., "RSA/MD5 KEYs and SIGs in the Domain Name
|
||||
System (DNS)", RFC 2537, March 1999.
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 6]
|
||||
|
||||
Internet-Draft IANA Registry Fixes May 2011
|
||||
|
||||
|
||||
[RFC2539] Eastlake, D., "Storage of Diffie-Hellman Keys in the
|
||||
Domain Name System (DNS)", RFC 2539, March 1999.
|
||||
|
||||
[RFC3110] Eastlake, D., "RSA/SHA-1 SIGs and RSA KEYs in the Domain
|
||||
Name System (DNS)", RFC 3110, May 2001.
|
||||
|
||||
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "DNS Security Introduction and Requirements",
|
||||
RFC 4033, March 2005.
|
||||
|
||||
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Resource Records for the DNS Security Extensions",
|
||||
RFC 4034, March 2005.
|
||||
|
||||
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Protocol Modifications for the DNS Security
|
||||
Extensions", RFC 4035, March 2005.
|
||||
|
||||
[RFC4398] Josefsson, S., "Storing Certificates in the Domain Name
|
||||
System (DNS)", RFC 4398, March 2006.
|
||||
|
||||
[RFC4509] Hardaker, W., "Use of SHA-256 in DNSSEC Delegation Signer
|
||||
(DS) Resource Records (RRs)", RFC 4509, May 2006.
|
||||
|
||||
[RFC5155] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
|
||||
Security (DNSSEC) Hashed Authenticated Denial of
|
||||
Existence", RFC 5155, March 2008.
|
||||
|
||||
[RFC5702] Jansen, J., "Use of SHA-2 Algorithms with RSA in DNSKEY
|
||||
and RRSIG Resource Records for DNSSEC", RFC 5702,
|
||||
October 2009.
|
||||
|
||||
[RFC5933] Dolmatov, V., Chuprina, A., and I. Ustinov, "Use of GOST
|
||||
Signature Algorithms in DNSKEY and RRSIG Resource Records
|
||||
for DNSSEC", RFC 5933, July 2010.
|
||||
|
||||
[RFC6014] Hoffman, P., "Cryptographic Algorithm Identifier
|
||||
Allocation for DNSSEC", RFC 6014, November 2010.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 7]
|
||||
|
||||
Internet-Draft IANA Registry Fixes May 2011
|
||||
|
||||
|
||||
Author's Address
|
||||
|
||||
Scott Rose
|
||||
NIST
|
||||
100 Bureau Dr.
|
||||
Gaithersburg, MD 20899
|
||||
USA
|
||||
|
||||
Phone: +1-301-975-8439
|
||||
EMail: scottr.nist@gmail.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Rose Expires November 27, 2011 [Page 8]
|
||||
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
Expires: January 2006 July 2005
|
||||
INTERNET-DRAFT Richard C. Schroeppel
|
||||
Intended status: Proposed Standard Donald E. Eastlake 3rd
|
||||
Expires: August 2007 March 2007
|
||||
|
||||
|
||||
|
||||
Elliptic Curve KEYs in the DNS
|
||||
-------- ----- ---- -- --- ---
|
||||
<draft-ietf-dnsext-ecc-key-07.txt>
|
||||
Elliptic Curve Keys and Signatures in the Domain Name System (DNS)
|
||||
-------- ----- ---- --- ---------- -- --- ------ ---- ------ -----
|
||||
<draft-ietf-dnsext-ecc-key-10.txt>
|
||||
|
||||
Richard C. Schroeppel
|
||||
Donald Eastlake 3rd
|
||||
|
|
@ -19,7 +20,6 @@ Status of This Document
|
|||
have been or will be disclosed, and any of which he or she becomes
|
||||
aware will be disclosed, in accordance with Section 6 of BCP 79.
|
||||
|
||||
This draft is intended to be become a Proposed Standard RFC.
|
||||
Distribution of this document is unlimited. Comments should be sent
|
||||
to the DNS mailing list <namedroppers@ops.ietf.org>.
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ Status of This Document
|
|||
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 a "work in progress."
|
||||
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/1id-abstracts.html
|
||||
|
|
@ -42,13 +42,13 @@ Status of This Document
|
|||
|
||||
Abstract
|
||||
|
||||
The standard method for storing elliptic curve cryptographic keys and
|
||||
signatures in the Domain Name System is specified.
|
||||
The standard format for storing elliptic curve cryptographic keys and
|
||||
elliptic curve SHA-1 based signatures in the Domain Name System (DNS)
|
||||
is specified.
|
||||
|
||||
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (2005). All Rights Reserved.
|
||||
|
||||
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ Copyright Notice
|
|||
R. Schroeppel, et al [Page 1]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
Acknowledgement
|
||||
|
|
@ -71,27 +71,27 @@ Table of Contents
|
|||
|
||||
Status of This Document....................................1
|
||||
Abstract...................................................1
|
||||
Copyright Notice...........................................1
|
||||
|
||||
Acknowledgement............................................2
|
||||
Table of Contents..........................................2
|
||||
|
||||
1. Introduction............................................3
|
||||
2. Elliptic Curve Data in Resource Records.................3
|
||||
2. Elliptic Curve Keys in Resource Records.................3
|
||||
3. The Elliptic Curve Equation.............................9
|
||||
4. How do I Compute Q, G, and Y?..........................10
|
||||
5. Elliptic Curve SIG Resource Records....................11
|
||||
5. Elliptic Curve Signatures..............................11
|
||||
6. Performance Considerations.............................13
|
||||
7. Security Considerations................................13
|
||||
8. IANA Considerations....................................13
|
||||
Copyright and Disclaimer..................................14
|
||||
|
||||
Copyright and Additional IPR Provisions...................14
|
||||
|
||||
Informational References..................................15
|
||||
Normative Refrences.......................................15
|
||||
|
||||
Author's Addresses........................................16
|
||||
Expiration and File Name..................................16
|
||||
|
||||
Disclaimer................................................16
|
||||
|
||||
|
||||
|
||||
|
|
@ -115,33 +115,33 @@ Table of Contents
|
|||
R. Schroeppel, et al [Page 2]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
The Domain Name System (DNS) is the global hierarchical replicated
|
||||
distributed database system for Internet addressing, mail proxy, and
|
||||
other information. The DNS has been extended to include digital
|
||||
signatures and cryptographic keys as described in [RFC 4033, 4034,
|
||||
4035].
|
||||
other information. [RFC1034] [RFC1035] The DNS stores data in
|
||||
resource records and has been extended to include digital signatures
|
||||
and cryptographic keys in some of these resource records.
|
||||
|
||||
This document describes how to store elliptic curve cryptographic
|
||||
(ECC) keys and signatures in the DNS so they can be used for a
|
||||
variety of security purposes. Familiarity with ECC cryptography is
|
||||
assumed [Menezes].
|
||||
This document describes how to format elliptic curve cryptographic
|
||||
(ECC) key and signature data in the DNS so they can be used for a
|
||||
variety of purposes. The signatures use the SHA-1 eigest algorithm
|
||||
[RFC3174]. Familiarity with ECC cryptography is assumed [Menezes].
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC 2119].
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
|
||||
|
||||
2. Elliptic Curve Data in Resource Records
|
||||
2. Elliptic Curve Keys in Resource Records
|
||||
|
||||
Elliptic curve public keys are stored in the DNS within the RDATA
|
||||
portions of key RRs, such as RRKEY and KEY [RFC 4034] RRs, with the
|
||||
structure shown below.
|
||||
Elliptic curve public keys are stored, using the structure described
|
||||
below, in the DNS within the RDATA portions of key RRs, such as RRKEY
|
||||
[RFC4034] and IPSECKEY [RFC4025] RRs.
|
||||
|
||||
The research world continues to work on the issue of which is the
|
||||
best elliptic curve system, which finite field to use, and how to
|
||||
|
|
@ -173,7 +173,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 3]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
|
||||
|
|
@ -231,7 +231,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 4]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
|
|
@ -289,7 +289,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 5]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
A = 1 When P>=5, the curve parameter A is negated. If P=2, then
|
||||
|
|
@ -347,7 +347,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 6]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
determining the bit position of the left most 1-bit in the F data
|
||||
|
|
@ -372,7 +372,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
and the constant term is least important. Coefficients are ordered
|
||||
by sign-magnitude: 0 < 1 < -1 < 2 < -2 < ... The first polynomial of
|
||||
degree D is X^D (which is not irreducible). The next is X^D+1, which
|
||||
is sometimes irreducible, followed by X^D-1, which isn't. Assuming
|
||||
is sometimes irreducible, followed by X^D-1, which isn$t. Assuming
|
||||
odd P, this series continues to X^D - (P-1)/2, and then goes to X^D +
|
||||
X, X^D + X + 1, X^D + X - 1, etc.
|
||||
|
||||
|
|
@ -405,7 +405,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 7]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
values DEGH, DEGI, DEGJ. The polynomial is X^DEG + X^DEGH + X^DEGI +
|
||||
|
|
@ -463,7 +463,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 8]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
LA,A is the first parameter of the elliptic curve equation.
|
||||
|
|
@ -489,7 +489,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
of the curve point is given explicitly; the Z-coordinate is
|
||||
implicit.
|
||||
|
||||
LY,Y is the user's public signing key, another curve point of
|
||||
LY,Y is the user$s public signing key, another curve point of
|
||||
order Q. The W-coordinate is given explicitly; the Z-
|
||||
coordinate is implicit. The LY,Y parameter pair is always
|
||||
present.
|
||||
|
|
@ -521,7 +521,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 9]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
commonly used.
|
||||
|
|
@ -539,7 +539,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
The number of points on the curve is the number of solutions to the
|
||||
curve equation, + 1 (for the "point at infinity"). The prime Q must
|
||||
divide the number of points. Usually the curve is chosen first, then
|
||||
the number of points is determined with Schoof's algorithm. This
|
||||
the number of points is determined with Schoof$s algorithm. This
|
||||
number is factored, and if it has a large prime divisor, that number
|
||||
is taken as Q.
|
||||
|
||||
|
|
@ -547,7 +547,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
|
||||
Q * G = the point at infinity (on the elliptic curve)
|
||||
|
||||
G may be chosen by selecting a random [RFC 1750] curve point, and
|
||||
G may be chosen by selecting a random [RFC4086] curve point, and
|
||||
multiplying it by (number-of-points-on-curve/Q). G must not itself
|
||||
be the "point at infinity"; in this astronomically unlikely event, a
|
||||
new random curve point is recalculated.
|
||||
|
|
@ -566,7 +566,7 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
smaller Z value (the one which does not contain the highest-order 1
|
||||
bit of W (or C)) is used in subsequent calculations.
|
||||
|
||||
Y is specified by giving the W-coordinate of the user's public
|
||||
Y is specified by giving the W-coordinate of the user$s public
|
||||
signature key. The Z-coordinate value is determined from the curve
|
||||
equation. As with G, there are two possible Z values; the same rule
|
||||
is followed for choosing which Z to use.
|
||||
|
|
@ -579,10 +579,10 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 10]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
During the key generation process, a random [RFC 1750] number X must
|
||||
During the key generation process, a random [RFC4086] number X must
|
||||
be generated such that 1 <= X <= Q-1. X is the private key and is
|
||||
used in the final step of public key generation where Y is computed
|
||||
as
|
||||
|
|
@ -597,11 +597,11 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
|
||||
|
||||
|
||||
5. Elliptic Curve SIG Resource Records
|
||||
5. Elliptic Curve Signatures
|
||||
|
||||
The signature portion of an RR RDATA area when using the EC
|
||||
algorithm, for example in the RRSIG and SIG [RFC records] RRs is
|
||||
shown below.
|
||||
The signature portion of an RR RDATA area when using the ECC
|
||||
algorithm, for example in the SIG and RRSIG [RFC4034] RRs is shown
|
||||
below.
|
||||
|
||||
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
|
|
@ -613,138 +613,138 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
|
||||
R and S are integers (mod Q). Their length is specified by the LQ
|
||||
field of the corresponding KEY RR and can also be calculated from the
|
||||
SIG RR's RDLENGTH. They are right justified, high-order-octet first.
|
||||
SIG RR$s RDLENGTH. They are right justified, high-order-octet first.
|
||||
The same conditional formula for calculating the length from LQ is
|
||||
used as for all the other length fields above.
|
||||
|
||||
The data signed is determined as specified in [RFC 2535]. Then the
|
||||
The data signed is determined as specified in [RFC4034]. Then the
|
||||
following steps are taken where Q, P, G, and Y are as specified in
|
||||
the public key [Schneier]:
|
||||
the public key [Schneier]. For further information on SHA-1, see
|
||||
[RFC3174].
|
||||
|
||||
hash = SHA-1 ( data )
|
||||
hash = SHA-1 ( data )
|
||||
|
||||
Generate random [RFC 4086] K such that 0 < K < Q. (Never sign two
|
||||
different messages with the same K. K should be chosen from a
|
||||
very large space: If an opponent learns a K value for a single
|
||||
signature, the user's signing key is compromised, and a forger
|
||||
can sign arbitrary messages. There is no harm in signing the
|
||||
same message multiple times with the same key or different
|
||||
keys.)
|
||||
Generate random [RFC4086] K such that 0 < K < Q. (Never sign
|
||||
two different messages with the same K. K should be chosen
|
||||
from a very large space: If an opponent learns a K value
|
||||
for a single signature, the user$s signing key is
|
||||
compromised, and a forger can sign arbitrary messages.
|
||||
There is no harm in signing the same message multiple times
|
||||
with the same key or different keys.)
|
||||
|
||||
R = (the W-coordinate of ( K*G on the elliptic curve )) interpreted
|
||||
|
||||
|
||||
R. Schroeppel, et al [Page 11]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
as an integer, and reduced (mod Q). (R must not be 0. In
|
||||
this astronomically unlikely event, generate a new random K
|
||||
and recalculate R.)
|
||||
R = (the W-coordinate of ( K*G on the elliptic curve ))
|
||||
interpreted as an integer, and reduced (mod Q). (R must
|
||||
not be 0. In this astronomically unlikely event, generate
|
||||
a new random K and recalculate R.)
|
||||
|
||||
S = ( K^(-1) * (hash + X*R) ) mod Q.
|
||||
S = ( K^(-1) * (hash + X*R) ) mod Q.
|
||||
|
||||
S must not be 0. In this astronomically unlikely event, generate a
|
||||
new random K and recalculate R and S.
|
||||
S must not be 0. In this astronomically unlikely event,
|
||||
generate a new random K and recalculate R and S.
|
||||
|
||||
If S > Q/2, set S = Q - S.
|
||||
If S > Q/2, set S = Q - S.
|
||||
|
||||
The pair (R,S) is the signature.
|
||||
The pair (R,S) is the signature.
|
||||
|
||||
Another party verifies the signature as follows:
|
||||
Another party verifies the signature as follows. For further
|
||||
information on SHA-1, see [RFC3174].
|
||||
|
||||
Check that 0 < R < Q and 0 < S < Q/2. If not, it can not be a
|
||||
valid EC sigature.
|
||||
Check that 0 < R < Q and 0 < S < Q/2. If not, it can not be a
|
||||
valid EC sigature.
|
||||
|
||||
hash = SHA-1 ( data )
|
||||
hash = SHA-1 ( data )
|
||||
|
||||
Sinv = S^(-1) mod Q.
|
||||
Sinv = S^(-1) mod Q.
|
||||
|
||||
U1 = (hash * Sinv) mod Q.
|
||||
U1 = (hash * Sinv) mod Q.
|
||||
|
||||
U2 = (R * Sinv) mod Q.
|
||||
U2 = (R * Sinv) mod Q.
|
||||
|
||||
(U1 * G + U2 * Y) is computed on the elliptic curve.
|
||||
(U1 * G + U2 * Y) is computed on the elliptic curve.
|
||||
|
||||
V = (the W-coordinate of this point) interpreted as an integer
|
||||
and reduced (mod Q).
|
||||
V = (the W-coordinate of this point) interpreted as an integer
|
||||
and reduced (mod Q).
|
||||
|
||||
The signature is valid if V = R.
|
||||
The signature is valid if V = R.
|
||||
|
||||
The reason for requiring S < Q/2 is that, otherwise, both (R,S) and
|
||||
(R,Q-S) would be valid signatures for the same data. Note that a
|
||||
signature that is valid for hash(data) is also valid for
|
||||
hash(data)+Q or hash(data)-Q, if these happen to fall in the range
|
||||
[0,2^160-1]. It's believed to be computationally infeasible to
|
||||
find data that hashes to an assigned value, so this is only a
|
||||
cosmetic blemish. The blemish can be eliminated by using Q >
|
||||
2^160, at the cost of having slightly longer signatures, 42 octets
|
||||
instead of 40.
|
||||
The reason for requiring S < Q/2 is that, otherwise, both (R,S) and
|
||||
(R,Q-S) would be valid signatures for the same data. Note that a
|
||||
signature that is valid for hash(data) is also valid for hash(data)+Q
|
||||
or hash(data)-Q, if these happen to fall in the range [0,2^160-1].
|
||||
It$s believed to be computationally infeasible to find data that
|
||||
hashes to an assigned value, so this is only a cosmetic blemish. The
|
||||
blemish can be eliminated by using Q > 2^160, at the cost of having
|
||||
slightly longer signatures, 42 octets instead of 40.
|
||||
|
||||
We must specify how a field-element E ("the W-coordinate") is to be
|
||||
interpreted as an integer. The field-element E is regarded as a
|
||||
radix-P integer, with the digits being the coefficients in the
|
||||
polynomial basis representation of E. The digits are in the ragne
|
||||
[0,P-1]. In the two most common cases, this reduces to "the
|
||||
obvious thing". In the (mod P) case, E is simply a residue mod P,
|
||||
and is taken as an integer in the range [0,P-1]. In the GF[2^D]
|
||||
We must specify how a field-element E ("the W-coordinate") is to be
|
||||
interpreted as an integer. The field-element E is regarded as a
|
||||
radix-P integer, with the digits being the coefficients in the
|
||||
polynomial basis representation of E. The digits are in the ragne
|
||||
[0,P-1]. In the two most common cases, this reduces to "the obvious
|
||||
thing". In the (mod P) case, E is simply a residue mod P, and is
|
||||
|
||||
|
||||
R. Schroeppel, et al [Page 12]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
case, E is in the D-bit polynomial basis representation, and is
|
||||
simply taken as an integer in the range [0,(2^D)-1]. For other
|
||||
fields GF[P^D], it's necessary to do some radix conversion
|
||||
arithmetic.
|
||||
taken as an integer in the range [0,P-1]. In the GF[2^D] case, E is
|
||||
in the D-bit polynomial basis representation, and is simply taken as
|
||||
an integer in the range [0,(2^D)-1]. For other fields GF[P^D], it$s
|
||||
necessary to do some radix conversion arithmetic.
|
||||
|
||||
|
||||
|
||||
6. Performance Considerations
|
||||
6. Performance Considerations
|
||||
|
||||
Elliptic curve signatures use smaller moduli or field sizes than
|
||||
RSA and DSA. Creation of a curve is slow, but not done very often.
|
||||
Key generation is faster than RSA or DSA.
|
||||
Elliptic curve signatures use smaller moduli or field sizes than RSA
|
||||
and DSA. Creation of a curve is slow, but not done very often. Key
|
||||
generation is faster than RSA or DSA.
|
||||
|
||||
DNS implementations have been optimized for small transfers,
|
||||
typically less than 512 octets including DNS overhead. Larger
|
||||
transfers will perform correctly and and extensions have been
|
||||
standardized to make larger transfers more efficient [RFC 2671].
|
||||
However, it is still advisable at this time to make reasonable
|
||||
efforts to minimize the size of RR sets stored within the DNS
|
||||
consistent with adequate security.
|
||||
DNS implementations have been optimized for small transfers,
|
||||
typically less than 512 octets including DNS overhead. Larger
|
||||
transfers will perform correctly and and extensions have been
|
||||
standardized to make larger transfers more efficient [RFC2671].
|
||||
However, it is still advisable at this time to make reasonable
|
||||
efforts to minimize the size of RR sets stored within the DNS
|
||||
consistent with adequate security.
|
||||
|
||||
|
||||
|
||||
7. Security Considerations
|
||||
7. Security Considerations
|
||||
|
||||
Keys retrieved from the DNS should not be trusted unless (1) they
|
||||
have been securely obtained from a secure resolver or independently
|
||||
verified by the user and (2) this secure resolver and secure
|
||||
obtainment or independent verification conform to security policies
|
||||
acceptable to the user. As with all cryptographic algorithms,
|
||||
evaluating the necessary strength of the key is essential and
|
||||
dependent on local policy.
|
||||
Keys retrieved from the DNS should not be trusted unless (1) they
|
||||
have been securely obtained from a secure resolver or independently
|
||||
verified by the user and (2) this secure resolver and secure
|
||||
obtainment or independent verification conform to security policies
|
||||
acceptable to the user. [RFC4033] [RFC4034] [RFC4035] As with all
|
||||
cryptographic algorithms, evaluating the necessary strength of the
|
||||
key is essential and dependent on local policy.
|
||||
|
||||
Some specific key generation considerations are given in the body
|
||||
of this document.
|
||||
Some specific key generation considerations are given in the body of
|
||||
this document.
|
||||
|
||||
|
||||
|
||||
8. IANA Considerations
|
||||
8. IANA Considerations
|
||||
|
||||
Assignment of meaning to the remaining ECC data flag bits or to
|
||||
values of ECC fields outside the ranges for which meaning in defined
|
||||
in this document requires an IETF consensus as defined in [RFC2434].
|
||||
|
||||
|
||||
|
||||
The key and signature data structures defined herein correspond to
|
||||
the value 4 in the Algorithm number field of the IANA registry
|
||||
|
||||
Assignment of meaning to the remaining ECC data flag bits or to
|
||||
values of ECC fields outside the ranges for which meaning in
|
||||
defined in this document requires an IETF consensus as defined in
|
||||
[RFC 2434].
|
||||
|
||||
|
||||
|
||||
|
|
@ -753,38 +753,38 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 13]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
|
||||
|
||||
Copyright and Disclaimer
|
||||
|
||||
Copyright (C) The Internet Society 2005. This document is subject
|
||||
to the rights, licenses and restrictions contained in BCP 78, and
|
||||
except as set forth therein, the authors retain all their rights.
|
||||
|
||||
|
||||
This document and the information contained herein are provided on
|
||||
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
|
||||
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND
|
||||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
Copyright and Additional IPR Provisions
|
||||
|
||||
The IETF takes no position regarding the validity or scope of any
|
||||
Intellectual Property Rights 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; nor does it represent that it has
|
||||
made any independent effort to identify any such rights. Information
|
||||
on the procedures with respect to rights in RFC documents can be
|
||||
found in BCP 78 and BCP 79.
|
||||
|
||||
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
|
||||
specification can be obtained from the IETF on-line IPR repository at
|
||||
http://www.ietf.org/ipr.
|
||||
|
||||
The IETF invites any interested party to bring to its attention any
|
||||
copyrights, patents or patent applications, or other proprietary
|
||||
rights that may cover technology that may be required to implement
|
||||
this standard. Please address the information to the IETF at ietf-
|
||||
ipr@ietf.org.
|
||||
|
||||
Copyright (C) The IETF Trust (2007)
|
||||
|
||||
This document is subject to the rights, licenses and restrictions
|
||||
contained in BCP 78, and except as set forth therein, the authors
|
||||
retain all their rights.
|
||||
|
||||
|
||||
|
||||
|
|
@ -811,104 +811,104 @@ INTERNET-DRAFT ECC Keys in the DNS
|
|||
R. Schroeppel, et al [Page 14]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
Informational References
|
||||
Informational References
|
||||
|
||||
[RFC 1034] - P. Mockapetris, "Domain names - concepts and
|
||||
facilities", 11/01/1987.
|
||||
[RFC1034] - P. Mockapetris, "Domain names - concepts and facilities",
|
||||
11/01/1987.
|
||||
|
||||
[RFC 1035] - P. Mockapetris, "Domain names - implementation and
|
||||
specification", 11/01/1987.
|
||||
[RFC1035] - P. Mockapetris, "Domain names - implementation and
|
||||
specification", 11/01/1987.
|
||||
|
||||
[RFC 2671] - P. Vixie, "Extension Mechanisms for DNS (EDNS0)",
|
||||
August 1999.
|
||||
[RFC2671] - P. Vixie, "Extension Mechanisms for DNS (EDNS0)", August
|
||||
1999.
|
||||
|
||||
[RFC 4033] - Arends, R., Austein, R., Larson, M., Massey, D., and
|
||||
S. Rose, "DNS Security Introduction and Requirements", RFC 4033,
|
||||
March 2005.
|
||||
[RFC4025] - M. Richardson, "A Method for Storing IPsec Keying
|
||||
Material in DNS", February 2005.
|
||||
|
||||
[RFC 4035] - Arends, R., Austein, R., Larson, M., Massey, D., and
|
||||
S. Rose, "Protocol Modifications for the DNS Security Extensions",
|
||||
RFC 4035, March 2005.
|
||||
[RFC4033] - Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "DNS Security Introduction and Requirements", RFC 4033, March
|
||||
2005.
|
||||
|
||||
[RFC 4086] - Eastlake, D., 3rd, Schiller, J., and S. Crocker,
|
||||
"Randomness Requirements for Security", BCP 106, RFC 4086, June
|
||||
2005.
|
||||
[RFC4035] - Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Protocol Modifications for the DNS Security Extensions", RFC
|
||||
4035, March 2005.
|
||||
|
||||
[Schneier] - Bruce Schneier, "Applied Cryptography: Protocols,
|
||||
Algorithms, and Source Code in C", 1996, John Wiley and Sons
|
||||
[RFC4086] - Eastlake, D., 3rd, Schiller, J., and S. Crocker,
|
||||
"Randomness Requirements for Security", BCP 106, RFC 4086, June 2005.
|
||||
|
||||
[Menezes] - Alfred Menezes, "Elliptic Curve Public Key
|
||||
Cryptosystems", 1993 Kluwer.
|
||||
[Schneier] - Bruce Schneier, "Applied Cryptography: Protocols,
|
||||
Algorithms, and Source Code in C", 1996, John Wiley and Sons
|
||||
|
||||
[Silverman] - Joseph Silverman, "The Arithmetic of Elliptic
|
||||
Curves", 1986, Springer Graduate Texts in mathematics #106.
|
||||
[Menezes] - Alfred Menezes, "Elliptic Curve Public Key
|
||||
Cryptosystems", 1993 Kluwer.
|
||||
|
||||
[Silverman] - Joseph Silverman, "The Arithmetic of Elliptic Curves",
|
||||
1986, Springer Graduate Texts in mathematics #106.
|
||||
|
||||
|
||||
|
||||
Normative Refrences
|
||||
|
||||
[RFC 2119] - S. Bradner, "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", March 1997.
|
||||
|
||||
[RFC 2434] - T. Narten, H. Alvestrand, "Guidelines for Writing an
|
||||
IANA Considerations Section in RFCs", October 1998.
|
||||
|
||||
[RFC 4034] - Arends, R., Austein, R., Larson, M., Massey, D., and
|
||||
S. Rose, "Resource Records for the DNS Security Extensions", RFC
|
||||
4034, March 2005.
|
||||
|
||||
Normative Refrences
|
||||
|
||||
[RFC2119] - S. Bradner, "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", March 1997.
|
||||
|
||||
[RFC2434] - T. Narten, H. Alvestrand, "Guidelines for Writing an IANA
|
||||
Considerations Section in RFCs", October 1998.
|
||||
|
||||
[RFC3174] - Eastlake 3rd, D. and P. Jones, "US Secure Hash Algorithm
|
||||
1 (SHA1)", RFC 3174, September 2001.
|
||||
|
||||
[RFC4034] - Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Resource Records for the DNS Security Extensions", RFC 4034,
|
||||
March 2005.
|
||||
|
||||
|
||||
R. Schroeppel, et al [Page 15]
|
||||
|
||||
|
||||
INTERNET-DRAFT ECC Keys in the DNS
|
||||
INTERNET-DRAFT ECC in the DNS
|
||||
|
||||
|
||||
Author's Addresses
|
||||
Author's Addresses
|
||||
|
||||
Rich Schroeppel
|
||||
500 S. Maple Drive
|
||||
Woodland Hills, UT 84653 USA
|
||||
Rich Schroeppel
|
||||
500 S. Maple Drive
|
||||
Woodland Hills, UT 84653 USA
|
||||
|
||||
Telephone: +1-505-844-9079(w)
|
||||
Email: rschroe@sandia.gov
|
||||
|
||||
|
||||
Donald E. Eastlake 3rd
|
||||
Motorola Laboratories
|
||||
155 Beaver Street
|
||||
Milford, MA 01757 USA
|
||||
|
||||
Telephone: +1 508-786-7554 (w)
|
||||
EMail: Donald.Eastlake@motorola.com
|
||||
|
||||
|
||||
|
||||
Expiration and File Name
|
||||
|
||||
This draft expires in January 2006.
|
||||
|
||||
Its file name is draft-ietf-dnsext-ecc-key-07.txt.
|
||||
Telephone: +1-505-844-9079(w)
|
||||
Email: rschroe@sandia.gov
|
||||
|
||||
|
||||
Donald E. Eastlake 3rd
|
||||
Motorola Laboratories
|
||||
155 Beaver Street
|
||||
Milford, MA 01757 USA
|
||||
|
||||
Telephone: +1 508-786-7554 (w)
|
||||
EMail: Donald.Eastlake@motorola.com
|
||||
|
||||
|
||||
|
||||
Expiration and File Name
|
||||
|
||||
This draft expires in September 2007.
|
||||
|
||||
Its file name is draft-ietf-dnsext-ecc-key-10.txt.
|
||||
|
||||
|
||||
|
||||
Disclaimer
|
||||
|
||||
This document and the information contained herein are provided on an
|
||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
|
||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
|
||||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,728 +0,0 @@
|
|||
|
||||
|
||||
|
||||
DNSEXT Working Group J. Damas
|
||||
Internet-Draft M. Graff
|
||||
Obsoletes: 2671, 2673 P. Vixie
|
||||
(if approved) Internet Systems Consortium
|
||||
Intended status: Standards Track March 7, 2011
|
||||
Expires: September 8, 2011
|
||||
|
||||
|
||||
Extension Mechanisms for DNS (EDNS0)
|
||||
draft-ietf-dnsext-rfc2671bis-edns0-05
|
||||
|
||||
Abstract
|
||||
|
||||
The Domain Name System's wire protocol includes a number of fixed
|
||||
fields whose range has been or soon will be exhausted and does not
|
||||
allow requestors to advertise their capabilities to responders. This
|
||||
document describes backward compatible mechanisms for allowing the
|
||||
protocol to grow.
|
||||
|
||||
This document updates the EDNS0 specification [RFC2671] based on 10
|
||||
years of deployment experience.
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This Internet-Draft is submitted in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF). Note that other groups may also distribute
|
||||
working documents as Internet-Drafts. The list of current Internet-
|
||||
Drafts is at http://datatracker.ietf.org/drafts/current/.
|
||||
|
||||
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."
|
||||
|
||||
This Internet-Draft will expire on September 8, 2011.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2011 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 1]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
3. EDNS Support Requirement . . . . . . . . . . . . . . . . . . . 3
|
||||
4. DNS Message changes . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4.1. Message Header . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4.2. Label Types . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4.3. UDP Message Size . . . . . . . . . . . . . . . . . . . . . 4
|
||||
5. Extended Label Types . . . . . . . . . . . . . . . . . . . . . 4
|
||||
6. The OPT pseudo-RR . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
6.1. OPT Record Definition . . . . . . . . . . . . . . . . . . 5
|
||||
6.2. OPT Record Wire Format . . . . . . . . . . . . . . . . . . 5
|
||||
6.3. Cache behaviour . . . . . . . . . . . . . . . . . . . . . 7
|
||||
6.4. Fallback . . . . . . . . . . . . . . . . . . . . . . . . . 7
|
||||
6.5. Requestor's Payload Size . . . . . . . . . . . . . . . . . 7
|
||||
6.6. Responder's Payload Size . . . . . . . . . . . . . . . . . 7
|
||||
6.7. Payload Size Selection . . . . . . . . . . . . . . . . . . 8
|
||||
6.8. Middleware Boxes . . . . . . . . . . . . . . . . . . . . . 8
|
||||
6.9. OPT Record TTL Field Use . . . . . . . . . . . . . . . . . 8
|
||||
6.10. Flags . . . . . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
6.11. OPT Options Code Allocation Procedure . . . . . . . . . . 9
|
||||
7. Transport Considerations . . . . . . . . . . . . . . . . . . . 10
|
||||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 10
|
||||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
|
||||
Appendix A. Document Editing History . . . . . . . . . . . . . . 11
|
||||
Appendix A.1. Changes since RFC2671 . . . . . . . . . . . . . . . 11
|
||||
Appendix A.2. Changes since -02 . . . . . . . . . . . . . . . . . 12
|
||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
10.1. Normative References . . . . . . . . . . . . . . . . . . . 12
|
||||
10.2. Informative References . . . . . . . . . . . . . . . . . . 12
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 2]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
DNS [RFC1035] specifies a Message Format and within such messages
|
||||
there are standard formats for encoding options, errors, and name
|
||||
compression. The maximum allowable size of a DNS Message is limited
|
||||
to 512 bytes. Many of DNS's protocol limits are too small for uses
|
||||
which are commom or desired to become common. RFC 1035 does not
|
||||
define any way for implementations to advertise their capabilities.
|
||||
|
||||
[RFC2671] added extension mechanism to DNS, this mechanism is widely
|
||||
supported and number of new DNS uses and protocol extensions depend
|
||||
on the presence of these extensions. This memo refines that
|
||||
specification and obsoletes [RFC2671].
|
||||
|
||||
Unextended agents will not know how to interpret the protocol
|
||||
extensions defined in [RFC2671] and restated here. Extended agents
|
||||
must be prepared for handling the interactions with unextended
|
||||
clients in the face of new protocol elements, and fall back
|
||||
gracefully to unextended DNS. [RFC2671] proposed extensions to the
|
||||
basic DNS protocol to overcome these deficiencies. This memo refines
|
||||
that specification and obsoletes [RFC2671].
|
||||
|
||||
[RFC2671] specified extended label types. The only one proposed was
|
||||
in RFC2673 for a label type called "Bitstring Labels." For various
|
||||
reasons introducing a new label type was found to be extremely
|
||||
difficult, and RFC2673 was moved to Experimental. This document
|
||||
Obsoletes Extended Labels.
|
||||
|
||||
|
||||
2. Terminology
|
||||
|
||||
"Requestor" is the side which sends a request. "Responder" is an
|
||||
authoritative, recursive resolver, or other DNS component which
|
||||
responds to questions.
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in RFC 2119 [RFC2119].
|
||||
|
||||
|
||||
3. EDNS Support Requirement
|
||||
|
||||
EDNS support is practically mandatory in a modern world. DNSSEC
|
||||
requires EDNS support, and many other features are made possible only
|
||||
by EDNS support to request or advertise them. Many organizations are
|
||||
requiring DNSSEC. Without common interoperability, DNSSEC cannot be
|
||||
as easily deployed.
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 3]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
DNS publishers are wanting to put more data in answers. DNSSEC
|
||||
DNSKEY records, negative answers, and many other DNSSEC queries cause
|
||||
larger answers to be returned. In order to support this, DNS
|
||||
servers, middleware, and stub resolvers MUST support larger packet
|
||||
sizes advertised via EDNS0.
|
||||
|
||||
|
||||
4. DNS Message changes
|
||||
|
||||
4.1. Message Header
|
||||
|
||||
The DNS Message Header's second full 16-bit word is divided into a
|
||||
4-bit OPCODE, a 4-bit RCODE, and a number of 1-bit flags (see ,
|
||||
section 4.1.1 [RFC1035]). Some of these were marked for future use,
|
||||
and most these have since been allocated. Also, most of the RCODE
|
||||
values are now in use. The OPT pseudo-RR specified below contains
|
||||
extensions to the RCODE bit field as well as additional flag bits.
|
||||
|
||||
4.2. Label Types
|
||||
|
||||
The first two bits of a wire format domain label are used to denote
|
||||
the type of the label. [RFC1035] allocates two of the four possible
|
||||
types and reserves the other two. More label types were defined in
|
||||
[RFC2671]. This document obsoletes the use of the 2-bit combination
|
||||
defined by [RFC2671] to identify extended label types.
|
||||
|
||||
4.3. UDP Message Size
|
||||
|
||||
Traditional DNS Messages are limited to 512 octets in size when sent
|
||||
over UDP ([RFC1035]). Today, many organizations wish to return many
|
||||
records in a single reply, and special tricks are needed to make the
|
||||
responses fit in this 512-byte limit. Additionally, inclusion of
|
||||
DNSSEC records frequently requires a much larger response than a 512
|
||||
byte message can hold.
|
||||
|
||||
EDNS0 is intended to address these larger packet sizes and continue
|
||||
to use UDP. It specifies a way to advertise additional features such
|
||||
as larger response size capability, which is intended to help avoid
|
||||
truncated UDP responses which then cause retry over TCP.
|
||||
|
||||
|
||||
5. Extended Label Types
|
||||
|
||||
The first octet in the on-the-wire representation of a DNS label
|
||||
specifies the label type; the basic DNS specification [RFC1035]
|
||||
dedicates the two most significant bits of that octet for this
|
||||
purpose.
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 4]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
[RFC2671] defined DNS label type 0b01 for use as an indication for
|
||||
Extended Label Types. A specific Extended Label Type is selected by
|
||||
the 6 least significant bits of the first octet. Thus, Extended
|
||||
Label Types are indicated by the values 64-127 (0b01xxxxxx) in the
|
||||
first octet of the label.
|
||||
|
||||
Extended Label Types are difficult to use due to support in clients
|
||||
and intermediate gateways as described in [RFC3364] which moves them
|
||||
to experimental status and [RFC3363], which describes the pros and
|
||||
cons.
|
||||
|
||||
Therefore, this document moves them from experimental to historical,
|
||||
making them obsoleted. Additionally, the registry of Extended Label
|
||||
Types is requested to be closed.
|
||||
|
||||
|
||||
6. The OPT pseudo-RR
|
||||
|
||||
6.1. OPT Record Definition
|
||||
|
||||
An OPT pseudo-RR (sometimes called a meta-RR) MAY be added to the
|
||||
additional data section of a request.
|
||||
|
||||
The OPT RR has RR type 41.
|
||||
|
||||
If present in requests, compliant responders MUST include an OPT
|
||||
record in their respective responses.
|
||||
|
||||
An OPT record does not carry any DNS data. It is used only to
|
||||
contain control information pertaining to the question and answer
|
||||
sequence of a specific transaction. OPT RRs MUST NOT be cached,
|
||||
forwarded, or stored in or loaded from master files.
|
||||
|
||||
The OPT RR MAY be placed anywhere within the additional data section.
|
||||
Only one OPT RR MAY be included within any DNS message. If a message
|
||||
with more than one OPT RR is received, a FORMERR (RCODE=1) MUST be
|
||||
returned. The placement flexibility for the OPT RR does not override
|
||||
the need for the TSIG or SIG(0) RRs to be the last in the additional
|
||||
section whenever they are present.
|
||||
|
||||
6.2. OPT Record Wire Format
|
||||
|
||||
An OPT RR has a fixed part and a variable set of options expressed as
|
||||
{attribute, value} pairs. The fixed part holds some DNS meta data
|
||||
and also a small collection of basic extension elements which we
|
||||
expect to be so popular that it would be a waste of wire space to
|
||||
encode them as {attribute, value} pairs.
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 5]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
The fixed part of an OPT RR is structured as follows:
|
||||
|
||||
+------------+--------------+------------------------------+
|
||||
| Field Name | Field Type | Description |
|
||||
+------------+--------------+------------------------------+
|
||||
| NAME | domain name | Must be 0 (root domain) |
|
||||
| TYPE | u_int16_t | OPT (42) |
|
||||
| CLASS | u_int16_t | requestor's UDP payload size |
|
||||
| TTL | u_int32_t | extended RCODE and flags |
|
||||
| RDLEN | u_int16_t | length of all RDATA |
|
||||
| RDATA | octet stream | {attribute,value} pairs |
|
||||
+------------+--------------+------------------------------+
|
||||
|
||||
OPT RR Format
|
||||
|
||||
The variable part of an OPT RR may contain zero or more options in
|
||||
the RDATA. Each option must be treated as binary. Each option is
|
||||
encoded as:
|
||||
|
||||
|
||||
+0 (MSB) +1 (LSB)
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|
||||
0: | OPTION-CODE |
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|
||||
2: | OPTION-LENGTH |
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|
||||
4: | |
|
||||
/ OPTION-DATA /
|
||||
/ /
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|
||||
|
||||
OPTION-CODE
|
||||
Assigned by Expert Review.
|
||||
|
||||
OPTION-LENGTH
|
||||
Size (in octets) of OPTION-DATA.
|
||||
|
||||
OPTION-DATA
|
||||
Varies per OPTION-CODE. MUST be treated as binary.
|
||||
|
||||
The order of appearance of option tuples is not defined. If one
|
||||
option modifies the behavior of another or multiple options are
|
||||
related to one another in some way, they have the same effect
|
||||
regardless of ordering in the RDATA wire encoding.
|
||||
|
||||
Any OPTION-CODE values not understood by a responder or requestor
|
||||
MUST be ignored. Specifications of such options might wish to
|
||||
include some kind of signaled acknowledgement. For example, an
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 6]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
option specification might say that if a responder sees option XYZ,
|
||||
it MUST include option XYZ in its response.
|
||||
|
||||
6.3. Cache behaviour
|
||||
|
||||
The OPT record MUST NOT be cached.
|
||||
|
||||
6.4. Fallback
|
||||
|
||||
If a requestor detects that the remote end does not support EDNS0, it
|
||||
MAY issue queries without an OPT record. It MAY cache this knowledge
|
||||
for a brief time in order to avoid fallback delays in the future.
|
||||
However, if DNSSEC or any future option using EDNS is required, no
|
||||
fallback should be performed as they are only signaled through EDNS0.
|
||||
If an implementation detects that some servers for the zone support
|
||||
EDNS(0) while others would force the use of TCP to fetch all data,
|
||||
preference SHOULD be given to those support EDNS(0).
|
||||
|
||||
6.5. Requestor's Payload Size
|
||||
|
||||
The requestor's UDP payload size (encoded in the RR CLASS field) is
|
||||
the number of octets of the largest UDP payload that can be
|
||||
reassembled and delivered in the requestor's network stack. Note
|
||||
that path MTU, with or without fragmentation, could be smaller than
|
||||
this. Values lower than 512 MUST be treated as equal to 512.
|
||||
|
||||
The requestor SHOULD place a value in this field that it can actually
|
||||
receive. For example, if a requestor sits behind a firewall which
|
||||
will block fragmented IP packets, a requestor SHOULD not choose a
|
||||
value which will cause fragmentation. Doing so will prevent large
|
||||
responses from being received, and can cause fallback to occur.
|
||||
|
||||
Note that a 512-octet UDP payload requires a 576-octet IP reassembly
|
||||
buffer. Choosing between 1280 and 1410 bytes for IP (v4 or v6) over
|
||||
Ethernet would be reasonable. Choosing a very large value will
|
||||
guarantee fragmentation at the IP layer, and may prevent answers from
|
||||
being received due to a single fragment loss or misconfigured
|
||||
firewalls.
|
||||
|
||||
The requestor's maximum payload size can change over time. It MUST
|
||||
not be cached for use beyond the transaction in which it is
|
||||
advertised.
|
||||
|
||||
6.6. Responder's Payload Size
|
||||
|
||||
The responder's maximum payload size can change over time, but can be
|
||||
reasonably expected to remain constant between two closely spaced
|
||||
sequential transactions; for example, a meaningless QUERY to discover
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 7]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
a responder's maximum UDP payload size, followed immediately by an
|
||||
UPDATE which takes advantage of this size. This is considered
|
||||
preferable to the outright use of TCP for oversized requests, if
|
||||
there is any reason to suspect that the responder implements EDNS,
|
||||
and if a request will not fit in the default 512 payload size limit.
|
||||
|
||||
6.7. Payload Size Selection
|
||||
|
||||
Due to transaction overhead, it is unwise to advertise an
|
||||
architectural limit as a maximum UDP payload size. Just because your
|
||||
stack can reassemble 64KB datagrams, don't assume that you want to
|
||||
spend more than about 4KB of state memory per ongoing transaction.
|
||||
|
||||
A requestor MAY choose to implement a fallback to smaller advertised
|
||||
sizes to work around firewall or other network limitations. A
|
||||
requestor SHOULD choose to use a fallback mechanism which begins with
|
||||
a large size, such as 4096. If that fails, a fallback around the
|
||||
1280-1410 byte range SHOULD be tried, as it has a reasonable chance
|
||||
to fit within a single Ethernet frame. Failing that, a requestor MAY
|
||||
choose a 512 byte packet, which with large answers may cause a TCP
|
||||
retry.
|
||||
|
||||
6.8. Middleware Boxes
|
||||
|
||||
Middleware boxes (e.g. firewalls, SOHO routers, load balancers, etc)
|
||||
MUST NOT limit DNS messages over UDP to 512 bytes.
|
||||
|
||||
Middleware boxes which simply forward requests to a recursive
|
||||
resolver MUST NOT modify and MUST NOT delete the OPT record contents
|
||||
in either direction.
|
||||
|
||||
Middleware boxes which have additional functionality, such as
|
||||
answering certain queries or acting like an intelligent forwarder,
|
||||
MUST understand the OPT record. These boxes MUST consider the
|
||||
incoming request and any outgoing requests as separate transactions
|
||||
if the characteristics of the messages are different.
|
||||
|
||||
A complete discussion of middleware boxes acting as DNS proxies and
|
||||
the impact of EDNS in those implementations is described in
|
||||
[RFC5625].
|
||||
|
||||
6.9. OPT Record TTL Field Use
|
||||
|
||||
The extended RCODE and flags (which OPT stores in the RR TTL field)
|
||||
are structured as follows:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 8]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
+0 (MSB) +1 (LSB)
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|
||||
0: | EXTENDED-RCODE | VERSION |
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|
||||
2: | DO| Z |
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|
||||
|
||||
EXTENDED-RCODE
|
||||
Forms upper 8 bits of extended 12-bit RCODE (together with the
|
||||
4 bits defined in [RFC1035]. Note that EXTENDED-RCODE value 0
|
||||
indicates that an unextended RCODE is in use (values 0 through
|
||||
15).
|
||||
|
||||
VERSION
|
||||
Indicates the implementation level of whoever sets it. Full
|
||||
conformance with this specification is indicated by version
|
||||
``0.'' Requestors are encouraged to set this to the lowest
|
||||
implemented level capable of expressing a transaction, to
|
||||
minimize the responder and network load of discovering the
|
||||
greatest common implementation level between requestor and
|
||||
responder. A requestor's version numbering strategy MAY
|
||||
ideally be a run time configuration option.
|
||||
If a responder does not implement the VERSION level of the
|
||||
request, then it answers with RCODE=BADVERS. All responses
|
||||
MUST be limited in format to the VERSION level of the request,
|
||||
but the VERSION of each response SHOULD be the highest
|
||||
implementation level of the responder. In this way a requestor
|
||||
will learn the implementation level of a responder as a side
|
||||
effect of every response, including error responses and
|
||||
including RCODE=BADVERS.
|
||||
|
||||
6.10. Flags
|
||||
|
||||
DO
|
||||
DNSSEC OK bit as defined by [RFC3225].
|
||||
|
||||
Z
|
||||
Set to zero by senders and ignored by receivers, unless
|
||||
modified in a subsequent specification.
|
||||
|
||||
6.11. OPT Options Code Allocation Procedure
|
||||
|
||||
Allocations assigned by expert review. Assignment of Option Codes
|
||||
should be liberal, but duplicate functionality is to be avoided.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 9]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
7. Transport Considerations
|
||||
|
||||
The presence of an OPT pseudo-RR in a request should be taken as an
|
||||
indication that the requestor fully implements the given version of
|
||||
EDNS, and can correctly understand any response that conforms to that
|
||||
feature's specification.
|
||||
|
||||
Lack of presence of an OPT record in a request MUST be taken as an
|
||||
indication that the requestor does not implement any part of this
|
||||
specification and that the responder MUST NOT include an OPT record
|
||||
in its response.
|
||||
|
||||
Responders who do not implement these protocol extensions MUST
|
||||
respond with FORMERR messages without any OPT record.
|
||||
|
||||
If there is a problem with processing the OPT record itself, such as
|
||||
an option value that is badly formatted or includes out of range
|
||||
values, a FORMERR MUST be returned. If this occurs the response MUST
|
||||
include an OPT record. This is intended to allow the requestor to to
|
||||
distinguish between servers which do not implement EDNS and format
|
||||
errors within EDNS.
|
||||
|
||||
The minimal response must be the DNS header, question section, and an
|
||||
OPT record. This must also occur when an truncated response (using
|
||||
the DNS header's TC bit) is returned.
|
||||
|
||||
|
||||
8. Security Considerations
|
||||
|
||||
Requestor-side specification of the maximum buffer size may open a
|
||||
DNS denial of service attack if responders can be made to send
|
||||
messages which are too large for intermediate gateways to forward,
|
||||
thus leading to potential ICMP storms between gateways and
|
||||
responders.
|
||||
|
||||
Announcing very large UDP buffer sizes may result in dropping by
|
||||
middleboxes (see Section 6.8). This could cause retransmissions with
|
||||
no hope of success. Some devices have been found to reject
|
||||
fragmented UDP packets.
|
||||
|
||||
Announcing too small UDP buffer sizes may result in fallback to TCP
|
||||
with a corresponding load impact on DNS servers. This is especially
|
||||
important with DNSSEC, where answers are much larger.
|
||||
|
||||
|
||||
9. IANA Considerations
|
||||
|
||||
The IANA has assigned RR type code 41 for OPT.
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 10]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
[RFC2671] specified a number of IANA sub-registries within "DOMAIN
|
||||
NAME SYSTEM PARAMETERS:"
|
||||
|
||||
o EDNS Extended Label Type
|
||||
|
||||
o EDNS Option Codes
|
||||
|
||||
o EDNS Version Numbers
|
||||
|
||||
o Domain System Response Code
|
||||
|
||||
IANA is advised to re-parent these sub-registries to this document.
|
||||
|
||||
[RFC2671] created the "EDNS Extended Label Type Registry". We
|
||||
request that this registry be closed.
|
||||
|
||||
This document assigns option code 65535 in the "EDNS Option Codes"
|
||||
registry to "Reserved for future expansion."
|
||||
|
||||
[RFC2671] expands the RCODE space from 4 bits to 12 bits. This
|
||||
allows more than the 16 distinct RCODE values allowed in [RFC1035].
|
||||
IETF Standards Action is required to add a new RCODE. Adding new
|
||||
RCODEs should be avoided due to the difficulty in upgrading the
|
||||
installed base.
|
||||
|
||||
This document assigns EDNS Extended RCODE 16 to "BADVERS".
|
||||
|
||||
IETF Standards Action is required for assignments of new EDNS0 flags.
|
||||
Flags SHOULD be used only when necessary for DNS resolution to
|
||||
function. For many uses, a EDNS Option Code may be preferred.
|
||||
|
||||
IETF Standards Action is required to create new entries in the EDNS
|
||||
Version Number registry. Expert Review is required for allocation of
|
||||
an EDNS Option Code.
|
||||
|
||||
|
||||
Appendix A. Document Editing History
|
||||
|
||||
Following is a list of high-level changes made to the original
|
||||
RFC2671.
|
||||
|
||||
Appendix A.1. Changes since RFC2671
|
||||
|
||||
o Support for the OPT record is now mandatory.
|
||||
|
||||
o Extended label types obsoleted and the registry is closed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 11]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
o The bitstring label type, which was already moved from draft to
|
||||
experimental, is requested to be moved to historical.
|
||||
|
||||
o Changes in how EDNS buffer sizes are selected, with
|
||||
recommendations on how to select them.
|
||||
|
||||
o Front material (IPR notice and such) was updated to current
|
||||
requirements.
|
||||
|
||||
Appendix A.2. Changes since -02
|
||||
|
||||
o Specified the method for allocation of constants.
|
||||
|
||||
o Cleaned up a lot of wording, along with quite a bit of document
|
||||
structure changes.
|
||||
|
||||
|
||||
10. References
|
||||
|
||||
10.1. Normative References
|
||||
|
||||
[RFC1035] Mockapetris, P., "Domain names - implementation and
|
||||
specification", STD 13, RFC 1035, November 1987.
|
||||
|
||||
[RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)",
|
||||
RFC 2671, August 1999.
|
||||
|
||||
[RFC3225] Conrad, D., "Indicating Resolver Support of DNSSEC",
|
||||
RFC 3225, December 2001.
|
||||
|
||||
[RFC3363] Bush, R., Durand, A., Fink, B., Gudmundsson, O., and T.
|
||||
Hain, "Representing Internet Protocol version 6 (IPv6)
|
||||
Addresses in the Domain Name System (DNS)", RFC 3363,
|
||||
August 2002.
|
||||
|
||||
10.2. Informative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC3364] Austein, R., "Tradeoffs in Domain Name System (DNS)
|
||||
Support for Internet Protocol version 6 (IPv6)", RFC 3364,
|
||||
August 2002.
|
||||
|
||||
[RFC5625] Bellis, R., "DNS Proxy Implementation Guidelines",
|
||||
BCP 152, RFC 5625, August 2009.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 12]
|
||||
|
||||
Internet-Draft EDNS0 Extensions March 2011
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Joao Damas
|
||||
Internet Systems Consortium
|
||||
950 Charter Street
|
||||
Redwood City, California 94063
|
||||
US
|
||||
|
||||
Phone: +1 650.423.1312
|
||||
Email: joao@isc.org
|
||||
|
||||
|
||||
Michael Graff
|
||||
Internet Systems Consortium
|
||||
950 Charter Street
|
||||
Redwood City, California 94063
|
||||
US
|
||||
|
||||
Phone: +1 650.423.1304
|
||||
Email: mgraff@isc.org
|
||||
|
||||
|
||||
Paul Vixie
|
||||
Internet Systems Consortium
|
||||
950 Charter Street
|
||||
Redwood City, California 94063
|
||||
US
|
||||
|
||||
Phone: +1 650.423.1301
|
||||
Email: vixie@isc.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Damas, et al. Expires September 8, 2011 [Page 13]
|
||||
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -4,11 +4,11 @@
|
|||
Domain Name System Operations W. Wijngaards
|
||||
Internet-Draft O. Kolkman
|
||||
Intended status: Standards Track NLnet Labs
|
||||
Expires: August 26, 2010 February 22, 2010
|
||||
Expires: December 31, 2010 June 29, 2010
|
||||
|
||||
|
||||
DNSSEC Trust Anchor History Service
|
||||
draft-ietf-dnsop-dnssec-trust-history-01
|
||||
draft-ietf-dnsop-dnssec-trust-history-02
|
||||
|
||||
Abstract
|
||||
|
||||
|
|
@ -25,49 +25,43 @@ Requirements Language
|
|||
|
||||
Status of This Memo
|
||||
|
||||
This Internet-Draft is submitted to IETF in full conformance with the
|
||||
This Internet-Draft is submitted in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
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.
|
||||
Task Force (IETF). Note that other groups may also distribute
|
||||
working documents as Internet-Drafts. The list of current Internet-
|
||||
Drafts is at http://datatracker.ietf.org/drafts/current/.
|
||||
|
||||
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.
|
||||
|
||||
This Internet-Draft will expire on August 26, 2010.
|
||||
This Internet-Draft will expire on December 31, 2010.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as the
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 1]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
|
||||
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 1]
|
||||
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the BSD License.
|
||||
described in the Simplified BSD License.
|
||||
|
||||
1. Introduction
|
||||
|
||||
|
|
@ -80,7 +74,7 @@ Internet-Draft Trust History Service February 2010
|
|||
trust-anchor. Using a newly defined resource record (RR) that links
|
||||
old DNSKEYS together, the TALINK RR, a validator fetches old DNSKEY
|
||||
RRsets and checks they form a chain to the latest key (see
|
||||
Section 2). The lists of old DNSKEYS, linked with the TALINK RRs, do
|
||||
Section 3). The lists of old DNSKEYS, linked with the TALINK RRs, do
|
||||
not necessarily need to be published in the zone for which the DNSKEY
|
||||
history is being maintained but can be published in any DNS domain.
|
||||
We will call the entity that offers the trust history the History
|
||||
|
|
@ -88,12 +82,123 @@ Internet-Draft Trust History Service February 2010
|
|||
maintainer of the validator, possibly based on a hint provided, using
|
||||
the TALINK, by the zone owner.
|
||||
|
||||
The algorithm that the validator uses to construct a history and
|
||||
reconfigure a new key is detailed in Section 3. The algorithms for
|
||||
how providers of trust history can fetch the DNSKEY data as published
|
||||
by the zone they track and publish that are explained in Section 4.
|
||||
Section 2 provides background on the mechanism and usage. It looks
|
||||
at the viewpoints of publishers and consumers of trust anchors, the
|
||||
use of keys with revocation flags, and SEP flags.
|
||||
|
||||
2. The TALINK Resource Record
|
||||
The algorithm that the validator uses to construct a history and
|
||||
reconfigure a new key is detailed in Section 4, it uses the TALINK RR
|
||||
type defined in Section 3. The algorithms for how providers of trust
|
||||
history can fetch the DNSKEY data as published by the zone they track
|
||||
and publish that are explained in Section 5.
|
||||
|
||||
2. Motivation and Description
|
||||
|
||||
Validators provide a service in DNSSEC that can be seen from two
|
||||
ways. Seen from the publisher's point of view, they provide
|
||||
assurance that the data as received is as it was when it left the
|
||||
publisher's hands. In this way of looking at things, validators
|
||||
provide a publication integrity service. The publisher can be
|
||||
confident that nobody can alter the published data (if it is
|
||||
validated), because any alteration will be detected. So it protects
|
||||
a publisher from being seen to send someone to the wrong place.
|
||||
|
||||
From the consumer's point of view, validators provide a reason to
|
||||
trust the data from the network. In this view, the validator is
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 2]
|
||||
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
making a claim about whether the data ought to be accepted or not.
|
||||
This is subtly different from the publisher's point of view, because
|
||||
the question for the consumer is not whether the data is safe while
|
||||
the consumer is not looking, but whether the data is safe for the
|
||||
consumer at the moment of consumption. Validation protects a
|
||||
consumer from going to the wrong place.
|
||||
|
||||
These two slightly different ways of looking at the situation result
|
||||
in slightly different operational goals. Whereas publishers want to
|
||||
make assertions about their data, by controlling the roll over of
|
||||
keys, consumers want to get the best assurance that they can get that
|
||||
the data they are consuming is correct.
|
||||
|
||||
If a validator has been offline during a key rollover event for one
|
||||
of its trust anchors, then the validator will be unable to validate
|
||||
answers that need that trust anchor. For the publisher, this state
|
||||
of affairs is acceptable: the publisher is confident that no
|
||||
validator ever consumes the wrong data. For the consumer, however,
|
||||
this state of affairs represents an outage.
|
||||
|
||||
Since publishers of trust anchors already use a chained series of
|
||||
keys to perform rollovers under some circumstances (see [RFC5011]),
|
||||
it is possible to use the history of that chain to allow a validator
|
||||
to resume service for the consumer without needing to use an out-of-
|
||||
band mechanism to obtain a new trust anchor. This improves the
|
||||
experience for consumers of validated data, and increases the chances
|
||||
that DNSSEC is useful for consumers of DNS data.
|
||||
|
||||
The mechanism to do this is a double-linked list that recounts a
|
||||
portion of the history of DNSKEY Resource Records. The list is used
|
||||
by a validator to catch up with the changes that the validator
|
||||
somehow missed. This approach may be thought of as replaying the
|
||||
[RFC5011] rollover history, only at a later time.
|
||||
|
||||
2.1. Considerations for Using a Revoked Key
|
||||
|
||||
The keys that the publisher rolled are marked REVOKED by the RFC5011
|
||||
protocol. At this point the publisher considers the keys revoked,
|
||||
but the validators have not yet seen this or marked the keys as
|
||||
revoked. In the RFC5011 protocol, the validators probe regularly and
|
||||
can then see if keys are revoked. If unable to probe, they will be
|
||||
unable to see if keys are revoked. Hence when using a history to
|
||||
recount rollovers, the consumer's validator has also missed a number
|
||||
of revocations. The goal is to pick up the right keys and also the
|
||||
new revocations along the way.
|
||||
|
||||
Although the keys have been marked by the publisher as REVOKED a long
|
||||
time ago, for the consumer these REVOKED keys are new information.
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 3]
|
||||
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
Their storage in the history list makes it possible for consumers to
|
||||
pick up key revocations if they missed the revocation announcement
|
||||
because they could not probe.
|
||||
|
||||
This is the allowed usage of REVOKED keys. The publisher is
|
||||
announcing their presence. And the validators mark them as REVOKED
|
||||
after verification. The initial part of this verification is the
|
||||
reverse walk through the history list, which is to avoid exposing
|
||||
which key is trusted. This means that older signatures with keys
|
||||
that have in the meantime been revoked are used to construct and
|
||||
verify the history list by the validator.
|
||||
|
||||
A consequence is that once a publisher marks keys as REVOKED, there
|
||||
will still be consumers who are using such keys, because they have
|
||||
not seen the revocation. From the publishers point of view they are
|
||||
revoked and the revocation is filed in the historical key list. From
|
||||
the consumers point of view, it has not seen a revocation yet, and a
|
||||
historical key list lookup algorithm is a state change where a new
|
||||
trusted key is obtained while the old key is observed to be revoked.
|
||||
|
||||
2.2. Motivation for Requiring the SEP Bit
|
||||
|
||||
The SEP bit is used to differentiate Key Signing Keys from other
|
||||
keys. It is defined in [RFC3757], it is used to designate trust
|
||||
anchors in [RFC5011]. The protocol herein specified requires that
|
||||
DNSKEYs that are subject to use for the trust history service have
|
||||
the SEP bit set. The reason for this is to keep the set of keys that
|
||||
need to be stored in history small.
|
||||
|
||||
3. The TALINK Resource Record
|
||||
|
||||
The DNS Resource Record type TALINK (decimal 58) ties the elements of
|
||||
a linked list of DNSKEY RRs together.
|
||||
|
|
@ -105,17 +210,22 @@ Internet-Draft Trust History Service February 2010
|
|||
The presentation format is the two domain names. The wire encoding
|
||||
is the two domain names, with no compression so the type can be
|
||||
treated according to [RFC3597]. The list is a double linked list,
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 2]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
|
||||
|
||||
because this empowers low memory hosts to perform consistency checks.
|
||||
|
||||
3. Trust History Lookup
|
||||
The TALINK used at the zone apex holds the endpoints of the list.
|
||||
The TALINKs that form the lists hold previous and next entries.
|
||||
These TALINKs are distinguished by their usage (entrypoint or list
|
||||
connection). The double linked list is not circular, because lookups
|
||||
must stop when they reach the oldest entry.
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 4]
|
||||
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
4. Trust History Lookup
|
||||
|
||||
This is the algorithm that a validator uses to detect and resolve the
|
||||
situation in which a trust-anchor is out of sync with the DNSKEYs
|
||||
|
|
@ -123,10 +233,10 @@ Internet-Draft Trust History Service February 2010
|
|||
which is used to link various old DNSKEYs as published by the History
|
||||
Provider, to arrive from the outdated configured Trust Anchor to one
|
||||
that matches the current DNSKEY. The TALINK RR type is defined in
|
||||
Section 2.
|
||||
Section 3.
|
||||
|
||||
When the algorithm below results in failure the trust history cannot
|
||||
be build and a new trust anchor will need to be re-configured using
|
||||
be built and a new trust anchor will need to be re-configured using
|
||||
another mechanism.
|
||||
|
||||
Step 1: The validator performs a DNSKEY lookup to the target zone,
|
||||
|
|
@ -144,12 +254,14 @@ Internet-Draft Trust History Service February 2010
|
|||
The results can differ if a key-rollover is in progress and not
|
||||
all nameservers are in sync yet. This case can be detected by
|
||||
checking that the older keyset signs the newer and take the newer
|
||||
as result keyset. The keysets are distinguished by the average
|
||||
over the middle of the inception and expiration dates of the
|
||||
signatures that are validated by the keyset itself. Otherwise,
|
||||
the history lookup fails. If the check fails then the
|
||||
inconsistency may be the result of spoofing, or compromise of
|
||||
(DNS) infrastructure elements.
|
||||
as result keyset. If both of the keysets sign each other, the
|
||||
result keyset has the newest rrsig that validates it using the
|
||||
other keyset. Use the the average over the middle of the
|
||||
inception and expiration dates of the signatures that are
|
||||
validated (and for serial arithmetic assume all dates on these
|
||||
signatures lie within 2^(SERIAL_BITS-1) distance). If the keysets
|
||||
do not sign each other then this is not a secure change in the
|
||||
keyset and the history lookup fails.
|
||||
|
||||
Step 2: Fetch the trust history list end points. Perform a query of
|
||||
QTYPE TALINK and QNAME the domain name that is configured to be
|
||||
|
|
@ -159,24 +271,23 @@ Internet-Draft Trust History Service February 2010
|
|||
Step 3: Go backwards through the trust history list as provided by
|
||||
the TALINK linked list. Verify that the keyset validly signs the
|
||||
next keyset. This is [RFC4034] validation, but the RRSIG
|
||||
expiration date is ignored. [Editor note: Are we shure that there
|
||||
are no server implementations that will not serve expired RRSIG,
|
||||
expiration date is ignored. Replace the owner domain name with
|
||||
the target zone name for verification. One of the keys that signs
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 3]
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 5]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
are such 'smart' servers allowed by the specs? In other words do
|
||||
we need clarification in the DNSSEC-updates document?] Replace
|
||||
the owner domain name with the target zone name for verification.
|
||||
One of the keys that signs the next keyset MUST have the SEP bit
|
||||
set. The middle of inception and expiration date from the valid
|
||||
signature MUST be older than that of the signature that validates
|
||||
the next keys in the list. Query type TALINK to get previous and
|
||||
next locations.
|
||||
the next keyset MUST have the SEP bit set. The middle of
|
||||
inception and expiration date from the valid signature MUST be
|
||||
older than that of the signature that validates the next keys in
|
||||
the list. Take the average if multiple signatures validate (and
|
||||
for serial arithmetic assume all dates on these signatures lie
|
||||
within 2^(SERIAL_BITS-1) distance). Query type TALINK to get
|
||||
previous and next locations.
|
||||
|
||||
If all SEP keys have the REVOKE flag set at this step, and the
|
||||
keyset is signed by all SEP keys, then continue but store that the
|
||||
|
|
@ -198,7 +309,7 @@ Internet-Draft Trust History Service February 2010
|
|||
store the result on stable storage. Use the new trust anchor for
|
||||
validation (if using [RFC5011], put it in state VALID).
|
||||
|
||||
4. Trust History Tracker
|
||||
5. Trust History Tracker
|
||||
|
||||
External trackers can poll the target zone DNSKEY RRset regularly.
|
||||
Ignore date changes in the RRSIG. Ignore changes to keys with no SEP
|
||||
|
|
@ -220,16 +331,18 @@ Internet-Draft Trust History Service February 2010
|
|||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 4]
|
||||
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 6]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
5. Example
|
||||
6. Example
|
||||
|
||||
In this example example.com is the History Provider for example.net.
|
||||
The DNSKEY rdata and RRSIG rdata is omitted for brevity, it is a copy
|
||||
and paste of the data from example.net.
|
||||
In this example the trust history for the 'example.net' zone is
|
||||
published in the 'example.com' namespace. The DNSKEY rdata and RRSIG
|
||||
rdata is omitted for brevity, it is a copy and paste of the data from
|
||||
example.net.
|
||||
|
||||
$ORIGIN example.com.
|
||||
example.com. TALINK h0.example.com. h2.example.com.
|
||||
|
|
@ -250,7 +363,7 @@ Internet-Draft Trust History Service February 2010
|
|||
by providing the TALINK shown here at example.com at the apex of the
|
||||
example.net zone. The TALINK at example.com is then not needed.
|
||||
|
||||
6. Deployment
|
||||
7. Deployment
|
||||
|
||||
The trust history is advertised with TALINK RRs at the zone apex.
|
||||
These represent alternative history sources, that can be searched in
|
||||
|
|
@ -275,10 +388,9 @@ Internet-Draft Trust History Service February 2010
|
|||
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 5]
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 7]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
In general, the decision can be that any key - no matter how old or
|
||||
|
|
@ -296,13 +408,11 @@ Internet-Draft Trust History Service February 2010
|
|||
argument that perceived security is worse than no security.
|
||||
|
||||
The history lookup can be used on its own. Then, the trust history
|
||||
is used whenever the key rolls over and no polling is performed.
|
||||
This has associated risks, in that the immediate rollover without
|
||||
timeout that it provides could be abused, and certainly when taken
|
||||
together with leap-of-faith such systems SHOULD inform their user
|
||||
that the key has changed and urge them to do immediate checks.
|
||||
Initially we put a hold down timer on such rollovers to mitigate the
|
||||
abuse risks but these make following normal rollovers impossible.
|
||||
is used whenever the key rolls over and no polling is performed. The
|
||||
results of trust history lookup SHOULD be stored on stable storage,
|
||||
so that the trust history lookup does not need to be performed if the
|
||||
last results are okay and for use as trusted anchor in the next
|
||||
history lookup.
|
||||
|
||||
If a validator is also using [RFC5011] for the target zone, then the
|
||||
trust history algorithm SHOULD only be invoked if the [RFC5011]
|
||||
|
|
@ -320,7 +430,7 @@ Internet-Draft Trust History Service February 2010
|
|||
History Provider. The test History Provider provides access to a
|
||||
generated back-dated test history.
|
||||
|
||||
7. Security Considerations
|
||||
8. Security Considerations
|
||||
|
||||
The History Provider only provides copies of old data. If that
|
||||
historic data is altered or withheld the lookup algorithm fails
|
||||
|
|
@ -329,16 +439,16 @@ Internet-Draft Trust History Service February 2010
|
|||
to the original private keys (through theft, cryptanalisis, or
|
||||
otherwise), history can be altered without failure of the algorithm.
|
||||
Below we only consider MIMAs and assume the History Provider is a
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 6]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
|
||||
|
||||
trusted party.
|
||||
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 8]
|
||||
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
Spoofing by a MIMA of data looked up in step 2 or 3, i.e. spoofing of
|
||||
TALINK and DNSKEY data, can present some alternate history. However
|
||||
the DNSKEY RR set trusted that the history should arrive at is
|
||||
|
|
@ -376,26 +486,25 @@ Internet-Draft Trust History Service February 2010
|
|||
|
||||
Rollover with [RFC5011] revokes keys after use. If a History
|
||||
Provider is used, then such revoked keys SHOULD be used to perform
|
||||
history tracking and history lookup. The old keys that the validator
|
||||
starts with and final current keys MUST NOT be trusted if they are
|
||||
revoked.
|
||||
history tracking and history lookup. The trust anchor keys that the
|
||||
validator has in its own storage and final current keys that it
|
||||
stores MUST NOT be trusted if they are revoked.
|
||||
|
||||
Depending on choices by the validator operator, it may accept a leap-
|
||||
of-faith, and possibly allow non-hold-down rollovers. Although this
|
||||
allows very fast emergency rollover if all clients are known to do
|
||||
trust-history lookups without the RFC5011-algorithm, it also allows
|
||||
an attacker with the private key to attempt to take over a zone
|
||||
If the validator operator chooses to operate trust history without
|
||||
also using [RFC5011] the trust anchor does not get hold-down timer
|
||||
protection. This has associated risks, in that the immediate
|
||||
rollover without timeout that it provides could be abused (if private
|
||||
keys are compromised). Such abuse could result in the stored lookup
|
||||
results to become compromised. The key changes can be logged, to
|
||||
inform operators and keep an audit trail.
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 7]
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 9]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
quickly and get validators to roll to a trust anchor of the
|
||||
attacker's choosing.
|
||||
|
||||
The SEP bit is checked to make sure that control over the KSK is
|
||||
necessary to change the keyset for the target zone.
|
||||
|
||||
|
|
@ -409,31 +518,35 @@ Internet-Draft Trust History Service February 2010
|
|||
enables a replay attack of old DNSSEC data and signatures. This
|
||||
vulnerability exists also in plain DNSSEC.
|
||||
|
||||
8. IANA Considerations
|
||||
9. IANA Considerations
|
||||
|
||||
Resource record type TALINK has been defined using RFC5395 expert
|
||||
review, it has RR type number 58 (decimal).
|
||||
|
||||
9. Acknowledgments
|
||||
10. Acknowledgments
|
||||
|
||||
Thanks to the people who provided review and suggestions, Joe Abley,
|
||||
George Barwood, Edward Lewis, Michael StJohns, Bert Hubert, Mark
|
||||
Andrews, Ted Lemon, Steve Crocker, Bill Manning, Eric Osterweil,
|
||||
Wolfgang Nagele, Alfred Hoenes, Olafur Gudmundsson, Roy Arends and
|
||||
Matthijs Mekking.
|
||||
Thanks to the people who provided review and suggestions, Peter Koch,
|
||||
Andrew Sullivan, Joe Abley, George Barwood, Edward Lewis, Michael
|
||||
StJohns, Bert Hubert, Mark Andrews, Ted Lemon, Steve Crocker, Bill
|
||||
Manning, Eric Osterweil, Wolfgang Nagele, Alfred Hoenes, Olafur
|
||||
Gudmundsson, Roy Arends and Matthijs Mekking.
|
||||
|
||||
10. References
|
||||
11. References
|
||||
|
||||
10.1. Informative References
|
||||
11.1. Informative References
|
||||
|
||||
[NIST800-57] Barker, E., Barker, W., Burr, W., Polk, W., and M.
|
||||
Smid, "Recommendations for Key Management", NIST
|
||||
SP 800-57, March 2007.
|
||||
|
||||
[RFC3757] Kolkman, O., Schlyter, J., and E. Lewis, "Domain Name
|
||||
System KEY (DNSKEY) Resource Record (RR) Secure Entry
|
||||
Point (SEP) Flag", RFC 3757, April 2004.
|
||||
|
||||
[RFC5011] StJohns, M., "Automated Updates of DNS Security
|
||||
(DNSSEC) Trust Anchors", RFC 5011, September 2007.
|
||||
|
||||
10.2. Normative References
|
||||
11.2. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
|
@ -443,10 +556,9 @@ Internet-Draft Trust History Service February 2010
|
|||
|
||||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 8]
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 10]
|
||||
|
||||
Internet-Draft Trust History Service February 2010
|
||||
Internet-Draft Trust History Service June 2010
|
||||
|
||||
|
||||
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
|
|
@ -500,5 +612,5 @@ Authors' Addresses
|
|||
|
||||
|
||||
|
||||
Wijngaards & Kolkman Expires August 26, 2010 [Page 9]
|
||||
Wijngaards & Kolkman Expires December 31, 2010 [Page 11]
|
||||
|
||||
|
|
@ -1,952 +0,0 @@
|
|||
|
||||
|
||||
|
||||
DNSOP W. Hardaker
|
||||
Internet-Draft Sparta, Inc.
|
||||
Intended status: Informational February 12, 2009
|
||||
Expires: August 16, 2009
|
||||
|
||||
|
||||
Requirements for Management of Name Servers for the DNS
|
||||
draft-ietf-dnsop-name-server-management-reqs-02.txt
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This Internet-Draft is submitted to IETF in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
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.
|
||||
|
||||
This Internet-Draft will expire on August 16, 2009.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2009 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document.
|
||||
|
||||
Abstract
|
||||
|
||||
Management of name servers for the Domain Name Service (DNS) has
|
||||
traditionally been done using vendor-specific monitoring,
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 1]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
configuration and control methods. Although some service monitoring
|
||||
platforms can test the functionality of the DNS itself there is not a
|
||||
interoperable way to manage (monitor, control and configure) the
|
||||
internal aspects of a name server itself.
|
||||
|
||||
This document discusses the requirements of a management system for
|
||||
DNS name servers. A management solution that is designed to manage
|
||||
the DNS can use this document as a shopping list of needed features.
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
1.1. Requirements notation . . . . . . . . . . . . . . . . . . 4
|
||||
1.1.1. Terminology . . . . . . . . . . . . . . . . . . . . . 5
|
||||
1.1.2. Document Layout and Requirements . . . . . . . . . . . 5
|
||||
2. Management Architecture Requirements . . . . . . . . . . . . . 5
|
||||
2.1. Expected Deployment Scenarios . . . . . . . . . . . . . . 5
|
||||
2.1.1. Zone Size Constraints . . . . . . . . . . . . . . . . 5
|
||||
2.1.2. Name Server Discovery . . . . . . . . . . . . . . . . 6
|
||||
2.1.3. Configuration Data Volatility . . . . . . . . . . . . 6
|
||||
2.1.4. Protocol Selection . . . . . . . . . . . . . . . . . . 6
|
||||
2.1.5. Common Data Model . . . . . . . . . . . . . . . . . . 6
|
||||
2.1.6. Operational Impact . . . . . . . . . . . . . . . . . . 7
|
||||
2.2. Name Server Types . . . . . . . . . . . . . . . . . . . . 7
|
||||
3. Management Operation Types . . . . . . . . . . . . . . . . . . 7
|
||||
3.1. Control Requirements . . . . . . . . . . . . . . . . . . . 8
|
||||
3.1.1. Needed Control Operations . . . . . . . . . . . . . . 8
|
||||
3.1.2. Asynchronous Status Notifications . . . . . . . . . . 8
|
||||
3.2. Configuration Requirements . . . . . . . . . . . . . . . . 9
|
||||
3.2.1. Served Zone Modification . . . . . . . . . . . . . . . 9
|
||||
3.2.2. Trust Anchor Management . . . . . . . . . . . . . . . 9
|
||||
3.2.3. Security Expectations . . . . . . . . . . . . . . . . 9
|
||||
3.2.4. TSIG Key Management . . . . . . . . . . . . . . . . . 9
|
||||
3.2.5. DNS Protocol Authorization Management . . . . . . . . 9
|
||||
3.3. Monitoring Requirements . . . . . . . . . . . . . . . . . 10
|
||||
3.4. Alarm and Event Requirements . . . . . . . . . . . . . . . 10
|
||||
4. Security Requirements . . . . . . . . . . . . . . . . . . . . 11
|
||||
4.1. Authentication . . . . . . . . . . . . . . . . . . . . . . 11
|
||||
4.2. Integrity Protection . . . . . . . . . . . . . . . . . . . 11
|
||||
4.3. Confidentiality . . . . . . . . . . . . . . . . . . . . . 11
|
||||
4.4. Authorization . . . . . . . . . . . . . . . . . . . . . . 11
|
||||
4.5. Solution Impacts on Security . . . . . . . . . . . . . . . 12
|
||||
5. Other Requirements . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
5.1. Extensibility . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
5.1.1. Vendor Extensions . . . . . . . . . . . . . . . . . . 13
|
||||
5.1.2. Extension Identification . . . . . . . . . . . . . . . 13
|
||||
5.1.3. Name-Space Collision Protection . . . . . . . . . . . 13
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 2]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 13
|
||||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
|
||||
8. Document History . . . . . . . . . . . . . . . . . . . . . . . 13
|
||||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14
|
||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
|
||||
10.1. Normative References . . . . . . . . . . . . . . . . . . . 14
|
||||
10.2. Informative References . . . . . . . . . . . . . . . . . . 15
|
||||
Appendix A. Deployment Scenarios . . . . . . . . . . . . . . . . 15
|
||||
A.1. Non-Standard Zones . . . . . . . . . . . . . . . . . . . . 16
|
||||
A.2. Redundancy Sharing . . . . . . . . . . . . . . . . . . . . 16
|
||||
A.3. DNSSEC Management . . . . . . . . . . . . . . . . . . . . 16
|
||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 17
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 3]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
Management of name servers for the Domain Name Service (DNS)
|
||||
[RFC1034] [RFC1035] has traditionally been done using vendor-specific
|
||||
monitoring, configuration and control methods. Although some service
|
||||
monitoring platforms can test the functionality of the DNS itself
|
||||
there is not a interoperable way to manage (monitor, control and
|
||||
configure) the internal aspects of a name server itself.
|
||||
|
||||
Previous standardization work within the IETF resulted in the
|
||||
creation of two SNMP MIB modules [RFC1611] [RFC1612] but they failed
|
||||
to achieve significant implementation and deployment. The perceived
|
||||
reasons behind the failure for the two MIB modules are further
|
||||
documented in [RFC3197].
|
||||
|
||||
This document discusses the requirements of a management system for
|
||||
DNS name servers. A management solution that is designed to manage
|
||||
the DNS can use this document as a shopping list of needed features.
|
||||
|
||||
Specifically out of scope for this document are requirements
|
||||
associated with management of stub resolvers. It is not the intent
|
||||
of this document to document stub resolver requirements, although
|
||||
some of the requirements listed are applicable to stub resolvers as
|
||||
well.
|
||||
|
||||
Also out of scope for this document is management of the host or
|
||||
other components of the host upon which the name server software is
|
||||
running. This document only discusses requirements for managing the
|
||||
name server component of a system.
|
||||
|
||||
The task of creating a management system for managing DNS servers is
|
||||
not expected to be a small one. It is likely that components of the
|
||||
solution will need to be designed in parts over time and these
|
||||
requirements take this into consideration. In particular,
|
||||
Section 5.1 discusses the need for future extensibility of the base
|
||||
management solution. This document is intended to be a road-map
|
||||
towards a desired outcome and is not intended to define an "all-or-
|
||||
nothing" system. Successful interoperable management of name servers
|
||||
even in part is expected to be beneficial to network operators
|
||||
compared to the entirely custom solutions that are used at the time
|
||||
of this writing.
|
||||
|
||||
1.1. Requirements notation
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 4]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
1.1.1. Terminology
|
||||
|
||||
This document is consistent with the terminology defined in Section 2
|
||||
of [RFC4033]. Additional terminology needed for this document is
|
||||
described below:
|
||||
|
||||
Name Server: When we are discussing servers that don't fall into a
|
||||
more specific type of server category defined in other documents,
|
||||
this document will refer to them generically as "name servers".
|
||||
In particular "name servers" can be considered to be any valid
|
||||
combination of authoritative, recursive, validating, or security-
|
||||
aware. The more specific name server labels will be used when
|
||||
this document refers only to a specific type of server. However,
|
||||
the term "name server", in this document, will not include stub
|
||||
resolvers.
|
||||
|
||||
1.1.2. Document Layout and Requirements
|
||||
|
||||
The document is written so that each numbered section will contain
|
||||
only a single requirement if it contains one at all. Each
|
||||
requirement will contain needed wording from the terminology
|
||||
described in Section 1.1. Subsections, however, might exist with
|
||||
additional related requirements. The document is laid out in this
|
||||
way so that a specific requirement can be uniquely referred to using
|
||||
the section number itself and the document version from which it
|
||||
came.
|
||||
|
||||
|
||||
2. Management Architecture Requirements
|
||||
|
||||
This section discusses requirements that reflect the needs of the
|
||||
expected deployment environments.
|
||||
|
||||
2.1. Expected Deployment Scenarios
|
||||
|
||||
DNS zones vary greatly in the type of content published within them.
|
||||
Name Servers, too, are deployed with a wide variety of configurations
|
||||
to support the diversity of the deployed content. It is important
|
||||
that a management solution trying to meet the criteria specified in
|
||||
this document consider supporting the largest number of potential
|
||||
deployment cases as possible. Further deployment scenarios that are
|
||||
not used as direct examples of specific requirements are listed in
|
||||
Appendix A.
|
||||
|
||||
2.1.1. Zone Size Constraints
|
||||
|
||||
The management solution MUST support both name servers that are
|
||||
serving a small number of potentially very large zones (e.g. Top
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 5]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
Level Domains (TLDs)) as well as name servers that are serving a very
|
||||
large number of small zones. These scenarios are both commonly seen
|
||||
deployments.
|
||||
|
||||
2.1.2. Name Server Discovery
|
||||
|
||||
Large enterprise network deployments may contain multiple name
|
||||
servers operating within the boundaries of the enterprise network.
|
||||
These name servers may each be serving multiple zones both in and out
|
||||
of the parent enterprise's zone. Finding and managing large
|
||||
quantities of name servers would be a useful feature of the resulting
|
||||
management solution. The management solution MAY support the ability
|
||||
to discover previously unknown instances of name servers operating
|
||||
within a deployed network.
|
||||
|
||||
2.1.3. Configuration Data Volatility
|
||||
|
||||
Configuration data is defined as data that relates only to the
|
||||
configuration of a server and the zones it serves. It specifically
|
||||
does not include data from the zone contents that is served through
|
||||
DNS itself. The solution MUST support servers that remain fairly
|
||||
statically configured over time as well as servers that have numerous
|
||||
zones being added and removed within an hour. Both of these
|
||||
scenarios are also commonly seen deployments.
|
||||
|
||||
2.1.4. Protocol Selection
|
||||
|
||||
There are many requirements in this document for many different types
|
||||
of management operations (see Section 3 for further details). It is
|
||||
possible that no one protocol will ideally fill all the needs of the
|
||||
requirements listed in this document and thus multiple protocols
|
||||
might be needed to produce a completely functional management system.
|
||||
Multiple protocols might be used to create the complete management
|
||||
solution, but the number of protocols used SHOULD be reduced to a
|
||||
reasonable minimum number.
|
||||
|
||||
2.1.5. Common Data Model
|
||||
|
||||
Defining a standardized protocol (or set of protocols) to use for
|
||||
managing name servers would be a step forward in achieving an
|
||||
interoperable management solution. However, just defining a protocol
|
||||
to use by itself would not achieve the complete end goal of a
|
||||
complete interoperable management solution. Devices also need to
|
||||
represent their internal management interface using a common
|
||||
management data model. The solution MUST create a common data model
|
||||
that management stations can make use of when sending or collecting
|
||||
data from a managed device so it can successfully manage equipment
|
||||
from vendors as if they were generic DNS servers. This common data
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 6]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
model is needed for of the operations discussion in Section 3. Note
|
||||
that this does not preclude the fact that name server vendors might
|
||||
provide additional management infrastructure beyond a base management
|
||||
specification, as discussed further in Section 5.1.
|
||||
|
||||
2.1.6. Operational Impact
|
||||
|
||||
It is impossible to add new features to an existing server (such as
|
||||
the inclusion of a management infrastructure) and not impact the
|
||||
existing service and/or server in some fashion. At a minimum, for
|
||||
example, more memory, disk and/or CPU resources will be required to
|
||||
implement a new management system. However, the impact to the
|
||||
existing DNS service MUST be minimized since the DNS service itself
|
||||
is still the primary service to be offered by the modified name
|
||||
server.
|
||||
|
||||
2.2. Name Server Types
|
||||
|
||||
There are multiple ways in which name servers can be deployed. Name
|
||||
servers can take on any of the following roles:
|
||||
|
||||
o Master Servers
|
||||
|
||||
o Slave Servers
|
||||
|
||||
o Recursive Servers
|
||||
|
||||
The management solution SHOULD support all of these types of name
|
||||
servers as they are all equally important. Note that "Recursive
|
||||
Servers" can be further broken down by the security sub-roles they
|
||||
might implement, as defined in section 2 of [RFC4033]. These sub-
|
||||
roles are also important to support within any management solution.
|
||||
|
||||
As stated earlier, the management of stub resolvers is considered out
|
||||
of scope for this documents.
|
||||
|
||||
|
||||
3. Management Operation Types
|
||||
|
||||
Management operations can traditionally be broken into four
|
||||
categories:
|
||||
|
||||
o Control
|
||||
|
||||
o Configuration
|
||||
|
||||
o Health and Monitoring
|
||||
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 7]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
o Alarms and Events
|
||||
|
||||
This section discusses requirements for each of these four management
|
||||
types in detail.
|
||||
|
||||
3.1. Control Requirements
|
||||
|
||||
The management solution MUST be capable of performing basic service
|
||||
control operations.
|
||||
|
||||
3.1.1. Needed Control Operations
|
||||
|
||||
These operations SHOULD include, at a minimum, the following
|
||||
operations:
|
||||
|
||||
o Starting the name server
|
||||
|
||||
o Reloading the service configuration
|
||||
|
||||
o Reloading zone data
|
||||
|
||||
o Restarting the name server
|
||||
|
||||
o Stopping the name server
|
||||
|
||||
Note that no restriction is placed on how the management system
|
||||
implements these operations. In particular, at least "starting the
|
||||
name server" will require a minimal management system component to
|
||||
exist independently of the name server itself.
|
||||
|
||||
3.1.2. Asynchronous Status Notifications
|
||||
|
||||
Some control operations might take a long time to complete. As an
|
||||
example, some name servers take a long time to perform reloads of
|
||||
large zones. Because of these timing issues, the management solution
|
||||
SHOULD take this into consideration and offer a mechanism to ease the
|
||||
burden associated with awaiting the status of a long-running command.
|
||||
This could, for example, result in the use of asynchronous
|
||||
notifications for returning the status of a long-running task or it
|
||||
might require the management station to poll for the status of a
|
||||
given task using monitoring commands. These and other potential
|
||||
solutions need to be evaluated carefully to select one that balances
|
||||
the result delivery needs with the perceived implementation costs.
|
||||
|
||||
Also, see the related discussion in Section 3.4 on notification
|
||||
messages for supporting delivery of alarm and event messages.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 8]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
3.2. Configuration Requirements
|
||||
|
||||
Many features of name servers need to be configured before the server
|
||||
can be considered functional. The management solution MUST be able
|
||||
to provide name servers with configuration data. The most important
|
||||
data to be configured, for example, is the served zone data itself.
|
||||
|
||||
3.2.1. Served Zone Modification
|
||||
|
||||
The ability to add, modify and delete zones being served by name
|
||||
servers is needed. Although there are already solutions for zone
|
||||
content modification (such as Dynamic DNS (DDNS) [RFC2136] [RFC3007],
|
||||
AXFR [RFC1035], and incremental zone transfer (IXFR) [RFC1995]) that
|
||||
might be used as part of the final management solution, the
|
||||
management system SHOULD still be able to natively create a new zone
|
||||
(with enough minimal data to allow the other mechanisms to function
|
||||
as well) as well as delete a zone. This might be, for example, a
|
||||
management operation that at least allows for the creation of the
|
||||
initial SOA record for a new zone as that's the minimum amount of
|
||||
zone data needed for the other operations to function.
|
||||
|
||||
3.2.2. Trust Anchor Management
|
||||
|
||||
The solution SHOULD support the ability to add, modify and delete
|
||||
trust anchors that are used by DNS Security (DNSSEC) [RFC4033]
|
||||
[RFC4034] [RFC4035] [RFC4509] [RFC5011] [RFC5155]. These trust
|
||||
anchors might be configured using the data from the DNSKEY Resource
|
||||
Records (RRs) themselves or by using Delegation Signer (DS)
|
||||
fingerprints.
|
||||
|
||||
3.2.3. Security Expectations
|
||||
|
||||
DNSSEC Validating resolvers need to make policy decisions about the
|
||||
requests being processed. For example, they need to be configured
|
||||
with a list of zones expected to be secured by DNSSEC. The
|
||||
management solution SHOULD be able to add, modify and delete
|
||||
attributes of DNSSEC security policies.
|
||||
|
||||
3.2.4. TSIG Key Management
|
||||
|
||||
TSIG [RFC2845] allows transaction level authentication of DNS
|
||||
traffic. The management solution SHOULD be able to add, modify and
|
||||
delete TSIG keys known to the name server.
|
||||
|
||||
3.2.5. DNS Protocol Authorization Management
|
||||
|
||||
The management solution SHOULD have the ability to add, modify and
|
||||
delete authorization settings for the DNS protocols itself. Do not
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 9]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
confuse this with the ability to manage the authorization associated
|
||||
with the management protocol itself, which is discussed later in
|
||||
Section 4.4. There are a number of authorization settings that are
|
||||
used by a name server. Example authorization settings that the
|
||||
solution might need to cover are:
|
||||
|
||||
o Access to operations on zone data (e.g. DDNS)
|
||||
|
||||
o Access to certain zone data from certain sources (e.g. from
|
||||
particular network subnets)
|
||||
|
||||
o Access to specific DNS protocol services (e.g. recursive service)
|
||||
|
||||
Note: the above list is expected to be used as a collection of
|
||||
examples and is not a complete list of needed authorization
|
||||
protections.
|
||||
|
||||
3.3. Monitoring Requirements
|
||||
|
||||
Monitoring is the process of collecting aspects of the internal state
|
||||
of a name server at a given moment in time. The solution MUST be
|
||||
able to monitor the health of a name server to determine its
|
||||
operational status, load and other internal attributes. Example
|
||||
management tasks that the solution might need to cover are:
|
||||
|
||||
o Number of requests sent, responses sent, average response latency
|
||||
and other performance counters
|
||||
|
||||
o Server status (e.g. "serving data", "starting up", "shutting
|
||||
down", ...)
|
||||
|
||||
o Access control violations
|
||||
|
||||
o List of zones being served
|
||||
|
||||
o Detailed statistics about clients interacting with the name server
|
||||
(e.g. top 10 clients requesting data).
|
||||
|
||||
Note: the above list is expected to be used as a collection of
|
||||
examples and is not a complete list of needed monitoring operations.
|
||||
In particular, some monitoring statistics are expected to be
|
||||
computationally or resource expensive and are considered to be "nice
|
||||
to haves" as opposed to "necessary to have".
|
||||
|
||||
3.4. Alarm and Event Requirements
|
||||
|
||||
Events occurring at the name server that trigger alarm notifications
|
||||
can quickly inform a management station about critical issues. A
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 10]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
management solution SHOULD include support for delivery of alarm
|
||||
conditions.
|
||||
|
||||
Example alarm conditions might include:
|
||||
|
||||
o The server's status is changing. (e.g it is starting up, reloading
|
||||
configuration, restarting or shutting down)
|
||||
|
||||
o A needed resource (e.g. memory or disk space) is exhausted or
|
||||
nearing exhaustion
|
||||
|
||||
o An authorization violation was detected
|
||||
|
||||
o The server has not received any data traffic (e.g. DNS requests
|
||||
or NOTIFYs) recently (AKA the "lonely warning"). This condition
|
||||
might indicate a problem with its deployment.
|
||||
|
||||
|
||||
4. Security Requirements
|
||||
|
||||
The management solution will need to be appropriately secured against
|
||||
attacks on the management infrastructure.
|
||||
|
||||
4.1. Authentication
|
||||
|
||||
The solution MUST support mutual authentication. The management
|
||||
client needs to be assured that the management operations are being
|
||||
transferred to and from the correct name server. The managed name
|
||||
server needs to authenticate the system that is accessing the
|
||||
management infrastructure within itself.
|
||||
|
||||
4.2. Integrity Protection
|
||||
|
||||
Management operations MUST be protected from modification while in
|
||||
transit from the management client to the server.
|
||||
|
||||
4.3. Confidentiality
|
||||
|
||||
The management solution MUST support message confidentiality. The
|
||||
potential transfer of sensitive configuration is expected (such as
|
||||
TSIG keys or security policies). The solution does not, however,
|
||||
necessarily need to provide confidentiality to data that would
|
||||
normally be carried without confidentiality by the DNS system itself.
|
||||
|
||||
4.4. Authorization
|
||||
|
||||
The solution SHOULD be capable of providing a fine-grained
|
||||
authorization model for any management protocols it introduces to the
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 11]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
completed system. This authorization differs from the authorization
|
||||
previously discussed in Section 3.2.5 in that this requirement is
|
||||
concerned solely with authorization of the management system itself.
|
||||
|
||||
There are a number of authorization settings that might be used by a
|
||||
managed system to determine whether the managing entity has
|
||||
authorization to perform the given management task. Example
|
||||
authorization settings that the solution might need to cover are:
|
||||
|
||||
o Access to the configuration that specifies which zones are to be
|
||||
served
|
||||
|
||||
o Access to the management system infrastructure
|
||||
|
||||
o Access to other control operations
|
||||
|
||||
o Access to other configuration operations
|
||||
|
||||
o Access to monitoring operations
|
||||
|
||||
Note: the above list is expected to be used as a collection of
|
||||
examples and is not a complete list of needed authorization
|
||||
protections.
|
||||
|
||||
4.5. Solution Impacts on Security
|
||||
|
||||
The solution MUST minimize the security risks introduced to the
|
||||
complete name server system. It is impossible to add new
|
||||
infrastructure to a server and not impact the security in some
|
||||
fashion as the introduction of a management protocol alone will
|
||||
provide a new avenue for potential attack. Although the added
|
||||
management benefits will be worth the increased risks, the solution
|
||||
still needs to minimize this impact as much as possible.
|
||||
|
||||
|
||||
5. Other Requirements
|
||||
|
||||
5.1. Extensibility
|
||||
|
||||
The management solution is expected to change and expand over time as
|
||||
lessons are learned and new DNS features are deployed. Thus, the
|
||||
solution MUST be flexible and be able to accommodate new future
|
||||
management operations. The solution might, for example, make use of
|
||||
protocol versioning or capability description exchanges to ensure
|
||||
that management stations and name servers that weren't written to the
|
||||
same specification version can still interoperate to the best of
|
||||
their combined ability.
|
||||
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 12]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
5.1.1. Vendor Extensions
|
||||
|
||||
It MUST be possible for vendors to extend the standardized management
|
||||
model with vendor-specific extensions to support additional features
|
||||
offered by their products.
|
||||
|
||||
5.1.2. Extension Identification
|
||||
|
||||
It MUST be possible for a management station to understand which
|
||||
parts of returned data are specific to a given vendor or other
|
||||
standardized extension. The data returned needs to be appropriately
|
||||
marked through the use of name spaces or similar mechanisms to ensure
|
||||
that the base management model data can be logically separated from
|
||||
extension data without needing to understand the extension data
|
||||
itself.
|
||||
|
||||
5.1.3. Name-Space Collision Protection
|
||||
|
||||
It MUST be possible to protect against multiple extensions
|
||||
conflicting with each other. The use of name-space protection
|
||||
mechanisms for communicated management variables is common practice
|
||||
to protect against problems. Name-space identification techniques
|
||||
also frequently solve the "Extension Identification" requirement
|
||||
discussed in Section 5.1.2 as well.
|
||||
|
||||
|
||||
6. Security Considerations
|
||||
|
||||
Any management protocol that meets the criteria discussed in this
|
||||
document needs to support the criteria discussed in Section 4 in
|
||||
order to protect the management infrastructure itself. The DNS is a
|
||||
core Internet service and management traffic that protects it could
|
||||
be the target of attacks designed to subvert that service. Because
|
||||
the management infrastructure will be adding additional interfaces to
|
||||
that service, it is critical that the management infrastructure
|
||||
support adequate protections against network attacks.
|
||||
|
||||
|
||||
7. IANA Considerations
|
||||
|
||||
No action is required from IANA for this document.
|
||||
|
||||
|
||||
8. Document History
|
||||
|
||||
A requirement gathering discussion was held at the December 2007 IETF
|
||||
meeting in Vancouver, BC, Canada and a follow up meeting was held at
|
||||
the March 2008 IETF meeting in Philadelphia. This document is a
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 13]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
compilation of the results of those discussions as well as
|
||||
discussions on the DCOMA mailing list.
|
||||
|
||||
|
||||
9. Acknowledgments
|
||||
|
||||
This draft is the result of discussions within the DCOMA design team
|
||||
chaired by Jaap Akkerhuis. This team consisted of a large number of
|
||||
people all of whom provided valuable insight and input into the
|
||||
discussions surrounding name server management. The text of this
|
||||
document was written from notes taken during meetings as well as from
|
||||
contributions sent to the DCOMA mailing list. This work documents
|
||||
the consensus of the DCOMA design team.
|
||||
|
||||
In particular, the following team members contributed significantly
|
||||
to the text in the document:
|
||||
|
||||
Stephane Bortzmeyer
|
||||
|
||||
Stephen Morris
|
||||
|
||||
Phil Regnauld
|
||||
|
||||
Further editing contributions and wording suggestions were made by:
|
||||
Alfred Hoenes.
|
||||
|
||||
|
||||
10. References
|
||||
|
||||
10.1. Normative References
|
||||
|
||||
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
|
||||
STD 13, RFC 1034, November 1987.
|
||||
|
||||
[RFC1035] Mockapetris, P., "Domain names - implementation and
|
||||
specification", STD 13, RFC 1035, November 1987.
|
||||
|
||||
[RFC1995] Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995,
|
||||
August 1996.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound,
|
||||
"Dynamic Updates in the Domain Name System (DNS UPDATE)",
|
||||
RFC 2136, April 1997.
|
||||
|
||||
[RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B.
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 14]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
Wellington, "Secret Key Transaction Authentication for DNS
|
||||
(TSIG)", RFC 2845, May 2000.
|
||||
|
||||
[RFC3007] Wellington, B., "Secure Domain Name System (DNS) Dynamic
|
||||
Update", RFC 3007, November 2000.
|
||||
|
||||
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "DNS Security Introduction and Requirements",
|
||||
RFC 4033, March 2005.
|
||||
|
||||
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Resource Records for the DNS Security Extensions",
|
||||
RFC 4034, March 2005.
|
||||
|
||||
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Protocol Modifications for the DNS Security
|
||||
Extensions", RFC 4035, March 2005.
|
||||
|
||||
[RFC4509] Hardaker, W., "Use of SHA-256 in DNSSEC Delegation Signer
|
||||
(DS) Resource Records (RRs)", RFC 4509, May 2006.
|
||||
|
||||
[RFC5011] StJohns, M., "Automated Updates of DNS Security (DNSSEC)
|
||||
Trust Anchors", RFC 5011, September 2007.
|
||||
|
||||
[RFC5155] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
|
||||
Security (DNSSEC) Hashed Authenticated Denial of
|
||||
Existence", RFC 5155, March 2008.
|
||||
|
||||
10.2. Informative References
|
||||
|
||||
[RFC1611] Austein, R. and J. Saperia, "DNS Server MIB Extensions",
|
||||
RFC 1611, May 1994.
|
||||
|
||||
[RFC1612] Austein, R. and J. Saperia, "DNS Resolver MIB Extensions",
|
||||
RFC 1612, May 1994.
|
||||
|
||||
[RFC2182] Elz, R., Bush, R., Bradner, S., and M. Patton, "Selection
|
||||
and Operation of Secondary DNS Servers", BCP 16, RFC 2182,
|
||||
July 1997.
|
||||
|
||||
[RFC3197] Austein, R., "Applicability Statement for DNS MIB
|
||||
Extensions", RFC 3197, November 2001.
|
||||
|
||||
|
||||
Appendix A. Deployment Scenarios
|
||||
|
||||
This appendix documents some additional deployment scenarios that
|
||||
have been traditionally difficult to manage. They are provided as
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 15]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
guidance to protocol developers as data points of real-world name
|
||||
server management problems.
|
||||
|
||||
A.1. Non-Standard Zones
|
||||
|
||||
If an organization uses non-standard zones (for example a purely-
|
||||
local TLD), synchronizing all the name servers for these zones is
|
||||
usually a time-consuming task. It is made worse when two
|
||||
organizations with conflicting zones merge. This situation is not a
|
||||
recommended deployment scenario (and is even heavily discouraged) but
|
||||
it is, unfortunately, seen in the wild.
|
||||
|
||||
It is typically implemented using "forwarding" zones. But there is
|
||||
no way to ensure automatically that all the resolvers have the same
|
||||
set of zones to forward at any given time. New zones might be added
|
||||
to a local forwarding recursive server, for example, without
|
||||
modifying the rest of the deployed forwarding servers. It is hoped
|
||||
that a management solution which could handle the configuration of
|
||||
zone forwarding would finally allow management of servers deployed in
|
||||
this fashion.
|
||||
|
||||
A.2. Redundancy Sharing
|
||||
|
||||
For reliability reasons it is recommended that zone operators follow
|
||||
the guidelines documented in [RFC2182] which recommends that multiple
|
||||
name servers be configured for each zone and that the name servers
|
||||
are separated both physically and via connectivity routes. A common
|
||||
solution is to establish DNS-serving partnerships: "I'll host your
|
||||
zones and you'll host mine". Both entities benefit from increased
|
||||
DNS reliability via the wider service distribution. This frequently
|
||||
occurs between cooperating but otherwise unrelated entities (such as
|
||||
between two distinct companies) as well as between affiliated
|
||||
organizations (such as between branch offices within a single
|
||||
company).
|
||||
|
||||
The configuration of these relationships are currently required to be
|
||||
manually configured and maintained. Changes to the list of zones
|
||||
that are cross-hosted are manually negotiated between the cooperating
|
||||
network administrators and configured by hand. A management protocol
|
||||
with the ability to provide selective authorization, as discussed in
|
||||
Section 4.4, would solve many of the management difficulties between
|
||||
cooperating organizations.
|
||||
|
||||
A.3. DNSSEC Management
|
||||
|
||||
There are many different DNSSEC deployment strategies that may be
|
||||
used for mission-critical zones. The following list describes some
|
||||
example deployment scenarios that might warrant different management
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 16]
|
||||
|
||||
Internet-Draft Name Server Management Requirements February 2009
|
||||
|
||||
|
||||
strategies.
|
||||
|
||||
All contents and DNSSEC keying information controlled and operated
|
||||
by a single organization
|
||||
|
||||
Zone contents controlled and operated by one organization, all
|
||||
DNSSEC keying information controlled and operated by a second
|
||||
organization.
|
||||
|
||||
Zone contents controlled and operated by one organization, zone
|
||||
signing keys (ZSKs) controlled and operated by a second
|
||||
organization, and key signing keys (KSKs) controlled and operated
|
||||
by a third organization.
|
||||
|
||||
Although this list is not exhaustive in the potential ways that zone
|
||||
data can be divided up, it should be sufficient to illustrate the
|
||||
potential ways in which zone data can be controlled by multiple
|
||||
entities.
|
||||
|
||||
The end result of all of these strategies, however, will be the same:
|
||||
a live zone containing DNSSEC related resource records. Many of the
|
||||
above strategies are merely different ways of preparing a zone for
|
||||
serving. A management solution that includes support for managing
|
||||
DNSSEC zone data may wish to take into account these potential
|
||||
management scenarios.
|
||||
|
||||
|
||||
Author's Address
|
||||
|
||||
Wes Hardaker
|
||||
Sparta, Inc.
|
||||
P.O. Box 382
|
||||
Davis, CA 95617
|
||||
US
|
||||
|
||||
Phone: +1 530 792 1913
|
||||
Email: ietf@hardakers.net
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hardaker Expires August 16, 2009 [Page 17]
|
||||
|
||||
|
|
@ -1,640 +0,0 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DNSOP Working Group Paul Vixie, ISC
|
||||
INTERNET-DRAFT Akira Kato, WIDE
|
||||
<draft-ietf-dnsop-respsize-06.txt> August 2006
|
||||
|
||||
DNS Referral Response Size Issues
|
||||
|
||||
Status of this Memo
|
||||
By submitting this Internet-Draft, each author represents that any
|
||||
applicable patent or other IPR claims of which he or she is aware
|
||||
have been or will be disclosed, and any of which he or she becomes
|
||||
aware will be disclosed, in accordance with Section 6 of BCP 79.
|
||||
|
||||
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 (2006). All Rights Reserved.
|
||||
|
||||
|
||||
|
||||
|
||||
Abstract
|
||||
|
||||
With a mandated default minimum maximum message size of 512 octets,
|
||||
the DNS protocol presents some special problems for zones wishing to
|
||||
expose a moderate or high number of authority servers (NS RRs). This
|
||||
document explains the operational issues caused by, or related to
|
||||
this response size limit, and suggests ways to optimize the use of
|
||||
this limited space. Guidance is offered to DNS server implementors
|
||||
and to DNS zone operators.
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 1]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
1 - Introduction and Overview
|
||||
|
||||
1.1. The DNS standard (see [RFC1035 4.2.1]) limits message size to 512
|
||||
octets. Even though this limitation was due to the required minimum IP
|
||||
reassembly limit for IPv4, it became a hard DNS protocol limit and is
|
||||
not implicitly relaxed by changes in transport, for example to IPv6.
|
||||
|
||||
1.2. The EDNS0 protocol extension (see [RFC2671 2.3, 4.5]) permits
|
||||
larger responses by mutual agreement of the requester and responder.
|
||||
The 512 octet message size limit will remain in practical effect until
|
||||
there is widespread deployment of EDNS0 in DNS resolvers on the
|
||||
Internet.
|
||||
|
||||
1.3. Since DNS responses include a copy of the request, the space
|
||||
available for response data is somewhat less than the full 512 octets.
|
||||
Negative responses are quite small, but for positive and delegation
|
||||
responses, every octet must be carefully and sparingly allocated. This
|
||||
document specifically addresses delegation response sizes.
|
||||
|
||||
2 - Delegation Details
|
||||
|
||||
2.1. RELEVANT PROTOCOL ELEMENTS
|
||||
|
||||
2.1.1. A delegation response will include the following elements:
|
||||
|
||||
Header Section: fixed length (12 octets)
|
||||
Question Section: original query (name, class, type)
|
||||
Answer Section: empty, or a CNAME/DNAME chain
|
||||
Authority Section: NS RRset (nameserver names)
|
||||
Additional Section: A and AAAA RRsets (nameserver addresses)
|
||||
|
||||
2.1.2. If the total response size exceeds 512 octets, and if the data
|
||||
that does not fit was "required", then the TC bit will be set
|
||||
(indicating truncation). This will usually cause the requester to retry
|
||||
using TCP, depending on what information was desired and what
|
||||
information was omitted. For example, truncation in the authority
|
||||
section is of no interest to a stub resolver who only plans to consume
|
||||
the answer section. If a retry using TCP is needed, the total cost of
|
||||
the transaction is much higher. See [RFC1123 6.1.3.2] for details on
|
||||
the requirement that UDP be attempted before falling back to TCP.
|
||||
|
||||
2.1.3. RRsets are never sent partially unless TC bit set to indicate
|
||||
truncation. When TC bit is set, the final apparent RRset in the final
|
||||
non-empty section must be considered "possibly damaged" (see [RFC1035
|
||||
6.2], [RFC2181 9]).
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 2]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
2.1.4. With or without truncation, the glue present in the additional
|
||||
data section should be considered "possibly incomplete", and requesters
|
||||
should be prepared to re-query for any damaged or missing RRsets. Note
|
||||
that truncation of the additional data section might not be signalled
|
||||
via the TC bit since additional data is often optional (see discussion
|
||||
in [RFC4472 B]).
|
||||
|
||||
2.1.5. DNS label compression allows a domain name to be instantiated
|
||||
only once per DNS message, and then referenced with a two-octet
|
||||
"pointer" from other locations in that same DNS message (see [RFC1035
|
||||
4.1.4]). If all nameserver names in a message share a common parent
|
||||
(for example, all ending in ".ROOT-SERVERS.NET"), then more space will
|
||||
be available for incompressable data (such as nameserver addresses).
|
||||
|
||||
2.1.6. The query name can be as long as 255 octets of network data. In
|
||||
this worst case scenario, the question section will be 259 octets in
|
||||
size, which would leave only 240 octets for the authority and additional
|
||||
sections (after deducting 12 octets for the fixed length header.)
|
||||
|
||||
2.2. ADVICE TO ZONE OWNERS
|
||||
|
||||
2.2.1. Average and maximum question section sizes can be predicted by
|
||||
the zone owner, since they will know what names actually exist, and can
|
||||
measure which ones are queried for most often. Note that if the zone
|
||||
contains any wildcards, it is possible for maximum length queries to
|
||||
require positive responses, but that it is reasonable to expect
|
||||
truncation and TCP retry in that case. For cost and performance
|
||||
reasons, the majority of requests should be satisfied without truncation
|
||||
or TCP retry.
|
||||
|
||||
2.2.2. Some queries to non-existing names can be large, but this is not
|
||||
a problem because negative responses need not contain any answer,
|
||||
authority or additional records. See [RFC2308 2.1] for more information
|
||||
about the format of negative responses.
|
||||
|
||||
2.2.3. The minimum useful number of name servers is two, for redundancy
|
||||
(see [RFC1034 4.1]). A zone's name servers should be reachable by all
|
||||
IP transport protocols (e.g., IPv4 and IPv6) in common use.
|
||||
|
||||
2.2.4. The best case is no truncation at all. This is because many
|
||||
requesters will retry using TCP immediately, or will automatically re-
|
||||
query for RRsets that are possibly truncated, without considering
|
||||
whether the omitted data was actually necessary.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 3]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
2.3. ADVICE TO SERVER IMPLEMENTORS
|
||||
|
||||
2.3.1. In case of multi-homed name servers, it is advantageous to
|
||||
include an address record from each of several name servers before
|
||||
including several address records for any one name server. If address
|
||||
records for more than one transport (for example, A and AAAA) are
|
||||
available, then it is advantageous to include records of both types
|
||||
early on, before the message is full.
|
||||
|
||||
2.3.2. Each added NS RR for a zone will add 12 fixed octets (name, type,
|
||||
class, ttl, and rdlen) plus 2 to 255 variable octets (for the NSDNAME).
|
||||
Each A RR will require 16 octets, and each AAAA RR will require 28
|
||||
octets.
|
||||
|
||||
2.3.3. While DNS distinguishes between necessary and optional resource
|
||||
records, this distinction is according to protocol elements necessary to
|
||||
signify facts, and takes no official notice of protocol content
|
||||
necessary to ensure correct operation. For example, a nameserver name
|
||||
that is in or below the zone cut being described by a delegation is
|
||||
"necessary content," since there is no way to reach that zone unless the
|
||||
parent zone's delegation includes "glue records" describing that name
|
||||
server's addresses.
|
||||
|
||||
2.3.4. It is also necessary to distinguish between "explicit truncation"
|
||||
where a message could not contain enough records to convey its intended
|
||||
meaning, and so the TC bit has been set, and "silent truncation", where
|
||||
the message was not large enough to contain some records which were "not
|
||||
required", and so the TC bit was not set.
|
||||
|
||||
2.3.5. A delegation response should prioritize glue records as follows.
|
||||
|
||||
first
|
||||
All glue RRsets for one name server whose name is in or below the
|
||||
zone being delegated, or which has multiple address RRsets (currently
|
||||
A and AAAA), or preferably both;
|
||||
|
||||
second
|
||||
Alternate between adding all glue RRsets for any name servers whose
|
||||
names are in or below the zone being delegated, and all glue RRsets
|
||||
for any name servers who have multiple address RRsets (currently A
|
||||
and AAAA);
|
||||
|
||||
thence
|
||||
All other glue RRsets, in any order.
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 4]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
Whenever there are multiple candidates for a position in this priority
|
||||
scheme, one should be chosen on a round-robin or fully random basis.
|
||||
|
||||
The goal of this priority scheme is to offer "necessary" glue first,
|
||||
avoiding silent truncation for this glue if possible.
|
||||
|
||||
2.3.6. If any "necessary content" is silently truncated, then it is
|
||||
advisable that the TC bit be set in order to force a TCP retry, rather
|
||||
than have the zone be unreachable. Note that a parent server's proper
|
||||
response to a query for in-child glue or below-child glue is a referral
|
||||
rather than an answer, and that this referral MUST be able to contain
|
||||
the in-child or below-child glue, and that in outlying cases, only EDNS
|
||||
or TCP will be large enough to contain that data.
|
||||
|
||||
3 - Analysis
|
||||
|
||||
3.1. An instrumented protocol trace of a best case delegation response
|
||||
follows. Note that 13 servers are named, and 13 addresses are given.
|
||||
This query was artificially designed to exactly reach the 512 octet
|
||||
limit.
|
||||
|
||||
;; flags: qr rd; QUERY: 1, ANS: 0, AUTH: 13, ADDIT: 13
|
||||
;; QUERY SECTION:
|
||||
;; [23456789.123456789.123456789.\
|
||||
123456789.123456789.123456789.com A IN] ;; @80
|
||||
|
||||
;; AUTHORITY SECTION:
|
||||
com. 86400 NS E.GTLD-SERVERS.NET. ;; @112
|
||||
com. 86400 NS F.GTLD-SERVERS.NET. ;; @128
|
||||
com. 86400 NS G.GTLD-SERVERS.NET. ;; @144
|
||||
com. 86400 NS H.GTLD-SERVERS.NET. ;; @160
|
||||
com. 86400 NS I.GTLD-SERVERS.NET. ;; @176
|
||||
com. 86400 NS J.GTLD-SERVERS.NET. ;; @192
|
||||
com. 86400 NS K.GTLD-SERVERS.NET. ;; @208
|
||||
com. 86400 NS L.GTLD-SERVERS.NET. ;; @224
|
||||
com. 86400 NS M.GTLD-SERVERS.NET. ;; @240
|
||||
com. 86400 NS A.GTLD-SERVERS.NET. ;; @256
|
||||
com. 86400 NS B.GTLD-SERVERS.NET. ;; @272
|
||||
com. 86400 NS C.GTLD-SERVERS.NET. ;; @288
|
||||
com. 86400 NS D.GTLD-SERVERS.NET. ;; @304
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 5]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
;; ADDITIONAL SECTION:
|
||||
A.GTLD-SERVERS.NET. 86400 A 192.5.6.30 ;; @320
|
||||
B.GTLD-SERVERS.NET. 86400 A 192.33.14.30 ;; @336
|
||||
C.GTLD-SERVERS.NET. 86400 A 192.26.92.30 ;; @352
|
||||
D.GTLD-SERVERS.NET. 86400 A 192.31.80.30 ;; @368
|
||||
E.GTLD-SERVERS.NET. 86400 A 192.12.94.30 ;; @384
|
||||
F.GTLD-SERVERS.NET. 86400 A 192.35.51.30 ;; @400
|
||||
G.GTLD-SERVERS.NET. 86400 A 192.42.93.30 ;; @416
|
||||
H.GTLD-SERVERS.NET. 86400 A 192.54.112.30 ;; @432
|
||||
I.GTLD-SERVERS.NET. 86400 A 192.43.172.30 ;; @448
|
||||
J.GTLD-SERVERS.NET. 86400 A 192.48.79.30 ;; @464
|
||||
K.GTLD-SERVERS.NET. 86400 A 192.52.178.30 ;; @480
|
||||
L.GTLD-SERVERS.NET. 86400 A 192.41.162.30 ;; @496
|
||||
M.GTLD-SERVERS.NET. 86400 A 192.55.83.30 ;; @512
|
||||
|
||||
;; MSG SIZE sent: 80 rcvd: 512
|
||||
|
||||
3.2. For longer query names, the number of address records supplied will
|
||||
be lower. Furthermore, it is only by using a common parent name (which
|
||||
is GTLD-SERVERS.NET in this example) that all 13 addresses are able to
|
||||
fit, due to the use of DNS compression pointers in the last 12
|
||||
occurances of the parent domain name. The following output from a
|
||||
response simulator demonstrates these properties.
|
||||
|
||||
% perl respsize.pl a.dns.br b.dns.br c.dns.br d.dns.br
|
||||
a.dns.br requires 10 bytes
|
||||
b.dns.br requires 4 bytes
|
||||
c.dns.br requires 4 bytes
|
||||
d.dns.br requires 4 bytes
|
||||
# of NS: 4
|
||||
For maximum size query (255 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 3 (yellow)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 3 (yellow)
|
||||
For average size query (64 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 4 (green)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 4 (green)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 6]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
% perl respsize.pl ns-ext.isc.org ns.psg.com ns.ripe.net ns.eu.int
|
||||
ns-ext.isc.org requires 16 bytes
|
||||
ns.psg.com requires 12 bytes
|
||||
ns.ripe.net requires 13 bytes
|
||||
ns.eu.int requires 11 bytes
|
||||
# of NS: 4
|
||||
For maximum size query (255 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 3 (yellow)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 2 (yellow)
|
||||
For average size query (64 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 4 (green)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 4 (green)
|
||||
|
||||
(Note: The response simulator program is shown in Section 5.)
|
||||
|
||||
Here we use the term "green" if all address records could fit, or
|
||||
"yellow" if two or more could fit, or "orange" if only one could fit, or
|
||||
"red" if no address record could fit. It's clear that without a common
|
||||
parent for nameserver names, much space would be lost. For these
|
||||
examples we use an average/common name size of 15 octets, befitting our
|
||||
assumption of GTLD-SERVERS.NET as our common parent name.
|
||||
|
||||
We're assuming a medium query name size of 64 since that is the typical
|
||||
size seen in trace data at the time of this writing. If
|
||||
Internationalized Domain Name (IDN) or any other technology which
|
||||
results in larger query names be deployed significantly in advance of
|
||||
EDNS, then new measurements and new estimates will have to be made.
|
||||
|
||||
4 - Conclusions
|
||||
|
||||
4.1. The current practice of giving all nameserver names a common parent
|
||||
(such as GTLD-SERVERS.NET or ROOT-SERVERS.NET) saves space in DNS
|
||||
responses and allows for more nameservers to be enumerated than would
|
||||
otherwise be possible, since the common parent domain name only appears
|
||||
once in a DNS message and is referred to via "compression pointers"
|
||||
thereafter.
|
||||
|
||||
4.2. If all nameserver names for a zone share a common parent, then it
|
||||
is operationally advisable to make all servers for the zone thus served
|
||||
also be authoritative for the zone of that common parent. For example,
|
||||
the root name servers (?.ROOT-SERVERS.NET) can answer authoritatively
|
||||
for the ROOT-SERVERS.NET. This is to ensure that the zone's servers
|
||||
always have the zone's nameservers' glue available when delegating, and
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 7]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
will be able to respond with answers rather than referrals if a
|
||||
requester who wants that glue comes back asking for it. In this case
|
||||
the name server will likely be a "stealth server" -- authoritative but
|
||||
unadvertised in the glue zone's NS RRset. See [RFC1996 2] for more
|
||||
information about stealth servers.
|
||||
|
||||
4.3. Thirteen (13) is the effective maximum number of nameserver names
|
||||
usable traditional (non-extended) DNS, assuming a common parent domain
|
||||
name, and given that implicit referral response truncation is
|
||||
undesirable in the average case.
|
||||
|
||||
4.4. Multi-homing of name servers within a protocol family is
|
||||
inadvisable since the necessary glue RRsets (A or AAAA) are atomically
|
||||
indivisible, and will be larger than a single resource record. Larger
|
||||
RRsets are more likely to lead to or encounter truncation.
|
||||
|
||||
4.5. Multi-homing of name servers across protocol families is less
|
||||
likely to lead to or encounter truncation, partly because multiprotocol
|
||||
clients are more likely to speak EDNS which can use a larger response
|
||||
size limit, and partly because the resource records (A and AAAA) are in
|
||||
different RRsets and are therefore divisible from each other.
|
||||
|
||||
4.6. Name server names which are at or below the zone they serve are
|
||||
more sensitive to referral response truncation, and glue records for
|
||||
them should be considered "less optional" than other glue records, in
|
||||
the assembly of referral responses.
|
||||
|
||||
4.7. If a zone is served by thirteen (13) name servers having a common
|
||||
parent name (such as ?.ROOT-SERVERS.NET) and each such name server has a
|
||||
single address record in some protocol family (e.g., an A RR), then all
|
||||
thirteen name servers or any subset thereof could multi-home in a second
|
||||
protocol family by adding a second address record (e.g., an AAAA RR)
|
||||
without reducing the reachability of the zone thus served.
|
||||
|
||||
5 - Source Code
|
||||
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# SYNOPSIS
|
||||
# repsize.pl [ -z zone ] fqdn_ns1 fqdn_ns2 ...
|
||||
# if all queries are assumed to have a same zone suffix,
|
||||
# such as "jp" in JP TLD servers, specify it in -z option
|
||||
#
|
||||
use strict;
|
||||
use Getopt::Std;
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 8]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
my ($sz_msg) = (512);
|
||||
my ($sz_header, $sz_ptr, $sz_rr_a, $sz_rr_aaaa) = (12, 2, 16, 28);
|
||||
my ($sz_type, $sz_class, $sz_ttl, $sz_rdlen) = (2, 2, 4, 2);
|
||||
my (%namedb, $name, $nssect, %opts, $optz);
|
||||
my $n_ns = 0;
|
||||
|
||||
getopt('z', %opts);
|
||||
if (defined($opts{'z'})) {
|
||||
server_name_len($opts{'z'}); # just register it
|
||||
}
|
||||
|
||||
foreach $name (@ARGV) {
|
||||
my $len;
|
||||
$n_ns++;
|
||||
$len = server_name_len($name);
|
||||
print "$name requires $len bytes\n";
|
||||
$nssect += $sz_ptr + $sz_type + $sz_class + $sz_ttl
|
||||
+ $sz_rdlen + $len;
|
||||
}
|
||||
print "# of NS: $n_ns\n";
|
||||
arsect(255, $nssect, $n_ns, "maximum");
|
||||
arsect(64, $nssect, $n_ns, "average");
|
||||
|
||||
sub server_name_len {
|
||||
my ($name) = @_;
|
||||
my (@labels, $len, $n, $suffix);
|
||||
|
||||
$name =~ tr/A-Z/a-z/;
|
||||
@labels = split(/\./, $name);
|
||||
$len = length(join('.', @labels)) + 2;
|
||||
for ($n = 0; $#labels >= 0; $n++, shift @labels) {
|
||||
$suffix = join('.', @labels);
|
||||
return length($name) - length($suffix) + $sz_ptr
|
||||
if (defined($namedb{$suffix}));
|
||||
$namedb{$suffix} = 1;
|
||||
}
|
||||
return $len;
|
||||
}
|
||||
|
||||
sub arsect {
|
||||
my ($sz_query, $nssect, $n_ns, $cond) = @_;
|
||||
my ($space, $n_a, $n_a_aaaa, $n_p_aaaa, $ansect);
|
||||
$ansect = $sz_query + 1 + $sz_type + $sz_class;
|
||||
$space = $sz_msg - $sz_header - $ansect - $nssect;
|
||||
$n_a = atmost(int($space / $sz_rr_a), $n_ns);
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 9]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
$n_a_aaaa = atmost(int($space
|
||||
/ ($sz_rr_a + $sz_rr_aaaa)), $n_ns);
|
||||
$n_p_aaaa = atmost(int(($space - $sz_rr_a * $n_ns)
|
||||
/ $sz_rr_aaaa), $n_ns);
|
||||
printf "For %s size query (%d byte):\n", $cond, $sz_query;
|
||||
printf " only A is considered: ";
|
||||
printf "# of A is %d (%s)\n", $n_a, &judge($n_a, $n_ns);
|
||||
printf " A and AAAA are considered: ";
|
||||
printf "# of A+AAAA is %d (%s)\n",
|
||||
$n_a_aaaa, &judge($n_a_aaaa, $n_ns);
|
||||
printf " preferred-glue A is assumed: ";
|
||||
printf "# of A is %d, # of AAAA is %d (%s)\n",
|
||||
$n_a, $n_p_aaaa, &judge($n_p_aaaa, $n_ns);
|
||||
}
|
||||
|
||||
sub judge {
|
||||
my ($n, $n_ns) = @_;
|
||||
return "green" if ($n >= $n_ns);
|
||||
return "yellow" if ($n >= 2);
|
||||
return "orange" if ($n == 1);
|
||||
return "red";
|
||||
}
|
||||
|
||||
sub atmost {
|
||||
my ($a, $b) = @_;
|
||||
return 0 if ($a < 0);
|
||||
return $b if ($a > $b);
|
||||
return $a;
|
||||
}
|
||||
|
||||
6 - Security Considerations
|
||||
|
||||
The recommendations contained in this document have no known security
|
||||
implications.
|
||||
|
||||
7 - IANA Considerations
|
||||
|
||||
This document does not call for changes or additions to any IANA
|
||||
registry.
|
||||
|
||||
8 - Acknowledgement
|
||||
|
||||
The authors thank Peter Koch, Rob Austein, Joe Abley, and Mark Andrews
|
||||
for their valuable comments and suggestions.
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 10]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
This work was supported by the US National Science Foundation (research
|
||||
grant SCI-0427144) and DNS-OARC.
|
||||
|
||||
9 - References
|
||||
|
||||
[RFC1034] Mockapetris, P.V., "Domain names - Concepts and Facilities",
|
||||
RFC1034, November 1987.
|
||||
|
||||
[RFC1035] Mockapetris, P.V., "Domain names - Implementation and
|
||||
Specification", RFC1035, November 1987.
|
||||
|
||||
[RFC1123] Braden, R., Ed., "Requirements for Internet Hosts -
|
||||
Application and Support", RFC1123, October 1989.
|
||||
|
||||
[RFC1996] Vixie, P., "A Mechanism for Prompt Notification of Zone
|
||||
Changes (DNS NOTIFY)", RFC1996, August 1996.
|
||||
|
||||
[RFC2181] Elz, R., Bush, R., "Clarifications to the DNS Specification",
|
||||
RFC2181, July 1997.
|
||||
|
||||
[RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS NCACHE)",
|
||||
RFC2308, March 1998.
|
||||
|
||||
[RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC2671,
|
||||
August 1999.
|
||||
|
||||
[RFC4472] Durand, A., Ihren, J., Savola, P., "Operational Consideration
|
||||
and Issues with IPV6 DNS", April 2006.
|
||||
|
||||
10 - Authors' Addresses
|
||||
|
||||
Paul Vixie
|
||||
Internet Systems Consortium, Inc.
|
||||
950 Charter Street
|
||||
Redwood City, CA 94063
|
||||
+1 650 423 1301
|
||||
vixie@isc.org
|
||||
|
||||
Akira Kato
|
||||
University of Tokyo, Information Technology Center
|
||||
2-11-16 Yayoi Bunkyo
|
||||
Tokyo 113-8658, JAPAN
|
||||
+81 3 5841 2750
|
||||
kato@wide.ad.jp
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 11]
|
||||
|
||||
INTERNET-DRAFT August 2006 RESPSIZE
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (2006).
|
||||
|
||||
This document is subject to the rights, licenses and restrictions
|
||||
contained in BCP 78, and except as set forth therein, the authors retain
|
||||
all their rights.
|
||||
|
||||
This document and the information contained herein are provided on an
|
||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR
|
||||
IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
|
||||
ENGINEERING TASK FORCE DISCLAIM 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.
|
||||
|
||||
Intellectual Property
|
||||
|
||||
The IETF takes no position regarding the validity or scope of any
|
||||
Intellectual Property Rights 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; nor does it represent that it has made any
|
||||
independent effort to identify any such rights. Information on the
|
||||
procedures with respect to rights in RFC documents can be found in BCP
|
||||
78 and BCP 79.
|
||||
|
||||
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this specification can be
|
||||
obtained from the IETF on-line IPR repository at
|
||||
http://www.ietf.org/ipr.
|
||||
|
||||
The IETF invites any interested party to bring to its attention any
|
||||
copyrights, patents or patent applications, or other proprietary rights
|
||||
that may cover technology that may be required to implement this
|
||||
standard. Please address the information to the IETF at
|
||||
ietf-ipr@ietf.org.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC Editor function is provided by the IETF
|
||||
Administrative Support Activity (IASA).
|
||||
|
||||
|
||||
|
||||
|
||||
Expires January 2007 [Page 12]
|
||||
|
||||
|
||||
784
doc/draft/draft-ietf-dnsop-respsize-14.txt
Normal file
784
doc/draft/draft-ietf-dnsop-respsize-14.txt
Normal file
|
|
@ -0,0 +1,784 @@
|
|||
|
||||
|
||||
|
||||
Internet Engineering Task Force P. Vixie
|
||||
Internet-Draft Internet Systems Consortium
|
||||
Intended status: Informational A. Kato
|
||||
Expires: November 11, 2012 Keio University/WIDE Project
|
||||
May 10, 2012
|
||||
|
||||
|
||||
DNS Referral Response Size Issues
|
||||
draft-ietf-dnsop-respsize-14
|
||||
|
||||
Abstract
|
||||
|
||||
With a mandated default minimum maximum UDP message size of 512
|
||||
octets, the DNS protocol presents some special problems for zones
|
||||
wishing to expose a moderate or high number of authority servers (NS
|
||||
RRs). This document explains the operational issues caused by, or
|
||||
related to this response size limit, and suggests ways to optimize
|
||||
the use of this limited space. Guidance is offered to DNS server
|
||||
implementors and to DNS zone operators.
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This Internet-Draft is submitted in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF). Note that other groups may also distribute
|
||||
working documents as Internet-Drafts. The list of current Internet-
|
||||
Drafts is at http://datatracker.ietf.org/drafts/current/.
|
||||
|
||||
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."
|
||||
|
||||
This Internet-Draft will expire on November 11, 2012.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2012 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 1]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.
|
||||
|
||||
This document may contain material from IETF Documents or IETF
|
||||
Contributions published or made publicly available before November
|
||||
10, 2008. The person(s) controlling the copyright in some of this
|
||||
material may not have granted the IETF Trust the right to allow
|
||||
modifications of such material outside the IETF Standards Process.
|
||||
Without obtaining an adequate license from the person(s) controlling
|
||||
the copyright in such materials, this document may not be modified
|
||||
outside the IETF Standards Process, and derivative works of it may
|
||||
not be created outside the IETF Standards Process, except to format
|
||||
it for publication as an RFC or to translate it into languages other
|
||||
than English.
|
||||
|
||||
|
||||
1. Introduction and Overview
|
||||
|
||||
The original DNS standard limited the UDP message size to 512 octets
|
||||
(see Section 4.2.1 of [RFC1035]). Even though this limitation was
|
||||
due to the required minimum IP reassembly limit for IPv4, it became a
|
||||
hard DNS protocol limit and is not implicitly relaxed by changes in a
|
||||
network layer protocol, for example to IPv6.
|
||||
|
||||
The EDNS (Extension Mechanisms for DNS) protocol extension starting
|
||||
with version 0 permits larger responses by mutual agreement of the
|
||||
requester and responder (see Section 4.3 and Section 6.2 of
|
||||
[RFC2671bis]), and it is recommended to support EDNS. The 512 octets
|
||||
UDP message size limit will remain in practical effect until
|
||||
virtually all DNS servers and resolvers support EDNS.
|
||||
|
||||
Since DNS responses include a copy of the request, the space
|
||||
available for response data is somewhat less than the full 512
|
||||
octets. Negative responses are quite small, but for positive and
|
||||
referral responses, every octet must be carefully and sparingly
|
||||
allocated. While the response size of positive responses is also a
|
||||
concern in [RFC3226], this document specifically addresses referral
|
||||
response size.
|
||||
|
||||
While more than twelve years passed since the publication of the
|
||||
original EDNS0 document [RFC2671], approximately 65% of the clients
|
||||
support it as observed at a root name server and this fraction has
|
||||
not changed in recent few years. The long tail of EDNS deployment
|
||||
may eventually be measured in decades.
|
||||
|
||||
Even if EDNS deployment reached 100% of all DNS initiators and
|
||||
responders there will still be cases when path MTU limitations or IP
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 2]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
fragmentation/reassembly problems in firewalls and other middleboxes
|
||||
will cause EDNS failures which leads to non-extended DNS retries. A
|
||||
smaller referral response will always be better than a larger one if
|
||||
the same end result can be achieved either way. See [RFC5625],
|
||||
[SSAC035], and Section 6.2.6 of [RFC2671bis] for details.
|
||||
|
||||
|
||||
2. Delegation Details
|
||||
|
||||
2.1. Relevant Protocol Elements
|
||||
|
||||
A positive delegation response will include the following elements:
|
||||
|
||||
Header Section: fixed length (12 octets)
|
||||
Question Section: original query (name, class, type)
|
||||
Answer Section: empty, or a CNAME/DNAME chain
|
||||
Authority Section: NS RRset (nameserver names)
|
||||
Additional Section: A and AAAA RRsets (nameserver addresses)
|
||||
Note: CNAME defines a canonical name ([RFC1034]) while DNAME maps an
|
||||
entire subtree to another domain ([RFC2672]).
|
||||
|
||||
If the total size of the UDP response exceeds 512 octets or the size
|
||||
advertised in EDNS, and if the data that does not fit was "required",
|
||||
then the TC bit will be set (indicating truncation). This will
|
||||
usually cause the requester to retry using TCP, depending on what
|
||||
information was desired and what information was omitted. For
|
||||
example, truncation in the authority section is of no interest to a
|
||||
stub resolver who only plans to consume the answer section. If a
|
||||
retry using TCP is needed, the total cost of the transaction is much
|
||||
higher. See Section 6.1.3.2 of [RFC1123] for details on the
|
||||
requirement that UDP be attempted before falling back to TCP.
|
||||
|
||||
RRsets (Resource Record Set, see [RFC2136]) are never sent partially
|
||||
unless the TC bit is set to indicate truncation. When the TC bit is
|
||||
set, the final apparent RRset in the final non-empty section must be
|
||||
considered "possibly damaged" (see Section 6.2 of [RFC1035] and
|
||||
Section 9 of [RFC2181]).
|
||||
|
||||
With or without truncation, the glue present in the additional data
|
||||
section should be considered "possibly incomplete", and requesters
|
||||
should be prepared to re-query for any damaged or missing RRsets.
|
||||
Note that truncation of the additional data section might not be
|
||||
signaled via the TC bit since additional data is often optional (see
|
||||
discussion in Appendix B of [RFC4472]).
|
||||
|
||||
DNS label compression allows the component labels of a domain name to
|
||||
be instantiated exactly once per DNS message, and then referenced
|
||||
with a two-octet "pointer" from other locations in that same DNS
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 3]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
message (see Section 4.1.4 of [RFC1035]). If all nameserver names in
|
||||
a message share a common parent (for example, all of them are in
|
||||
"ROOT-SERVERS.NET." zone), then more space will be available for
|
||||
incompressible data (such as nameserver addresses).
|
||||
|
||||
The query name can be as long as 255 octets of network data. In this
|
||||
worst case scenario, the question section will be 259 octets in size,
|
||||
which would leave only 240 octets for the authority and additional
|
||||
sections (after deducting 12 octets for the fixed length header) in a
|
||||
referral.
|
||||
|
||||
2.2. Advice to Zone Owners
|
||||
|
||||
Average and maximum question section sizes can be predicted by the
|
||||
zone owner, since they will know what names actually exist and can
|
||||
measure which ones are queried for most often. Note that if the zone
|
||||
contains any wildcards, it is possible for maximum length queries to
|
||||
require positive responses, but that it is reasonable to expect
|
||||
truncation and TCP retry in that case. For cost and performance
|
||||
reasons, the majority of requests should be satisfied without
|
||||
truncation or TCP retry.
|
||||
|
||||
Some queries to non-existing names can be large, but this is not a
|
||||
problem because negative responses need not contain any answer,
|
||||
authority or additional records. See Section 2.1 of [RFC2308] for
|
||||
more information about the format of negative responses.
|
||||
|
||||
The minimum useful number of name servers is two, for redundancy (see
|
||||
Section 4.1 of [RFC1034]). A zone's name servers should be reachable
|
||||
by all IP protocols versions (e.g., IPv4 and IPv6) in common use. As
|
||||
long as the servers are well managed, the server serving IPv6 might
|
||||
be different from the server serving IPv4 sharing the same server
|
||||
name.
|
||||
|
||||
The best case is no truncation at all. This is because many
|
||||
requesters will retry using TCP immediately, or will automatically
|
||||
requery for RRsets that are possibly truncated, without considering
|
||||
whether the omitted data was actually necessary.
|
||||
|
||||
Anycasting [RFC3258] is a useful tool for performance and reliability
|
||||
without increasing the size of referral responses.
|
||||
|
||||
While it is irrelevant to the response size issue, all zones have to
|
||||
be served via IPv4 as well to avoid name space fragmentation
|
||||
[RFC3901].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 4]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
2.3. Advice to Server Implementors
|
||||
|
||||
Each NS RR for a zone will add 12 fixed octets (name, type, class,
|
||||
ttl, and rdlen) plus 2 to 255 variable octets (for the NSDNAME).
|
||||
Each A RR will require 16 octets, and each AAAA RR will require 28
|
||||
octets.
|
||||
|
||||
While DNS distinguishes between necessary and optional resource
|
||||
records, this distinction is according to protocol elements necessary
|
||||
to signify facts, and takes no official notice of protocol content
|
||||
necessary to ensure correct operation. For example, a nameserver
|
||||
name that is in or below the zone cut being described by a delegation
|
||||
is "necessary content", since there is no way to reach that zone
|
||||
unless the parent zone's delegation includes "glue records"
|
||||
describing that name server's addresses.
|
||||
|
||||
Recall that the TC bit is only set when a required RRset can not be
|
||||
included in its entirety (see Section 9 of [RFC2181]). Even when
|
||||
some of the RRsets to be included in the additional section don't fit
|
||||
in the response size, the TC bit isn't set. These RRsets may be
|
||||
important for a referral. Some DNS implementations try to resolve
|
||||
these missing glue records separately which will introduce extra
|
||||
queries and extra time to resolve a given name.
|
||||
|
||||
A delegation response should prioritize glue records as follows.
|
||||
|
||||
first:
|
||||
All glue RRsets for one name server whose name is in or below the
|
||||
zone being delegated, or which has multiple address RRsets
|
||||
(currently A and AAAA), or preferably both;
|
||||
second:
|
||||
Alternate between adding all glue RRsets for any name servers
|
||||
whose names are in or below the zone being delegated, and all
|
||||
glue RRsets for any name servers who have multiple address RRsets
|
||||
(currently A and AAAA);
|
||||
thence:
|
||||
All other glue RRsets, in any order.
|
||||
|
||||
Whenever there are multiple candidates for a position in this
|
||||
priority scheme, one should be chosen on a round-robin or fully
|
||||
random basis. The goal of this priority scheme is to offer
|
||||
"necessary" glue first to fill into the response if possible.
|
||||
|
||||
If any "necessary" content cannot be fit in the response, then it is
|
||||
advisable that the TC bit be set in order to force a TCP retry,
|
||||
rather than have the zone be unreachable. Note that a parent
|
||||
server's proper response to a query for in-child glue or below-child
|
||||
glue is a referral rather than an answer, and that this referral must
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 5]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
be able to contain the in-child or below-child glue, and that in
|
||||
outlying cases, only EDNS or TCP will be large enough to contain that
|
||||
data.
|
||||
|
||||
The glue record order should be independent of the version of IP used
|
||||
in the query because the DNS server might just see a query from an
|
||||
intermediate server rather than the query from the original client.
|
||||
|
||||
|
||||
3. Analysis
|
||||
|
||||
An instrumented protocol trace of a best case delegation response is
|
||||
shown in Figure 1. Note that 13 servers are named, and 13 addresses
|
||||
are given. This query was artificially designed to exactly reach the
|
||||
512 octets limit.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 6]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
;; flags: qr rd; QUERY: 1, ANS: 0, AUTH: 13, ADDIT: 13
|
||||
;; QUERY SECTION:
|
||||
;; [23456789.123456789.123456789.\
|
||||
123456789.123456789.123456789.com A IN] ;; @80
|
||||
|
||||
;; AUTHORITY SECTION:
|
||||
com. 172800 NS E.GTLD-SERVERS.NET. ;; @112
|
||||
com. 172800 NS F.GTLD-SERVERS.NET. ;; @128
|
||||
com. 172800 NS G.GTLD-SERVERS.NET. ;; @144
|
||||
com. 172800 NS H.GTLD-SERVERS.NET. ;; @160
|
||||
com. 172800 NS I.GTLD-SERVERS.NET. ;; @176
|
||||
com. 172800 NS J.GTLD-SERVERS.NET. ;; @192
|
||||
com. 172800 NS K.GTLD-SERVERS.NET. ;; @208
|
||||
com. 172800 NS L.GTLD-SERVERS.NET. ;; @224
|
||||
com. 172800 NS M.GTLD-SERVERS.NET. ;; @240
|
||||
com. 172800 NS A.GTLD-SERVERS.NET. ;; @256
|
||||
com. 172800 NS B.GTLD-SERVERS.NET. ;; @272
|
||||
com. 172800 NS C.GTLD-SERVERS.NET. ;; @288
|
||||
com. 172800 NS D.GTLD-SERVERS.NET. ;; @304
|
||||
|
||||
|
||||
;; ADDITIONAL SECTION:
|
||||
A.GTLD-SERVERS.NET. 172800 A 192.5.6.30 ;; @320
|
||||
B.GTLD-SERVERS.NET. 172800 A 192.33.14.30 ;; @336
|
||||
C.GTLD-SERVERS.NET. 172800 A 192.26.92.30 ;; @352
|
||||
D.GTLD-SERVERS.NET. 172800 A 192.31.80.30 ;; @368
|
||||
E.GTLD-SERVERS.NET. 172800 A 192.12.94.30 ;; @384
|
||||
F.GTLD-SERVERS.NET. 172800 A 192.35.51.30 ;; @400
|
||||
G.GTLD-SERVERS.NET. 172800 A 192.42.93.30 ;; @416
|
||||
H.GTLD-SERVERS.NET. 172800 A 192.54.112.30 ;; @432
|
||||
I.GTLD-SERVERS.NET. 172800 A 192.43.172.30 ;; @448
|
||||
J.GTLD-SERVERS.NET. 172800 A 192.48.79.30 ;; @464
|
||||
K.GTLD-SERVERS.NET. 172800 A 192.52.178.30 ;; @480
|
||||
L.GTLD-SERVERS.NET. 172800 A 192.41.162.30 ;; @496
|
||||
M.GTLD-SERVERS.NET. 172800 A 192.55.83.30 ;; @512
|
||||
|
||||
;; MSG SIZE sent: 80 rcvd: 512
|
||||
|
||||
|
||||
Figure 1
|
||||
|
||||
For longer query names, the number of address records supplied will
|
||||
be lower. Furthermore, it is only by using a common parent name
|
||||
(which is "GTLD-SERVERS.NET." in this example) that all 13 addresses
|
||||
are able to fit, due to the use of DNS compression pointers in the
|
||||
last 12 occurrences of the parent domain name. The outputs from the
|
||||
response simulator in Appendix A (written in perl [PERL]) shown in
|
||||
Figure 2 and Figure 3 demonstrate these properties.
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 7]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
% perl respsize.pl a.dns.br b.dns.br c.dns.br d.dns.br
|
||||
a.dns.br requires 10 bytes
|
||||
b.dns.br requires 4 bytes
|
||||
c.dns.br requires 4 bytes
|
||||
d.dns.br requires 4 bytes
|
||||
# of NS: 4
|
||||
For maximum size query (255 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 3 (yellow)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 3 (yellow)
|
||||
For average size query (64 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 4 (green)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 4 (green)
|
||||
|
||||
|
||||
Figure 2
|
||||
|
||||
|
||||
% perl respsize.pl ns-ext.isc.org ns.psg.com ns.ripe.net ns.eu.int
|
||||
ns-ext.isc.org requires 16 bytes
|
||||
ns.psg.com requires 12 bytes
|
||||
ns.ripe.net requires 13 bytes
|
||||
ns.eu.int requires 11 bytes
|
||||
# of NS: 4
|
||||
For maximum size query (255 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 3 (yellow)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 2 (yellow)
|
||||
For average size query (64 byte):
|
||||
only A is considered: # of A is 4 (green)
|
||||
A and AAAA are considered: # of A+AAAA is 4 (green)
|
||||
preferred-glue A is assumed: # of A is 4, # of AAAA is 4 (green)
|
||||
|
||||
Figure 3
|
||||
|
||||
Here we use the term "green" if all address records could fit, or
|
||||
"yellow" if two or more could fit, or "orange" if only one could fit,
|
||||
or "red" if no address record could fit. It's clear that without a
|
||||
common parent for nameserver names, much space would be lost. For
|
||||
these examples we use an average/common name size of 15 octets,
|
||||
befitting our assumption of "GTLD-SERVERS.NET." as our common parent
|
||||
name.
|
||||
|
||||
We're assuming a medium query name size of 64 since that is the
|
||||
typical size seen in trace data at the time of this writing. If
|
||||
Internationalized Domain Name (IDN) or any other technology that
|
||||
results in larger query names be deployed significantly in advance of
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 8]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
EDNS, then new measurements and new estimates will have to be made.
|
||||
|
||||
|
||||
4. Conclusions
|
||||
|
||||
The current practice of giving all nameserver names a common parent
|
||||
(such as "GTLD-SERVERS.NET." or "ROOT-SERVERS.NET.") saves space in
|
||||
DNS responses and allows for more nameservers to be enumerated than
|
||||
would otherwise be possible, since the common parent domain name only
|
||||
appears once in a DNS message and is referred to via "compression
|
||||
pointers" thereafter.
|
||||
|
||||
If all nameserver names for a zone share a common parent, then it is
|
||||
operationally advisable to make all servers for the zone thus served
|
||||
also be authoritative for the zone of that common parent. For
|
||||
example, the root name servers (?.ROOT-SERVERS.NET.) can answer
|
||||
authoritatively for the ROOT-SERVERS.NET. zone. This is to ensure
|
||||
that the zone's servers always have the zone's nameservers' glue
|
||||
available when delegating, and will be able to respond with answers
|
||||
rather than referrals if a requester who wants that glue comes back
|
||||
asking for it. In this case the name server will likely be a
|
||||
"stealth server" -- authoritative but unadvertised in the glue zone's
|
||||
NS RRset. See Section 2 of [RFC1996] for more information about
|
||||
stealth servers.
|
||||
|
||||
Thirteen (13) is the effective maximum number of nameserver names
|
||||
usable with traditional (non-extended) DNS, assuming a common parent
|
||||
domain name, and given that implicit referral response truncation is
|
||||
undesirable in the average case.
|
||||
|
||||
More than one address record in a protocol family per server is
|
||||
inadvisable since the necessary glue RRsets (A or AAAA) are
|
||||
atomically indivisible, and will be larger than a single resource
|
||||
record. Larger RRsets are more likely to lead to or encounter
|
||||
truncation.
|
||||
|
||||
More than one address record across protocol families is less likely
|
||||
to lead to or encounter truncation, partly because multiprotocol
|
||||
clients, which are required to handle larger RRsets such as AAAA RRs,
|
||||
are more likely to speak EDNS, which can use a larger UDP response
|
||||
size limit, and partly because the resource records (A and AAAA) are
|
||||
in different RRsets and are therefore divisible from each other.
|
||||
|
||||
Name server names that are at or below the zone they serve are more
|
||||
sensitive to referral response truncation, and glue records for them
|
||||
should be considered "more important" than other glue records, in the
|
||||
assembly of referral responses.
|
||||
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 9]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
5. Security Considerations
|
||||
|
||||
The recommendations contained in this document have no known security
|
||||
implications.
|
||||
|
||||
|
||||
6. IANA Considerations
|
||||
|
||||
This document does not call for changes or additions to any IANA
|
||||
registry.
|
||||
|
||||
|
||||
7. Acknowledgement
|
||||
|
||||
The authors thank Peter Koch, Rob Austein, Joe Abley, Mark Andrews,
|
||||
Kenji Rikitake, Stephane Bortzmeyer, Olafur Gudmundsson, Alfred
|
||||
Hoenes, Alexander Mayrhofer, and Ray Bellis for their valuable
|
||||
comments and suggestions.
|
||||
|
||||
This work was supported by the US National Science Foundation
|
||||
(research grant SCI-0427144) and DNS-OARC.
|
||||
|
||||
|
||||
8. References
|
||||
|
||||
8.1. Normative References
|
||||
|
||||
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
|
||||
STD 13, RFC 1034, November 1987.
|
||||
|
||||
[RFC1035] Mockapetris, P., "Domain names - implementation and
|
||||
specification", STD 13, RFC 1035, November 1987.
|
||||
|
||||
[RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS
|
||||
Specification", RFC 2181, July 1997.
|
||||
|
||||
8.2. Informative References
|
||||
|
||||
[PERL] Wall, L., Christiansen, T., and J. Orwant, "Programming
|
||||
Perl, 3rd ed.", ISBN 0-596-00027-8, July 2000.
|
||||
|
||||
[RFC1123] Braden, R., "Requirements for Internet Hosts - Application
|
||||
and Support", STD 3, RFC 1123, October 1989.
|
||||
|
||||
[RFC1996] Vixie, P., "A Mechanism for Prompt Notification of Zone
|
||||
Changes (DNS NOTIFY)", RFC 1996, August 1996.
|
||||
|
||||
[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound,
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 10]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
"Dynamic Updates in the Domain Name System (DNS UPDATE)",
|
||||
RFC 2136, April 1997.
|
||||
|
||||
[RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS
|
||||
NCACHE)", RFC 2308, March 1998.
|
||||
|
||||
[RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)",
|
||||
RFC 2671, August 1999.
|
||||
|
||||
[RFC2671bis]
|
||||
Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
|
||||
for DNS (EDNS0)", draft-ietf-dnsext-rfc2671bis-edns0-08 ,
|
||||
February 2012.
|
||||
|
||||
[RFC2672] Crawford, M., "Non-Terminal DNS Name Redirection",
|
||||
RFC 2672, August 1999.
|
||||
|
||||
[RFC3226] Gudmundsson, O., "DNSSEC and IPv6 A6 aware server/resolver
|
||||
message size requirements", RFC 3226, December 2001.
|
||||
|
||||
[RFC3258] Hardie, T., "Distributing Authoritative Name Servers via
|
||||
Shared Unicast Addresses", RFC 3258, April 2002.
|
||||
|
||||
[RFC3901] Durand, A. and J. Ihren, "DNS IPv6 Transport Operational
|
||||
Guidelines", BCP 91, RFC 3901, September 2004.
|
||||
|
||||
[RFC4472] Durand, A., Ihren, J., and P. Savola, "Operational
|
||||
Considerations and Issues with IPv6 DNS", RFC 4472,
|
||||
April 2006.
|
||||
|
||||
[RFC5625] Bellis, R., "DNS Proxy Implementation Guidelines",
|
||||
BCP 152, RFC 5625, August 2009.
|
||||
|
||||
[SSAC035] Bellis, R. and L. Phifer, "Test Report: DNSSEC Impact on
|
||||
Broadband Routers and Firewalls", SSAC 035,
|
||||
September 2008.
|
||||
|
||||
|
||||
Appendix A. The response simulator program
|
||||
|
||||
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# SYNOPSIS
|
||||
# respsize.pl [ -z zone ] fqdn_ns1 fqdn_ns2 ...
|
||||
# if all queries are assumed to have a same zone suffix,
|
||||
# such as "jp" in JP TLD servers, specify it in -z option
|
||||
#
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 11]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
use strict;
|
||||
use Getopt::Std;
|
||||
|
||||
my ($sz_msg) = (512);
|
||||
my ($sz_header, $sz_ptr, $sz_rr_a, $sz_rr_aaaa) = (12, 2, 16, 28);
|
||||
my ($sz_type, $sz_class, $sz_ttl, $sz_rdlen) = (2, 2, 4, 2);
|
||||
my (%namedb, $name, $nssect, %opts, $optz);
|
||||
my $n_ns = 0;
|
||||
|
||||
getopt('z', %opts);
|
||||
if (defined($opts{'z'})) {
|
||||
server_name_len($opts{'z'}); # just register it
|
||||
}
|
||||
|
||||
foreach $name (@ARGV) {
|
||||
my $len;
|
||||
$n_ns++;
|
||||
$len = server_name_len($name);
|
||||
print "$name requires $len bytes\n";
|
||||
$nssect += $sz_ptr + $sz_type + $sz_class + $sz_ttl
|
||||
+ $sz_rdlen + $len;
|
||||
}
|
||||
print "# of NS: $n_ns\n";
|
||||
arsect(255, $nssect, $n_ns, "maximum");
|
||||
arsect(64, $nssect, $n_ns, "average");
|
||||
|
||||
sub server_name_len {
|
||||
my ($name) = @_;
|
||||
my (@labels, $len, $n, $suffix);
|
||||
|
||||
$name =~ tr/A-Z/a-z/;
|
||||
@labels = split(/\./, $name);
|
||||
$len = length(join('.', @labels)) + 2;
|
||||
for ($n = 0; $#labels >= 0; $n++, shift @labels) {
|
||||
$suffix = join('.', @labels);
|
||||
return length($name) - length($suffix) + $sz_ptr
|
||||
if (defined($namedb{$suffix}));
|
||||
$namedb{$suffix} = 1;
|
||||
}
|
||||
return $len;
|
||||
}
|
||||
|
||||
sub arsect {
|
||||
my ($sz_query, $nssect, $n_ns, $cond) = @_;
|
||||
my ($space, $n_a, $n_a_aaaa, $n_p_aaaa, $ansect);
|
||||
$ansect = $sz_query + $sz_type + $sz_class;
|
||||
$space = $sz_msg - $sz_header - $ansect - $nssect;
|
||||
$n_a = atmost(int($space / $sz_rr_a), $n_ns);
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 12]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
$n_a_aaaa = atmost(int($space
|
||||
/ ($sz_rr_a + $sz_rr_aaaa)), $n_ns);
|
||||
$n_p_aaaa = atmost(int(($space - $sz_rr_a * $n_ns)
|
||||
/ $sz_rr_aaaa), $n_ns);
|
||||
printf "For %s size query (%d byte):\n", $cond, $sz_query;
|
||||
printf " only A is considered: ";
|
||||
printf "# of A is %d (%s)\n", $n_a, &judge($n_a, $n_ns);
|
||||
printf " A and AAAA are considered: ";
|
||||
printf "# of A+AAAA is %d (%s)\n",
|
||||
$n_a_aaaa, &judge($n_a_aaaa, $n_ns);
|
||||
printf " preferred-glue A is assumed: ";
|
||||
printf "# of A is %d, # of AAAA is %d (%s)\n",
|
||||
$n_a, $n_p_aaaa, &judge($n_p_aaaa, $n_ns);
|
||||
}
|
||||
|
||||
sub judge {
|
||||
my ($n, $n_ns) = @_;
|
||||
return "green" if ($n >= $n_ns);
|
||||
return "yellow" if ($n >= 2);
|
||||
return "orange" if ($n == 1);
|
||||
return "red";
|
||||
}
|
||||
|
||||
sub atmost {
|
||||
my ($a, $b) = @_;
|
||||
return 0 if ($a < 0);
|
||||
return $b if ($a > $b);
|
||||
return $a;
|
||||
}
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Paul Vixie
|
||||
Internet Systems Consortium
|
||||
950 Charter Street
|
||||
Redwood City, CA 94063
|
||||
US
|
||||
|
||||
Phone: +1 650 423 1300
|
||||
Email: vixie@isc.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 13]
|
||||
|
||||
Internet-Draft DNS Referral Response Size May 2012
|
||||
|
||||
|
||||
Akira Kato
|
||||
Keio University/WIDE Project
|
||||
Graduate School of Media Design, 4-1-1 Hiyoshi
|
||||
Kohoku, Yokohama 223-8526
|
||||
JP
|
||||
|
||||
Phone: +81 45 564 2490
|
||||
Email: kato@wide.ad.jp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Vixie & Kato Expires November 11, 2012 [Page 14]
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -3,19 +3,22 @@
|
|||
|
||||
Domain Name System Operations W. Mekking
|
||||
Internet-Draft NLnet Labs
|
||||
Intended status: Standards Track June 29, 2010
|
||||
Expires: December 31, 2010
|
||||
Intended status: Standards Track December 21, 2010
|
||||
Expires: June 24, 2011
|
||||
|
||||
|
||||
Automated (DNSSEC) Child Parent Synchronization using DNS UPDATE
|
||||
draft-mekking-dnsop-auto-cpsync-00
|
||||
draft-mekking-dnsop-auto-cpsync-01
|
||||
|
||||
Abstract
|
||||
|
||||
This document proposes a way to synchronise existing trust anchors
|
||||
automatically between a child zone and its parent. The algorithm can
|
||||
automatically between a child zone and its parent. The protocol can
|
||||
be used for other Resource Records that are required to delegate from
|
||||
a parent to a child such as NS and glue records.
|
||||
a parent to a child such as NS and glue records. The synchronization
|
||||
allows for a third party to be involved, thus the protocol is
|
||||
suitable for both cases, whether you have to communicate to the
|
||||
registry or to the registrar.
|
||||
|
||||
Requirements Language
|
||||
|
||||
|
|
@ -38,7 +41,7 @@ Status of This Memo
|
|||
time. It is inappropriate to use Internet-Drafts as reference
|
||||
material or to cite them other than as "work in progress."
|
||||
|
||||
This Internet-Draft will expire on December 31, 2010.
|
||||
This Internet-Draft will expire on June 24, 2011.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
|
|
@ -46,17 +49,17 @@ Copyright Notice
|
|||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
|
||||
|
||||
|
||||
Mekking Expires June 24, 2011 [Page 1]
|
||||
|
||||
Internet-Draft Child Parent Synchronization December 2010
|
||||
|
||||
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
|
||||
|
||||
|
||||
Mekking Expires December 31, 2010 [Page 1]
|
||||
|
||||
Internet-Draft Child Parent Synchronization June 2010
|
||||
|
||||
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
|
|
@ -66,9 +69,12 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
1. Introduction
|
||||
|
||||
This memo defines a way to synchronise existing trust anchors
|
||||
automatically between a child zone and its parent. The algorithm can
|
||||
automatically between a child zone and its parent. The protocol can
|
||||
be used for other Resource Records that are required to delegate from
|
||||
a parent to a child such as NS and glue records.
|
||||
a parent to a child such as NS and glue records. The synchronization
|
||||
allows for a third party to be involved, thus the protocol is
|
||||
suitable for both cases, whether you have to communicate to the
|
||||
registry or to the registrar.
|
||||
|
||||
To create a DNSSEC RFC 4035 [RFC4035] chain of trust, child zones
|
||||
must submit their DNSKEYs, or hashes of their DNSKEYs, to their
|
||||
|
|
@ -82,37 +88,60 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
The DNS UPDATE mechanism RFC 2136 [RFC2136] can be used to push zone
|
||||
changes to the parent.
|
||||
|
||||
To bootstrap the direct communication channel, information must be
|
||||
exchanged in order to detect service location and granting update
|
||||
privileges. A new or existing child zone can request a direct
|
||||
communication channel with the parent. If the parent allows for
|
||||
direct communication with child zones, the parent can share the
|
||||
required data to set up the channel to the child zone. Once the
|
||||
child has the required credentials, it can use the direct
|
||||
communication channel with the parent to request zone changes related
|
||||
to its delegation.
|
||||
To bootstrap the communication channel, information must be exchanged
|
||||
in order to detect service location and granting update privileges.
|
||||
A new or existing child zone is in need of a communication channel
|
||||
with the parent. This can be a direct channel or a channel through a
|
||||
third party:
|
||||
|
||||
If a third party is involved, the third party can act on behalf of
|
||||
the parent. In this case, the third party will give out the required
|
||||
credentials to set up the communication channel.
|
||||
If the parent allows for direct communication channel with child
|
||||
zones, the parent can share the required data to set up the
|
||||
channel to the child zone. Once the child has the required
|
||||
credentials, it can use the direct communication channel with the
|
||||
parent to request zone changes related to its delegation.
|
||||
|
||||
It is RECOMMENDED that the direct communication channel is secured
|
||||
with TSIG [RFC2845] or SIG0 [RFC2931].
|
||||
If a third party is involved, the third party acts on behalf of
|
||||
the parent. In this case, the third party will give out the
|
||||
required credentials to set up the communication channel.
|
||||
|
||||
2. Access and Update Control
|
||||
Allowing for a third party in the communication channel ensures
|
||||
|
||||
|
||||
|
||||
Mekking Expires June 24, 2011 [Page 2]
|
||||
|
||||
Internet-Draft Child Parent Synchronization December 2010
|
||||
|
||||
|
||||
flexibility of the service location.
|
||||
|
||||
Please note that the document only describes the front end of the
|
||||
synchronization service. The first reason for that is that it is not
|
||||
necessary to write down how the DNS UPDATE is processed after it is
|
||||
accepted. It is merely a goal to provide a way for the child zone to
|
||||
automatically update the records at the zone cut. The second reason
|
||||
is that flexibility is needed in order to fit the protocol into the
|
||||
multifarious policies that exist among the great number of
|
||||
registrars.
|
||||
|
||||
Thus, it is not required that the DNS UPDATE immediately updates the
|
||||
name server. Thus, it would still be possible to monitor the
|
||||
incoming updates with the tools of your choice. It is not a
|
||||
replacement of your RR provisioning system. The records in the DNS
|
||||
UPDATE can be converted into any kind of format.
|
||||
|
||||
2. Service Discovery
|
||||
|
||||
The service location is handed out during bootstrap. If this
|
||||
information is missing or incorrect, the normal guidelines for
|
||||
sending DNS UPDATE messages SHOULD be followed.
|
||||
|
||||
3. Access and Update Control
|
||||
|
||||
The DNS UPDATE normally is used for granting update permissions to a
|
||||
machine that is within the boundary of the same organization. This
|
||||
document proposes to grant child zones the same permissions.
|
||||
However, it MUST NOT be possible that a child zone updates
|
||||
|
||||
|
||||
|
||||
Mekking Expires December 31, 2010 [Page 2]
|
||||
|
||||
Internet-Draft Child Parent Synchronization June 2010
|
||||
|
||||
|
||||
information in the parent zone that falls outside the administrative
|
||||
domain of the corresponding delegation. For example, it MUST NOT be
|
||||
possible for a child zone to update the data that the parent is
|
||||
|
|
@ -124,23 +153,34 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
delegation specific. Currently those are records with RRtype NS
|
||||
or DS.
|
||||
|
||||
Or: The owner name is a subdomain of the child zone name and RRtype
|
||||
is glue specific. Currently those are records with RRtype A or
|
||||
AAAA.
|
||||
Or: The owner name exists in the right side of the NS RRset
|
||||
belonging to the child zone and RRtype is is glue specific.
|
||||
Currently those are records with RRtype A or AAAA.
|
||||
|
||||
This list may be expanded in the future, if there is need for more
|
||||
delegation related zone content.
|
||||
We can make a distinction here between narrow and wide glue records.
|
||||
Narrow glue records are said to be glue specific records with an
|
||||
owner name that is a subdomain of the child zone. Wide glue records
|
||||
are glue specific records with an owner name that is outside of the
|
||||
|
||||
|
||||
|
||||
Mekking Expires June 24, 2011 [Page 3]
|
||||
|
||||
Internet-Draft Child Parent Synchronization December 2010
|
||||
|
||||
|
||||
delegated child domain.
|
||||
|
||||
These updates MAY be refused if it conflicts with the local policy.
|
||||
This list may be expanded, if there is need for more delegation
|
||||
related zone content.
|
||||
|
||||
In case of adding or deleting delegation specific records, the DNSSEC
|
||||
related RRs in the parent zone might need to be updated.
|
||||
|
||||
The service location may be handed out by the registrar during
|
||||
bootstrap If this information is missing, the normal guidelines for
|
||||
sending DNS UPDATE messages SHOULD be followed.
|
||||
4. Update Mechanism
|
||||
|
||||
3. Update Mechanism
|
||||
|
||||
3.1. Child Duties
|
||||
4.1. Update Request
|
||||
|
||||
Updating the NS RRset or corresponding glue at the parent, an update
|
||||
can be sent at any time. Updating the DS RRset is part of key
|
||||
|
|
@ -156,34 +196,35 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
this document, the child should poll the parent zone for a short
|
||||
time, until the DS is visible at all parent name servers.
|
||||
|
||||
To discuss: A child zone might be unable to reach all parent name
|
||||
servers.
|
||||
[Author's note] To discuss: A child zone might be unable to reach all
|
||||
parent name servers.
|
||||
|
||||
The child notifies the parent of the requested changes by sending a
|
||||
DNS UPDATE message. If it receives a NOERROR reply in return, the
|
||||
|
||||
|
||||
|
||||
Mekking Expires December 31, 2010 [Page 3]
|
||||
|
||||
Internet-Draft Child Parent Synchronization June 2010
|
||||
|
||||
|
||||
update is acknowledged by the parent zone. Otherwise, the child MAY
|
||||
retry transmitting the update. In order to prevent duplicate
|
||||
updates, it SHOULD follow the guidelines described in RFC 2136
|
||||
[RFC2136].
|
||||
|
||||
3.2. Parent Duties
|
||||
4.2. Processing the Update
|
||||
|
||||
When the master DNS server of the parent receives a DNS UPDATE from
|
||||
one of its children the following must be done:
|
||||
An incoming DNS UPDATE message is processed as follows:
|
||||
|
||||
Step 1: Check the TSIG/SIG0 credentials. In case of TSIG, the
|
||||
parent should follow the TSIG processing described in section 3.2
|
||||
of RFC 2845. In case of SIG0, the parent should follow the SIG0
|
||||
processing described in section 3.2 of RFC 2931.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Mekking Expires June 24, 2011 [Page 4]
|
||||
|
||||
Internet-Draft Child Parent Synchronization December 2010
|
||||
|
||||
|
||||
Step 2: Verify that the updates matches the update policy for child
|
||||
zones.
|
||||
|
||||
|
|
@ -193,15 +234,9 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
Step 4: If verified, apply changes. How that is done is a matter of
|
||||
policy.
|
||||
|
||||
3.3. Proxy considerations
|
||||
5. Examples
|
||||
|
||||
Some environments don't allow for direct communication between parent
|
||||
and child zone. In these case, the parent duties can be performed by
|
||||
a different party (for example, the registar). The third party will
|
||||
forward the update to the parent zone. In what format depends on
|
||||
local policy.
|
||||
|
||||
4. Example BIND9 Configuration
|
||||
5.1. Example BIND9 Configuration
|
||||
|
||||
This is how a parent zone can configure a policy to enable a child
|
||||
zone synchronize delegation specific records. The first rule of the
|
||||
|
|
@ -217,14 +252,6 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
|
||||
key math.example.com. {
|
||||
algorithm HMAC-MD5;
|
||||
|
||||
|
||||
|
||||
Mekking Expires December 31, 2010 [Page 4]
|
||||
|
||||
Internet-Draft Child Parent Synchronization June 2010
|
||||
|
||||
|
||||
secret "secretformath";
|
||||
}
|
||||
|
||||
|
|
@ -238,31 +265,79 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
};
|
||||
};
|
||||
|
||||
5. Security Considerations
|
||||
6. Security Considerations
|
||||
|
||||
Automating the synchronization of (DNSSEC) records between the parent
|
||||
and child created a new channel. We have recommended that this
|
||||
channel should be secured with TSIG or SIG0. There is an advantage
|
||||
and a disadvantage of the new security channel. The disadvantage is
|
||||
that you create a new attack window for your DNSSEC credentials. If
|
||||
the automated synchronization is used for updating DS records at the
|
||||
parent, you SHOULD pick a cryptographically an equally strong or
|
||||
stronger TSIG/SIG0 key than the strength of your DNSSEC keys.
|
||||
and child creates a new communication channel. It is up to the
|
||||
policy of the parent, or the third party acting on behalf of the
|
||||
parent, who is allowed such privileges. A policy would usually
|
||||
include a form of access control. It is recommended that it involves
|
||||
transaction authentication, for example TSIG [RFC2845] or SIG0
|
||||
|
||||
|
||||
|
||||
Mekking Expires June 24, 2011 [Page 5]
|
||||
|
||||
Internet-Draft Child Parent Synchronization December 2010
|
||||
|
||||
|
||||
[RFC2931].
|
||||
|
||||
In the jungle of the DNS, many stakeholders exist. The registrant of
|
||||
a zone might not be the one that maintains the zone. That can
|
||||
possibly mean that many stakeholders need to possess the security
|
||||
credentials in order to use this synchronization channel. However,
|
||||
this problem exist with any kind of transaction authentication.
|
||||
|
||||
The disadvantage of adding a new communication channel is that you
|
||||
create a new attack window onto your DNS and DNSSEC records. When
|
||||
using this synchronization method for your DNSSEC records, a
|
||||
cryptographically equally strong, or stronger private key SHOULD be
|
||||
used, compared to the strength of your DNSSEC keys.
|
||||
|
||||
The advantage is that if somehow your DNSSEC keys are compromised,
|
||||
you can still use this channel to perform an emergency key rollover.
|
||||
|
||||
6. IANA Considerations
|
||||
7. IANA Considerations
|
||||
|
||||
None.
|
||||
|
||||
7. Acknowledgments
|
||||
8. Acknowledgments
|
||||
|
||||
Rickard Bellgrim, Wolfgang Nagele, Wouter Wijngaards and more.
|
||||
Mark Andrews, Rickard Bellgrim, Wolfgang Nagele, Wouter Wijngaards.
|
||||
|
||||
8. References
|
||||
9. Changelog
|
||||
|
||||
8.1. Informative References
|
||||
01:
|
||||
|
||||
- Make it clear that the solution is flexible and it can fit into
|
||||
many and diverse environments of registrars.
|
||||
|
||||
- Short section about service discovery.
|
||||
|
||||
- Add text about narrow glue records.
|
||||
|
||||
- Add text about transaction authentication concerns with respect
|
||||
to many stakeholders involved.
|
||||
|
||||
00:
|
||||
|
||||
- Initial document
|
||||
|
||||
10. References
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Mekking Expires June 24, 2011 [Page 6]
|
||||
|
||||
Internet-Draft Child Parent Synchronization December 2010
|
||||
|
||||
|
||||
10.1. Informative References
|
||||
|
||||
[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound,
|
||||
"Dynamic Updates in the Domain Name System (DNS
|
||||
|
|
@ -274,14 +349,7 @@ Internet-Draft Child Parent Synchronization June 2010
|
|||
[keytiming] Morris, S., Ihren, J., and J. Dickinson, "DNSSEC Key
|
||||
Timing Considerations", March 2010.
|
||||
|
||||
|
||||
|
||||
Mekking Expires December 31, 2010 [Page 5]
|
||||
|
||||
Internet-Draft Child Parent Synchronization June 2010
|
||||
|
||||
|
||||
8.2. Normative References
|
||||
10.2. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
|
@ -320,17 +388,5 @@ Author's Address
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Mekking Expires December 31, 2010 [Page 6]
|
||||
Mekking Expires June 24, 2011 [Page 7]
|
||||
|
||||
|
|
@ -3,13 +3,13 @@
|
|||
Network Working Group J. Yao
|
||||
Internet-Draft X. Lee
|
||||
Intended status: Standards Track CNNIC
|
||||
Expires: February 12, 2011 P. Vixie
|
||||
Expires: February 20, 2011 P. Vixie
|
||||
Internet Software Consortium
|
||||
August 11, 2010
|
||||
August 19, 2010
|
||||
|
||||
|
||||
Bundle DNS Name Redirection
|
||||
draft-yao-dnsext-bname-04.txt
|
||||
Bundled DNS Name Redirection
|
||||
draft-yao-dnsext-bname-05.txt
|
||||
|
||||
Abstract
|
||||
|
||||
|
|
@ -34,7 +34,7 @@ Status of this Memo
|
|||
time. It is inappropriate to use Internet-Drafts as reference
|
||||
material or to cite them other than as "work in progress."
|
||||
|
||||
This Internet-Draft will expire on February 12, 2011.
|
||||
This Internet-Draft will expire on February 20, 2011.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ Copyright Notice
|
|||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 1]
|
||||
Yao, et al. Expires February 20, 2011 [Page 1]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
|
@ -81,33 +81,33 @@ Table of Contents
|
|||
3.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.2. The BNAME Substitution . . . . . . . . . . . . . . . . . . 4
|
||||
3.3. The BNAME Rules . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4. Query Processing . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.4. BNAME Examples . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4. Query Processing . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
4.1. Processing by Servers . . . . . . . . . . . . . . . . . . 5
|
||||
4.2. Processing by Resolvers . . . . . . . . . . . . . . . . . 8
|
||||
5. BNAME in DNSSEC . . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
5.1. BNAME validating . . . . . . . . . . . . . . . . . . . . . 9
|
||||
5.2. BNAME alias algorithm identifiers . . . . . . . . . . . . 10
|
||||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
|
||||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 10
|
||||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
|
||||
9. Change History . . . . . . . . . . . . . . . . . . . . . . . . 11
|
||||
9.1. draft-yao-dnsext-bname: Version 00 . . . . . . . . . . . . 11
|
||||
9.2. draft-yao-dnsext-bname: Version 01 . . . . . . . . . . . . 11
|
||||
9.3. draft-yao-dnsext-bname: Version 02 . . . . . . . . . . . . 11
|
||||
9.4. draft-yao-dnsext-bname: Version 03 . . . . . . . . . . . . 11
|
||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
10.1. Normative References . . . . . . . . . . . . . . . . . . . 12
|
||||
10.2. Informative References . . . . . . . . . . . . . . . . . . 13
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
|
||||
5.3. Signaling of BNAME . . . . . . . . . . . . . . . . . . . . 10
|
||||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
|
||||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12
|
||||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
9. Change History . . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
9.1. draft-yao-dnsext-bname: Version 00 . . . . . . . . . . . . 12
|
||||
9.2. draft-yao-dnsext-bname: Version 01 . . . . . . . . . . . . 12
|
||||
9.3. draft-yao-dnsext-bname: Version 02 . . . . . . . . . . . . 12
|
||||
9.4. draft-yao-dnsext-bname: Version 03 . . . . . . . . . . . . 12
|
||||
9.5. draft-yao-dnsext-bname: Version 04 . . . . . . . . . . . . 13
|
||||
9.6. draft-yao-dnsext-bname: Version 05 . . . . . . . . . . . . 13
|
||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
|
||||
10.1. Normative References . . . . . . . . . . . . . . . . . . . 13
|
||||
10.2. Informative References . . . . . . . . . . . . . . . . . . 14
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 2]
|
||||
Yao, et al. Expires February 20, 2011 [Page 2]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
|
@ -163,7 +163,7 @@ Internet-Draft bname August 2010
|
|||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 3]
|
||||
Yao, et al. Expires February 20, 2011 [Page 3]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
|
@ -212,18 +212,46 @@ Internet-Draft bname August 2010
|
|||
restriction applies only to records of the same class as the BNAME
|
||||
record.
|
||||
|
||||
3.4. BNAME Examples
|
||||
|
||||
4. Query Processing
|
||||
|
||||
To exploit the BNAME mechanism the name resolution algorithms
|
||||
The table below shows some examples of the BNAME usage.
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 4]
|
||||
|
||||
Yao, et al. Expires February 20, 2011 [Page 4]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
QNAME owner BNAME target result
|
||||
---------------- -------------- -------------- -----------------
|
||||
com. example.com. example.net. <no match>
|
||||
com. com. net. net.
|
||||
example.com. example.com. example.net. example.net.
|
||||
a.example.com. example.com. example.net. a.example.net.
|
||||
a.b.example.com. example.com. example.net. a.b.example.net.
|
||||
ab.example.com. b.example.com. example.net. <no match>
|
||||
bar.example.com. example.com. example.net. bar.example.net.
|
||||
a.b.example.com. b.example.com. example.net. a.example.net.
|
||||
a.example.com. example.com. b.example.net. a.b.example.net.
|
||||
|
||||
Table 1. BNAME Usage Examples.
|
||||
|
||||
|
||||
If the owner name of the CNAME RR is regarded as the target of the MX
|
||||
RR, it may cause some problems. Some mail servers may directly
|
||||
connect the owner name of the CNAME instead of the name pointed by
|
||||
CNAME for mail delivery and cause the undelivery of the mails. BNAME
|
||||
has the similar problems with CNAME. This document specifies that
|
||||
the owner name of the BNAME should not be the targets of some RRs
|
||||
such as MX, SRV and PTR. In case that the owner name of the BNAME RR
|
||||
is the target of some RRs, it should be cautious.
|
||||
|
||||
|
||||
4. Query Processing
|
||||
|
||||
To exploit the BNAME mechanism the name resolution algorithms
|
||||
[RFC1034] must be modified slightly for both servers and resolvers.
|
||||
Both modified algorithms incorporate the operation of making a
|
||||
substitution on a name (either QNAME or SNAME) under control of a
|
||||
|
|
@ -244,42 +272,22 @@ Internet-Draft bname August 2010
|
|||
|
||||
If the owner name of the bname is same with the name queryed, when
|
||||
preparing a response, a server performing a BNAME substitution will
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 20, 2011 [Page 5]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
not include the relevant BNAME RR in the answer section unless the
|
||||
type queryed is BNAME. A CNAME RR will be synthesized and included
|
||||
in the answer section unless the type queryed is BNAME or the query
|
||||
is the DNSSEC query.
|
||||
in the answer section unless the type queryed is BNAME.
|
||||
|
||||
The provided synthesized CNAME RR if there has one, MUST have
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 5]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
The same CLASS as the QCLASS of the query,
|
||||
|
||||
TTL equal to the corresponding BNAME RR,
|
||||
|
|
@ -323,15 +331,7 @@ Internet-Draft bname August 2010
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 6]
|
||||
Yao, et al. Expires February 20, 2011 [Page 6]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
|
@ -387,7 +387,7 @@ Internet-Draft bname August 2010
|
|||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 7]
|
||||
Yao, et al. Expires February 20, 2011 [Page 7]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
|
@ -443,7 +443,7 @@ Internet-Draft bname August 2010
|
|||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 8]
|
||||
Yao, et al. Expires February 20, 2011 [Page 8]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
|
@ -499,7 +499,7 @@ Internet-Draft bname August 2010
|
|||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 9]
|
||||
Yao, et al. Expires February 20, 2011 [Page 9]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
|
@ -535,7 +535,64 @@ Internet-Draft bname August 2010
|
|||
algorithm identifiers are used with the BNAME hash algorithm SHA1.
|
||||
Using other BNAME hash algorithms requires allocation of a new alias.
|
||||
Validating resolvers which follow the BNAME specification MUST
|
||||
recognize the new alias algorithm identifier.
|
||||
recognize the new alias algorithm identifier. The future new DNSSEC
|
||||
algorithms are suggested to indicate the support of BNAME.
|
||||
|
||||
5.3. Signaling of BNAME
|
||||
|
||||
A new UB (Understand BNAME) bit in the EDNS flags field [RFC2671]can
|
||||
be used to signal that the resolvers can understand BNAME in DNSSEC.
|
||||
BNAME aware resolvers can set the Understand-BNAME (UB bit) to
|
||||
receive a response without the synthesized CNAMEs. The UB bit is
|
||||
part of the EDNS extended RCODE and Flags field[RFC2671]. Resolvers
|
||||
should set this in a query to request omission of the synthesized
|
||||
CNAMEs.
|
||||
|
||||
If the query is a DNSSEC query, the BNAME enabled resolvers MUST set
|
||||
the UB bit in the query. The server receiving the UB bit MUST not
|
||||
issue synthesized CNAMEs. Servers copy the UB bit to the response,
|
||||
and should delete the synthesized CNAMEs from the answer if there has
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 20, 2011 [Page 10]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
one.
|
||||
|
||||
If the query is the DNSSEC query but the UB bit is not set, the
|
||||
server should follow the rules below:
|
||||
o If the owner name of the bname is the suffix of the name queryed
|
||||
but different, when preparing a response, a server performing a
|
||||
BNAME substitution will in all cases include the relevant BNAME RR
|
||||
in the answer section. An unsigned CNAME RR is synthesized and
|
||||
included in the answer section. This will help the client to
|
||||
reach the correct DNS data.
|
||||
o If the owner name of the bname is same with the name queryed, when
|
||||
preparing a response, a DNSSEC enabled server performing a BNAME
|
||||
substitution will not include the relevant BNAME RR and its RRSIG
|
||||
RR in the answer section unless the type queryed is BNAME. An
|
||||
unsigned CNAME RR will be synthesized and included in the answer
|
||||
section unless the type queryed is BNAME.
|
||||
o Since the BNAME-unaware DNSSEC resolvers do not know the alias
|
||||
algorithm defined in secton 5.2 of this document, any response
|
||||
from these zones signed with these alias algorithms unknown to
|
||||
them will be regarded as the insecure one according to section 5.2
|
||||
of [RFC4035].
|
||||
|
||||
Below are Updated EDNS extended RCODE and Flags fields [RFC2671]:
|
||||
|
||||
|
||||
+0 (MSB) +1 (LSB)
|
||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||
0: | EXTENDED-RCODE | VERSION |
|
||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||
2: |DO|UB| Z |
|
||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||
|
||||
|
||||
|
||||
|
||||
6. IANA Considerations
|
||||
|
|
@ -544,22 +601,24 @@ Internet-Draft bname August 2010
|
|||
the IANA registry "DNS SECURITY ALGORITHM NUMBERS". IANA is
|
||||
requested to assign the number to Y and Z.
|
||||
|
||||
[[anchor14: Note in draft: before this document goes to WG Last call,
|
||||
[[anchor15: Note in draft: before this document goes to WG Last call,
|
||||
it is better that we list all DNSSEC algorithms that need to be
|
||||
aliased to reflect compatibility with this extension.]]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 20, 2011 [Page 11]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
7. Security Considerations
|
||||
|
||||
Both ASCII domain name labels and non-ASCII ones have some aliases.
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 10]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
We can bundle the domain name labels and their aliases through BNAME
|
||||
in the DNS resolutions. The name labels and their aliases in the
|
||||
particular languages are only known by those who know these
|
||||
|
|
@ -583,7 +642,7 @@ Internet-Draft bname August 2010
|
|||
|
||||
9. Change History
|
||||
|
||||
[[anchor17: RFC Editor: Please remove this section.]]
|
||||
[[anchor18: RFC Editor: Please remove this section.]]
|
||||
|
||||
9.1. draft-yao-dnsext-bname: Version 00
|
||||
|
||||
|
|
@ -605,17 +664,26 @@ Internet-Draft bname August 2010
|
|||
o Update the IANA consideration
|
||||
|
||||
|
||||
10. References
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 11]
|
||||
Yao, et al. Expires February 20, 2011 [Page 12]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
9.5. draft-yao-dnsext-bname: Version 04
|
||||
|
||||
o Improve the text
|
||||
|
||||
9.6. draft-yao-dnsext-bname: Version 05
|
||||
|
||||
o add section: bname examples
|
||||
o add section: Signaling of BNAME
|
||||
|
||||
|
||||
10. References
|
||||
|
||||
10.1. Normative References
|
||||
|
||||
[ASCII] American National Standards Institute (formerly United
|
||||
|
|
@ -652,6 +720,14 @@ Internet-Draft bname August 2010
|
|||
(RR) Types", RFC 3597, September 2003.
|
||||
|
||||
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 20, 2011 [Page 13]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
10646", RFC 3629, November 2003.
|
||||
|
||||
[RFC3743] Konishi, K., Huang, K., Qian, H., and Y. Ko, "Joint
|
||||
|
|
@ -664,14 +740,6 @@ Internet-Draft bname August 2010
|
|||
RFC 4033, March 2005.
|
||||
|
||||
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 12]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
Rose, "Resource Records for the DNS Security Extensions",
|
||||
RFC 4034, March 2005.
|
||||
|
||||
|
|
@ -702,6 +770,20 @@ Authors' Addresses
|
|||
Email: yaojk@cnnic.cn
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 20, 2011 [Page 14]
|
||||
|
||||
Internet-Draft bname August 2010
|
||||
|
||||
|
||||
Xiaodong LEE
|
||||
CNNIC
|
||||
No.4 South 4th Street, Zhongguancun
|
||||
|
|
@ -723,7 +805,37 @@ Authors' Addresses
|
|||
|
||||
|
||||
|
||||
Yao, et al. Expires February 12, 2011 [Page 13]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Yao, et al. Expires February 20, 2011 [Page 15]
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in a new issue