Internet DRAFT - draft-conroy-enum-modestproposal
draft-conroy-enum-modestproposal
ENUM L. Conroy
Internet-Draft Roke Manor Research
Expires: January 6, 2006 July 5, 2005
Non-Terminal NAPTR Processing: A Modest Proposal
<draft-conroy-enum-modestproposal-00.txt>
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.
This Internet-Draft will expire on January 6, 2006.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
Recent Discussions within the IETF and in other fora have highlighted
differences in interpretation of the set of standards associated with
ENUM and DDDS, on which it relies. Specifically, the operation and
semantics surrounding support for non-terminal NAPTRs has led to some
confusion. This document is an attempt to add clarification to non-
terminal NAPTR processing. In this, it clarifies RFC3403. A
subsequent document will build on this one to extend RFC3761 further,
permitting registration of non-terminal Enumservices.
Conroy Expires January 6, 2006 [Page 1]
Internet-Draft Non-terminal NAPTR clarification July 2005
Table of Contents
1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 The Problem . . . . . . . . . . . . . . . . . . . . . . . 4
3. The solution . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 Clarification of RFC3403 Section 4.1 . . . . . . . . . . . 6
4. Security Considerations . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1 Normative References . . . . . . . . . . . . . . . . . . . 10
6.2 Informative References . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 11
Intellectual Property and Copyright Statements . . . . . . . . 12
Conroy Expires January 6, 2006 [Page 2]
Internet-Draft Non-terminal NAPTR clarification July 2005
1. Terminology
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 BCP 14, RFC2119 [1].
Conroy Expires January 6, 2006 [Page 3]
Internet-Draft Non-terminal NAPTR clarification July 2005
2. Introduction
RFC3403 [2] defines the NAPTR resource record. It forms part of the
set of standards ([3][4][2]) that collectively specify the Dynamic
Delegation Discovery System (DDDS). Note that the examples given in
the second half of RFC3403 (section 6 of that document) are exemplary
rather than normative. The normative definitions of those DDDS
applications are in RFC3404 [5]/[6] and RFC3761 [7]. In particular,
note that RFC3761 uses a slightly different syntax from the examples
shown in this section.
The core algorithm for DDDS is specified in RFC3402. This shows that
the DDDS process is capable of looping through records that hold
"rules", extracted from a DDDS-application specific rule database,
until one such rule provides a final result or causes an exit from
the DDDS process, or all rules are exhausted. Intermediate rules
that do not cause such an exit are called "non-terminal" and
processing such a non-terminal rule generates a new key that is used
to extract further rules from the database.
One potential database that can be used with DDDS is the Domain Name
System (DNS) [8]. A DNS Resource Record type suitable for carrying
DDDS rules is the NAPTR, specified in RFC3403.
For historical reasons (i.e. the original specification of NAPTRs
preceded the development of DDDS), the fields that are defined for
the NAPTR are a superset of the fields used in the DDDS algorithm.
In particular, the DDDS priority field is represented within a NAPTR
by the combination of the NAPTR Order and Preference elements, and
the DDDS Substitution Expression is represented by the alternative
NAPTR Regexp or Replacement elements.
The flags NAPTR element directly reflects the flags field used in the
DDDS algorithm to specify the expected output of a rule. The flags
field also indicates whether this rule is to be interpreted as
terminal or non-terminal.
2.1 The Problem
The current DDDS specifications are not completely clear on how these
NAPTR elements are used to reflect the DDDS rule fields. Individual
DDDS application specifications have clarified the interpretation of
the NAPTR Order and Preference element values when used with these
DDDS applications. However, the main issue lies with the
interpretation of the roles of the two elements that collectively
reflect the DDDS Substitution Expression field; the NAPTR Regexp and
Replacement elements.
Conroy Expires January 6, 2006 [Page 4]
Internet-Draft Non-terminal NAPTR clarification July 2005
RFC3403 is specific; these two elements are mutually exclusive. This
means that if the Regexp element is not empty then the Replacement
element must be empty, and vice versa. However, is does not specify
which is used with terminal and non-terminal rules.
The descriptive text of section 4.1 of RFC3403 for the NAPTR
Replacement element shows that this element holds an uncompressed
domain name. Thus it is clear that this element cannot be used to
deliver the terminal string for any DDDS application that does not
have a domain name as its intended output.
However, the first paragraph of descriptive text for the NAPTR Regexp
element has led to some confusion; it appears that the Regexp element
is to be used to find "the next domain name to lookup". A client
program processing the DDDS application may need to examine each
NAPTR to decide whether the Regexp element or instead the Replacement
element is to be used to construct the key (a domain name) to be used
next in non-terminal rule processing.
Given that a NAPTR holding a terminal rule (a "terminal NAPTR") must
use the Substitution expression field to generate the expected output
of that DDDS application, the Regexp element is also used in such
rules. Indeed, unless that DDDS application has a domain name as its
output, the Regexp element is the only possibility.
Thus from the descriptive text of this section, a Replacement element
can be used only in NAPTRs holding a non-terminal rule (a "non-
terminal NAPTR") unless that DDDS Application has a domain name as
its terminal output, whilst the alternative Regexp element may be
used either to generate a domain name as the next key to be used in
the non-terminal case, or to generate the output of the DDDS
application.
Note that each DDDS application is free to specify the set of flags
to be used with that application. This includes specifying whether a
particular flag is associated with a terminal or non-terminal rule,
and also to specify the interpretation of an empty flags field (i.e.
whether this is to be interpreted as a terminal or non-terminal rule,
and if it is terminal, then the expected output).
The general case in which a client program must check which of the
two elements to use in non-terminal NAPTR processing complicates
implementation, and this interpretation has NOT been made in current
ENUM examples "out in the wild". It would be useful to define
exactly when a client program can expect to process the Regexp
element and when to expect to process the Replacement element, if
only to improve robustness.
Conroy Expires January 6, 2006 [Page 5]
Internet-Draft Non-terminal NAPTR clarification July 2005
3. The solution
3.1 Clarification of RFC3403 Section 4.1
In those DDDS application specifications that have been released so
far, the empty flags field has been used to indicate a non-terminal
rule. As described in RFC3403, the DDDS application is also free to
specify a flag as being associated with a non-terminal rule.
A two-part convention is proposed for all DDDS applications that use
NAPTRs to store their rules.
In the first part of this convention, the empty flag field MUST be
interpreted as being associated with a non-terminal rule, and that in
this case, that non-terminal rule MUST use the (non-empty)
Replacement element to hold the domain name that forms the "next key"
output from this non-terminal rule.
In the second part of the convention, where a DDDS application
defines a flag as being associated with a non-terminal rule, the
NAPTR containing this rule MUST use the Regexp element to generate
and output the "next key".
This convention allows the client program to decide, merely by
inspection of the flags element of the NAPTR, whether it should
expect to process the Replacement or Regexp element. It also allows
more rigourous validation to be applied if required against the
output of the Regexp processing; it will be clear from the specific
flag whether this is to be interpreted as a domain name or some other
output (such as a URI, in the case of ENUM). Finally, this
convention does not change any existing DDDS application
specification - it merely clarifies what is currently not completely
specified.
Thus, it is proposed that the descriptive text for the Flags element
within section 4.1 of RFC3403 (in particular, the second paragraph)
should be interpreted as follows:
FLAGS
A <character-string> containing flags to control aspects of the
rewriting and interpretation of the fields in the record. Flags
are single characters from the set A-Z and 0-9. The case of the
alphabetic characters is not significant. The field can be empty.
Where the field is empty, the rule is interpreted as non-terminal,
and the Replacement field is used to hold the next key output by
the rule. Where the field is non-empty, it is up to the
Conroy Expires January 6, 2006 [Page 6]
Internet-Draft Non-terminal NAPTR clarification July 2005
Application specifying it is using this Database to define the
Flags in this field. It must define which ones are terminal and
which ones are not. In the case where a flag is defined as being
non-terminal, the Regexp field will be used to generate the next
key output by this rule.
Conroy Expires January 6, 2006 [Page 7]
Internet-Draft Non-terminal NAPTR clarification July 2005
4. Security Considerations
The clarification described in this document does not appear to have
any security considerations over and above those already analysed in
the DDDS specifications. The intent of this document is to specify
more clearly what fields should be used within a NAPTR resource
record for terminal and non-terminal DDDS processing and to "tighten"
the specification of NAPTR field content. Whilst this does reduce
the flexibility of DDDS applications to made their own choices on
field content and interpretation, it does simplify the processing
required of clients that handle NAPTRs.
Conroy Expires January 6, 2006 [Page 8]
Internet-Draft Non-terminal NAPTR clarification July 2005
5. IANA Considerations
Under the framework defined in RFC3402, IANA accepts registration
requests for new DDDS applications only after the specifications that
define the operation of these DDDS applications have been processed
by the IETF. Thus there are no further requirements on IANA, as it
is assumed that this document will have been considered as part of
the evaluation of any new DDDS application by the IETF.
Conroy Expires January 6, 2006 [Page 9]
Internet-Draft Non-terminal NAPTR clarification July 2005
6. References
6.1 Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119, BCP 14, March 1997.
[2] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
Three: The Domain Name System (DNS) Database", RFC 3403,
October 2002.
[3] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
One: The Comprehensive DDDS", RFC 3401, October 2002.
[4] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
Two: The Algorithm", RFC 3402, October 2002.
[5] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
Four: The Uniform Resource Identifiers (URI)", RFC 3404,
October 2002.
[6] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part
Five: URI.ARPA Assignment Procedures", RFC 3405, October 2002.
[7] Faltstrom, P. and M. Mealling, "The E.164 to Uniform Resource
Identifiers (URI) Dynamic Delegation Discovery System (DDDS)
Application (ENUM)", RFC 3761, April 2004.
[8] Mockapetris, P., "DOMAIN NAMES - CONCEPTS AND FACILITIES",
RFC 1034, November 1987.
6.2 Informative References
[9] Bradner, S., "The Internet Standards Process -- Revision 3",
RFC 2026, BCP 9, October 1996.
[10] Bradner, S., "IETF Rights in Contributions", BCP 78, RFC 3978,
March 2005.
[11] Bradner, S., "Intellectual Property Rights in IETF Technology",
BCP 79, RFC 3979, March 2005.
Conroy Expires January 6, 2006 [Page 10]
Internet-Draft Non-terminal NAPTR clarification July 2005
Author's Address
Lawrence Conroy
Roke Manor Research
Roke Manor
Romsey
United Kingdom
Phone: +44-1794-833666
Email: lwc@roke.co.uk
Conroy Expires January 6, 2006 [Page 11]
Internet-Draft Non-terminal NAPTR clarification July 2005
Intellectual Property Statement
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.
Disclaimer of Validity
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.
Copyright Statement
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.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Conroy Expires January 6, 2006 [Page 12]