2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 06:25:31 +00:00

updated drafts

This commit is contained in:
Andreas Gustafsson
2001-03-01 17:42:02 +00:00
parent 1adb182c1a
commit a653c8b3a9
11 changed files with 3566 additions and 3557 deletions

View File

@@ -4,10 +4,9 @@
DNSEXT Working Group Brian Wellington (Nominum)
INTERNET-DRAFT Olafur Gudmundsson (NAI Labs)
<draft-ietf-dnsext-ad-is-secure-00.txt> November 2000
<draft-ietf-dnsext-ad-is-secure-01.txt> January 2001
Updates: RFC 2535
@@ -38,33 +37,33 @@ Status of this Memo
Comments should be sent to the authors or the DNSEXT WG mailing list
namedroppers@ops.ietf.org
This draft expires on May 17, 2001.
This draft expires on July 19, 2001.
Copyright Notice
Copyright (C) The Internet Society (2000). All rights reserved.
Copyright (C) The Internet Society (2001). All rights reserved.
Abstract
Based on implementation experience, the current definition of the AD
bit in the DNS header is not useful. This draft changes the
bit in the DNS header is not useful. This draft changes the
specification so that the AD bit is only set on answers where
signatures have been cryptographically verified.
Expires May 2001 [Page 1]
Expires July 2001 [Page 1]
INTERNET-DRAFT AD bit set on secure answers November 2000
INTERNET-DRAFT AD bit set on secure answers January 2001
1 - Introduction
Familiarity with the DNS system [RFC1034, RFC1035] and DNS security
extensions [RFC2535] is helpful but not necessary.
Familiarity with the DNS system [RFC1035] and DNS security extensions
[RFC2535] is helpful but not necessary.
As specified in RFC 2535 (section 6.1), the AD bit indicates in a
response that all the data included in the answer and authority
@@ -112,9 +111,9 @@ INTERNET-DRAFT AD bit set on secure answers November 2000
Expires May 2001 [Page 2]
Expires July 2001 [Page 2]
INTERNET-DRAFT AD bit set on secure answers November 2000
INTERNET-DRAFT AD bit set on secure answers January 2001
If the answer section contains any data, the server MUST NOT include
@@ -129,11 +128,11 @@ INTERNET-DRAFT AD bit set on secure answers November 2000
resolver policy is that it can trust the server.
A DNS server following this modified specification will only set the
AD bit when it has verified the data in the answer. In the case of a
primary server for a secure zone, the data MAY be considered
Authenticated, depending on local policy. Secondary servers SHOULD
NOT consider data Authenticated unless the zone was transfered
securely or the data was verified.
AD bit when it has cryptographically verified the data in the answer.
In the case of a primary server for a secure zone, the data MAY be
considered Authenticated, depending on local policy. Secondary
servers SHOULD NOT consider data Authenticated unless the zone was
transfered securely or the data was verified.
3 - Interpretation of the AD bit
@@ -155,7 +154,7 @@ INTERNET-DRAFT AD bit set on secure answers November 2000
6 - Acknowledgments:
The following people have provided input on this document: Andreas
Gustafsson, Bob Halley, Steven Jacob,
Gustafsson, Bob Halley, Steven Jacob.
References:
@@ -168,9 +167,9 @@ References:
Expires May 2001 [Page 3]
Expires July 2001 [Page 3]
INTERNET-DRAFT AD bit set on secure answers November 2000
INTERNET-DRAFT AD bit set on secure answers January 2001
[RFC2845] P. Vixie, O. Gudmundsson, D. Eastlake, B. Wellington,
@@ -194,7 +193,7 @@ Authors Addresses
Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved.
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
@@ -224,4 +223,4 @@ Full Copyright Statement
Expires May 2001 [Page 4]
Expires July 2001 [Page 4]

View File

@@ -6,7 +6,7 @@
DNEXT Working Group S. Rose
Internet Draft NIST
Expires: June 2001 January 2001
Expires: August 2001 February 2001
Category: Informational
@@ -14,7 +14,7 @@ Category: Informational
DNS Security Document Roadmap
------------------------------
<draft-ietf-dnsext-dnssec-roadmap-01.txt>
<draft-ietf-dnsext-dnssec-roadmap-02.txt>
Status of this Document
@@ -48,10 +48,10 @@ Abstract
data integrity and authentication to security aware
resolvers and applications through the use of
cryptographic digital signatures. Several documents
exist to describe these extensions and the implementation
specific details regarding specific digital signing
schemes. The interrelationship between these different
documents is discussed here. A brief overview of what to
exist to describe these extensions and the
implementation-specific details regarding specific
digital signing schemes. The interrelationship between
these different documents is discussed here. A brief
@@ -61,13 +61,13 @@ Rose [Page 1]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
find in which document and author guidelines for what to
include in new DNS Security documents, or revisions to
existing documents, is described.
overview of what to find in which document and author
guidelines for what to include in new DNS Security
documents, or revisions to existing documents, is
described.
@@ -120,7 +120,7 @@ Rose [Page 2]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
1. Introduction
@@ -147,13 +147,13 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
protocol extension, and what should be considered an operational
issue. Currently, there are at least two documents that fall under
operational security considerations that deal specifically with the
DNS security extensions: The first is RFC 2541 which deals with the
operational side of implementing the security extensions. The other
DNS security extensions: the first is RFC 2541 which deals with the
operational side of implementing the security extensions; the other
is the CAIRN DNSSEC testbed Internet draft [CAIRN]. These documents
should be considered part of the operational side of DNS, but will be
addressed as a supplemental part of the DNS Security roadmap. That
is not to say that these two documents are not important to securing
a DNS zone, but it does not directly address the proposed DNS secu-
a DNS zone, but they do not directly address the proposed DNS secu-
rity extensions. Authors of documents that seek to address the
operational concerns of DNS security should be aware of the structure
of DNS Security documentation if they wish to include their documents
@@ -180,7 +180,7 @@ Rose [Page 3]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
possible that some documents fall into more than one of these
@@ -204,8 +204,8 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
| New | | DNSSEC | | New |
| Security | <------->| protocol |<-------->| Security |
| RRs | | | | Uses |
| [RFC2538, | | [RFC2535, | | |
| RFC2931, | | RFC3007, | +-------------+
| [RFC2538, | | [RFC2535, | | [SSH-DNS] |
| RFC2931, | | RFC3007, | +-------------+
| NO] | | RFC3008, |
+------------+ | CLARIFY, |
| SIZE ] |
@@ -240,17 +240,17 @@ Rose [Page 4]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
The "DNSSEC protocol" document set refers to the document that makes
up the groundwork for adding security to the DNS protocol [RFC2535]
and updates to this document. RFC 2535 laid out the goals and expec-
tations of DNS Security and the new security related Resource Records
tations of DNS Security and the new security-related Resource Records
KEY, SIG, and NXT. Expanding from this document, related document
groups include the implementation documents of various digital signa-
ture algorithms with DNSSEC, and documents further refining the tran-
saction of messages. It is expected that RFC 2535 will be obseleted
saction of messages. It is expected that RFC 2535 will be obsoleted
by one or more documents that refine the set of security extensions
and DNS security transactions. Documents that seek to modify or
clarify the base protocol documents should state so clearly in the
@@ -262,7 +262,7 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
[SIZE], [OKBIT], [ADBIT] and their derivative documents.
The "New Security RRs" set refers to the group of documents that seek
to add additional Resource Record to the set of base DNS Record
to add additional Resource Records to the set of base DNS Record
types. These new records can be related to securing the DNS protocol
[RFC2535], [RFC2931], [NO] or using DNS security for other purposes
such as storing certificates [RFC2538].
@@ -275,7 +275,7 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
and [GSS-TSIG].
The "Transactions" document set refers to the group of documents that
deal with the message transaction sequence of security related DNS
deal with the message transaction sequence of security-related DNS
operations. The contents and sequence for operations such as dynamic
update [RFC2137] [UPDATE] and transaction signatures [RFC2845] are
described in this document category. Additional message transaction
@@ -285,12 +285,12 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
The final document set, "New Security Uses", refers to documents that
seek to use proposed DNS Security extensions for other security
related purposes. Documents that fall in this category include the
use of DNS in the distribution of certificates and individual user
public keys (PGP, email, etc.).
Lastly, there is a set of documents that should be classified as
"Implementation Notes". Because the DNS security extensions are
still in the developmental stage, there is an audience for documents
use of DNS in the storage and distribution of certificates and indi-
vidual user public keys (PGP, e-mail, etc.) Some documents in this
group may fall beyond the DNSEXT WG scope, but they are included
because of their use of the security extensions. The documents in
this group should not propose any changes to the DNS protocol to sup-
port other protocols; only how existing DNS security records and
@@ -300,33 +300,40 @@ Rose [Page 5]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
transactions can be used to support other protocols. One such docu-
ment is [SSH-DNS] which deals with storing SSH keys in the DNS using
the security records.
Lastly, there is a set of documents that should be classified as
"Implementation Notes". Because the DNS security extensions are
still in the developmental stage, there is an audience for documents
that detail the transition and implementation of the security exten-
sions. These have more to do with the practical side of DNS opera-
tions, but can also point to places in the protocol specifications
that need improvement. Documents in this set may be offspring of
both the DNSEXT and/or DNSOP working groups. Currently, there are
two Internet Drafts that falls under this category: The report on
the CAIRN DNSSEC testbed [CAIRN] and a draft on security key rollover
[ROLLOVER]. These documents were submitted through the DNSOP working
group, however the main concern of these documents is the implementa-
tion and limitations of the DNS security extensions, hence their
both the DNSEXT and/or DNSOP Working Groups. Currently, there are
two Internet Drafts that fall under this category: the report on the
CAIRN DNSSEC testbed [CAIRN] and a draft on security key rollover
[ROLLOVER]. These documents were submitted through the DNSOP Working
Group, however the main concern of thesee documents is the implemen-
tation and limitations of the DNS security extensions, hence their
interest to the DNS security community. The CAIRN draft deals with
the implementation of a secure DNS, and the draft on key rollover
deals with updating DNS keys in a secure fashion. Authors of docu-
ments that deal with the implementation and operational side of the
DNSSEC specifications would be advised/encouraged to submit their
documents to the DNSEXT working group as well.
documents to the DNSEXT Working Group as well.
3. Relationship of DNS Security Documents to other DNS Documents
The DNS security related extensions should be considered a subset of
the DNS protocol. The DNS Security working group of the IETF
(DNSSEC) has been absorbed into the larger DNS Extensions working
group (DNSEXT). Therefore, all DNS security related documents should
The DNS security-related extensions should be considered a subset of
the DNS protocol. The DNS Security Working Group of the IETF
(DNSSEC) has been absorbed into the larger DNS Extensions Working
Group (DNSEXT). Therefore, all DNS security-related documents should
be seen as a subset of the main DNS architecture documents. It is a
good idea for authors of future DNS security documents to be familiar
with the contents of these base protocol documents.
@@ -344,13 +351,6 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
extension should also be included in the document. These criteria
are not officially part of the IETF guidelines regarding RFC/Internet
Drafts, but should be considered as guidance to promote uniformity to
working group documents.
Since the addition of security to the DNS protocol is now considered
A general extension to the DNS protocol, any guideline for the con-
tents of a DNS Security document could be taken as a suggestion for
the contents of any DNS extension document.
@@ -360,7 +360,15 @@ Rose [Page 6]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
Working Group documents.
Since the addition of security to the DNS protocol is now considered
a general extension to the DNS protocol, any guideline for the con-
tents of a DNS Security document could be taken as a suggestion for
the contents of any DNS extension document.
4.1 Security Related Resource Records
@@ -369,19 +377,19 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
should contain information describing the structure and use of the
new RR type. It is a good idea to only discuss one new type in a
document, unless the set of new resource records are closely related
or a protocol extensions requires the use of more than one new record
type. Specifically: each document detailing a new Security related
or a protocol extension requires the use of more than one new record
type. Specifically, each document detailing a new security-related
RR type should include the following information:
* The format of the new RR type, both "on the wire" (bit format) and
ASCII representation (for text zone files), if appropriate.
ASCII representation (for text zone files), if appropriate;
* When and in what section of a DNS query/response this new RR type
is to be included.
* when and in what section of a DNS query/response this new RR type
is to be included;
* At which level of the DNS hierarchy this new RR type is to be
* at which level of the DNS hierarchy this new RR type is to be
considered authoritative (i.e. in a zone, in a zone's superzone) and
who is authoritative to sign the new RR.
who is authoritative to sign the new RR;
4.2 Digital Signature Algorithm Implementations
@@ -391,11 +399,11 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
Security should include the following information:
* The format/encoding of the algorithm's public key for use in a
KEY Resource Record.
KEY Resource Record;
* The acceptable key size for use with the algorithm.
* the acceptable key size for use with the algorithm;
* The current known status of the algorithm (as one of REQUIRED,
* the current known status of the algorithm (as one of REQUIRED,
RECOMMENDED, or OPTIONAL).
In addition, authors are encouraged to include any necessary descrip-
@@ -405,14 +413,6 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
sions to the DNS protocol, not cryptographic research.
4.3 Refinement of Security Procedures
This set of documents includes DNS protocol operations that relate to
DNS Security specifically such as DNS secret key establishment [TKEY]
and security extensions to pre-existing or proposed DNS operations
such as dynamic update [RFC2137]. Documents that describe a new set
Rose [Page 7]
@@ -420,22 +420,28 @@ Rose [Page 7]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
of DNS message transactions, or seek to refine a current series of
transaction that make up a DNS operation SHOULD include the following
information:
4.3 Refinement of Security Procedures
This set of documents includes DNS protocol operations that specifi-
cally relate to DNS Security, such as DNS secret key establishment
[TKEY] and security extensions to pre-existing or proposed DNS opera-
tions such as dynamic update [RFC2137]. Documents that describe a
new set of DNS message transactions, or seek to refine a current
series of transactions that make up a DNS operation SHOULD include
the following information:
* The order in which the DNS messages are sent by the operation ini-
tiator and target.
tiator and target;
* The format of these DNS messages.
* the format of these DNS messages;
* Any required authentication mechanisms for each stage of the
* any required authentication mechanisms for each stage of the
operation and the required authority for that mechanism (i.e. zone,
host, or some other trusted authority such as a DNS administrator or
certificate authority).
certificate authority);
4.4 The Use of DNS Security Extensions with Other Protocols
@@ -445,10 +451,10 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
extend, the DNS security protocols. Examples of this type of docu-
ment include the use of DNS to support the Public Key Infrastructure
(PKI). It is beyond the scope of this roadmap to describe the con-
tents of this class of documents. However, if uses or extensions
tents of this class of documents. However, if uses or extensions
require the addition or modification of a DNS Resource Record type or
DNS query/response transactions, then the guidelines laid out in the
previous sections of this document SHOULD be adhered too.
previous sections of this document SHOULD be adhered to.
5. Security Considerations
@@ -465,12 +471,6 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
numerous Internet drafts that fall in one or more of the categories
of DNS Security documents mentioned above. Depending on where (and
if) these documents are on the IETF standards track, the reader may
not be able to access these documents through the RFC repositories.
For that reason, the version of the Internet drafts that were refer-
enced in this document are given below:
* SIGALG: R. Austein, P. Vixie. "DNS SIGALGOPT". <draft-ietf-
dnsind-sigalgopt-00.txt>
@@ -480,11 +480,17 @@ Rose [Page 8]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
not be able to access these documents through the RFC repositories.
For that reason, the version of the Internet drafts that were refer-
enced in this document are given below:
* SIGALG: R. Austein, P. Vixie. "DNS SIGALGOPT". <draft-ietf-
dnsind-sigalgopt-00.txt>
* CLARIFY: E. Lewis. "DNS Security Extension Clarification on Zone
Status" <draft-ietf-dnsext-zone-status-03.txt>
Status" <draft-ietf-dnsext-zone-status-05.txt>
* AUTH: B. Wellington. "Domain Name System Security (DNSSEC)
Signing Authority" <draft-ietf-dnsext-signing-auth-01.txt>
* CAIRN: D. Massey, T. Lehman, and E. Lewis. "DNSSEC Implementa-
@@ -492,11 +498,11 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
* UPDATE: B. Wellington. "Secure Domain Name System (DNS) Dynamic
Update". <draft-ietf-simple-secure-update-02.txt>
* SIZE: O. Gudmundsson. "DNSSEC and IPv6 A6 aware server/resolver
message size requirements". <draft-ietf-dnsext-message-size-01.txt>
message size requirements". <draft-ietf-dnsext-message-size-03.txt>
* GSS-TSIG: S. Kwan, P. Garg, J. Gilroy, and L. Esibov. "GSS
Algorithm for TSIG (GSS-TSIG)". <draft-ietf-dnsext-gss-tsig-01.txt>
* NO: S. A. Josefsson. "Authenticating Denial of Existence in DNS
with Minimum Disclosure". <draft-jas-dnsext-no-01.txt>
with Minimum Disclosure". <draft-ietf-dnsext-not-existing-rr-01.txt>
* OKBIT: D. Conrad. "Indicting Resolver Support of DNSSEC".
<draft-ietf-dnsext-dnssec-okbit-01.txt>
* RSA-SHA: D. Eastlake. "RSA/SHA-1 SIGs and RSA KEYs in the
@@ -504,9 +510,11 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
* ROLLOVER: M. Andrews, D. Eastlake. "Domain Name System (DNS)
Security Key Rollover" <draft-ietf-dnsopt-rollover-00.txt>.
* ADBIT: B. Wellington. "Redefinition of DNS AD bit" <draft-
ietf-dnsext-ad-is-secure-00.txt>
ietf-dnsext-ad-is-secure-01.txt>
* OPTIN: M. Kosters. "DNSSEC Opt-in for Large Zones" <draft-
kosters-dnsext-dnssec-opt-in-00.txt>
* SSH-DNS: W. Griffin. "Storing SSH Host Keys in DNS" <draft-
griffin-ssh-host-keys-in-dns-00.txt>
7. References
@@ -523,14 +531,6 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
RFC 2137, April 1997.
[RFC2539] D. Eastlake, "Storage of Diffie-Hellman Keys in the Domain
Name System (DNS)", RFC 2539, March 1999.
[RFC2538] D. Eastlake, O. Gudmundsson, "Storing Certificates in the
Domain Name System (DNS)", RFC 2538, March 1999.
[RFC2930] D. Eastlake, "Secret Key Establishment for DNS" RFC 2930,
September 2000.
@@ -540,9 +540,17 @@ Rose [Page 9]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
Name System (DNS)", RFC 2539, March 1999.
[RFC2538] D. Eastlake, O. Gudmundsson, "Storing Certificates in the
Domain Name System (DNS)", RFC 2538, March 1999.
[RFC2930] D. Eastlake, "Secret Key Establishment for DNS" RFC 2930,
September 2000.
[RFC2931] D. Eastlake "DNS Request and Transaction Signatures
(SIG(0))" RFC 2931, September 2000.
@@ -582,15 +590,7 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001
Expiration and File Name:
This draft, titled <draft-ietf-dnsext-dnssec-roadmap-01.txt> expires June 2001
Full Copyright Statement
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to
This draft, titled <draft-ietf-dnsext-dnssec-roadmap-02.txt> expires June 2001
@@ -600,9 +600,14 @@ Rose [Page 10]
INTERNET-DRAFT DNS Security Document Roadmap January 2001
INTERNET-DRAFT DNS Security Document Roadmap February 2001
Full Copyright Statement
Copyright (C) The Internet Society (1999). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
@@ -643,11 +648,6 @@ INTERNET-DRAFT DNS Security Document Roadmap January 2001

View File

@@ -1,882 +0,0 @@
Telephone Number Mapping A. Brown
Internet Draft Nortel Networks
Document: <draft-ietf-enum-operation-01.txt> Greg Vaudreuil
Lucent Technologies
October 27, 2000
ENUM Service Specific Provisioning:
Principles of Operation
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [1].
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.
1. Abstract
This document outlines the principles for the operation of a
telephone number directory service. This service provides for the
resolution of telephone numbers into Internet domain name addresses
and service specific directory discovery.
Vaudreuil Expires March 2001 1
ENUM Operations Auguest 18, 2000
Table of Contents
1. Abstract........................................................1
2. Introduction....................................................2
3. Scope...........................................................2
4. Overview........................................................3
4.1 Relationship with Dynamic Services.............................3
4.2 Number Portability.............................................4
5. The ENUM Service................................................4
5.1 First Level: Determining the Delegated Authority...............4
5.2 Second Level: Determining the Service Registrar................5
5.3 Third Level: Retrieving Resource records.......................6
5.4 Service-Specific Queries.......................................6
6. Interesting Numbering Topologies...............................7
6.1 Subaddressing..................................................7
6.2 Default and Range-based Service Records........................8
7 Illustrative System Examples.....................................9
7.1 Example: Hypothetical Reachme Service..........................9
7.2 Example: SIP Call Setup Service Request.......................10
8. Security Considerations........................................11
9. References.....................................................12
10. Acknowledgments...............................................12
11. Author's Addresses............................................12
12. Full Copyright Statement......................................13
Appendix: changes from draft-ietf-enum-operations-00.txt..........14
2. Introduction
This document outlines the principles for the operation of a
telephone number directory service. This service provides for the
resolution of telephone numbers into the address of a service
specific directory or where applicable for a given service, directly
into a service-specific endpoint addresses.
This directory service uses the algorithms and methods described in
RFC 2916.
Please send comments on this document to the ENUM working group.
3. Scope
This document defines the architecture and mechanics necessary to
implement a telephone number-based Internet directory system. This
solution enables an extensible set of services to be provided for a
given telephone number. Example services may include IP telephony,
store and forward or real-time Internet Fax, VPIM voice messaging,
Internet paging, geographic phone location, and many others. Each
service is to be separately defined and identified using a unique,
registered service identifier.
This document does not specify the particulars of any telephone
number-based service. In particular, it does not describe how phone
calls are placed, routed, or terminated or how voice, fax, pager, or
email messages are routed.
Vaudreuil Expires January 2001 2
ENUM Operations Auguest 18, 2000
4. Overview
This telephone number-based directory system implements a four-level
information model, the first two constituting the ENUM service
itself. This model is based on analysis of pre-existing
administrative structures, generalized service requirements, and the
capabilities of candidate protocols.
The mechanics of the ENUM service are specified in [ENUM]
The first level is the mapping of the telephone number delegation
tree to the authority to which the number has been delegated.
Conceptually, this delegated authority knows nothing about service-
specific information associated with the telephone number but can
provide a reference to the appropriate entity that does know the
specific information.
The second is the delegation from the authority to which the
telephone number has been delegated to the service registrar. The
registrar is conceptually responsible for maintaining the set of
service records for a given telephone number. Where this services
registrar is different from the delegated authority, a query
redirection from the delegated authority to the name server of the
service registrar for a given telephone number is necessary. Because
there may be multiple service providers for a given telephone
number, conceptually this registrar of services assumes a role of
managing service registrations and arbitrating conflicts between
service providers.
The third level is the set of service records themselves. The
service records indicate which of several services may be available
for a given telephone number. Multiple records indicating redundant
or competitive service providers may be provided. The set of records
may be provided or modified by any number of service providers. The
ENUM service defines these records to be NAPTR records yielding a
valid URL for a potentially useful service. It is up to the client
initiating the service request to sort through the set of NAPTR
records to determine which services are appropriate for the intended
action.
If necessary, an additional service-specific level of information
can be provided by the service provider itself. This level provides
specific attributes including any necessary attributes to place a
call, route a message, validate capabilities, or other data
necessary for that service that are known only by the provider of
that specific service.
4.1 Relationship with Dynamic Services
ED Note: Text requested discussing FAST UPDATE VS SLOW UPDATE. WG
decided only slow update is in scope for ENUM. Discuss timing
considerations for propagation of changed records at various levels.
Illustrate how time-of-day services should be provided at the
service-specific level.
The telephone number delegation information changes infrequently.
However, when a change to this data is made, the information must be
Vaudreuil Expires January 2001 3
ENUM Operations Auguest 18, 2000
rapidly propagated through the directory system. Inconsistencies
between the authoritative data and cached data may result in loss of
service, misrouting of communications, and/or service loops. An
effective ENUM service requires that DNS time-to-live fields be set
to an appropriate value consistent with the telephone number
reassignment policies
4.2 Number Portability
The concept of number portability generally refers to the ability of
a subscriber to change service providers, service types, or
locations without changing their telephone number. For a full
discussion of number portability, see [portability]. In support of
number portability, the ENUM service provides mechanism at the three
conceptual levels of the ENUM service.
1. If the number has been redelegated to another authority, the
telephone number can be redelegated in the ENUM service to that
authority by changing the name server "NS" records to point to the
new authority. This may be the case where numbers are redelegated
from the incumbent service provider to another or to a portability
authority. The immediately higher delegated authority coordinates
the transfer.
2. The service registrar may be reassigned. This may be the case
where an individual or corporation changes telephony service
providers and wishes that telephony service provider to also
provide service registrar functions. Assuming the delegated
authority and service registrar are separate entities, the DNAME
or CNAME redirection records pointing to the previous service
registrar would be changed to point to the new service registrar.
The appropriate service specific NAPTR records would be recreated
by the new service registrar and the delegated authority would
coordinate the transfer from one registrar to the other.
3. If a specific service for a given telephone number was changed
from one provider to another, such as switching telephone
answering / voice messaging providers, the NATPR record indicating
the specific service would change. The service registrar would
coordinate the deletion of the record for the previous service
provider and the insertion of a record for the new service
provider.
It is anticipated that in the early stages of an ENUM deployment,
the delegated authority and the service registrar may be the same
entity.
5. The ENUM Service
5.1 First Level: Determining the Delegated Authority
The first level is the mapping of an E.164-formatted international
telecommunication number into the identity of the service registrar
for that number. This may or may not involve more than one referral
in DNS. From the client's perspective, this level is transparent,
bundled within the query for the service-specific resource records
stored at the second level.
Vaudreuil Expires January 2001 4
ENUM Operations Auguest 18, 2000
The delegation of telephone numbers from the root authority (the
ITU) down to individuals is a well-established system that can be
utilized. These telephone number registrars have a trusted
relationship with their delegated carriers or subsidiary registrars;
a valuable asset to ensure protection against various attacks. Note
that in this model, the delegation of telephone number blocks or
individual numbers to a corporation or to an individual can be
administratively and technically modeled as a subdelegation to
another carrier. With that additional information publicly
registered, the mapping between telephone numbers and these domain
names can be provided by any neutral entity. The delegated
authority, subdelegated authority, or individual may arrange to have
a third-party (e.g., a service provider) list their information. In
this case the service provider's domain would be returned in the
ENUM query.
The Internet Domain Name System provides an ideal technology for the
first-level directory due to its hierarchical structure, fast
connectionless queries, and distributed administrative model.
Earlier experimentation with the TPC.INT remote printing experiment
has shown how the hierarchical assignment of telephone numbers can
be mapped directly to the hierarchy of domains within the DNS. The
ENUM directory uses that approach to map any arbitrary telephone
number into a single domain name.
ITU standard E.164 defines the structure of the public telephone
number as follows: country code, followed by nationally significant
part, followed by subaddress. The country code may be from one to
three digits, and the total length may be up to 15 digits. The
nationally-significant portion may be arbitrarily divided on any
number boundary. In many countries numbering plans, the divisions
are not uniform, that is, the "area codes" or "city codes" may be of
varying lengths within a single country and the total number of
digits may be variable. Where supported by the relevant service, an
optional subaddress of up to four digits may be utilized to
designate an extension telephone number. Note that while sub-
addressing is not well supported in GSTN calling, it is more widely
supported for voice messaging. It is important to note that the
national long-distance access or international dialing prefix
sequence is not part of the canonical E.164 number.
Within this delegation flexibility, it is always the case that the
delegation of authority is always done left-to-right. With this
assumption, a numbering tree can be built on a digit-by-digit basis
that can represent any arbitrary hierarchical structure. DNS
permits the delegation of authority on arbitrary boundaries such
that a delegation to country code "1", "44", and "972" can all
coexist under a single numbering plan root. The same applies for
"service selectors", "area codes", "city codes", "line number", or
"additional address information " within numbering plans.
5.2 Second Level: Determining the Service Registrar
In the event that the designated authority is not the same as the
service registrar, the DNAME and CNAME records provide the
redirection from the designated authority to the service registrar.
The DNAME provides a means for reforming and re-issuing a query for
a "non-terminal" domain name. As is standard for compliant DNS
Vaudreuil Expires January 2001 5
ENUM Operations Auguest 18, 2000
resolver libraries, clients must support the CNAME record type.
Servers that provide for substitution MAY support the DNAME record
to provide redirection for an entire telephone number range as a DNS
subtree. These servers MUST provide synthesized CNAME records for
the proper operation of older resolver libraries that have not been
extended to understand DNAME. Servers that redirect queries on a
per-telephone number basis MUST support CNAMES.
From the client's perspective, this level may be transparent based
on the capabilities of the resolver library in use. The client
(with the help of a suitable DNS library) must be able interpret
returned CNAME and should be able to resolve DNAME records into a
new domain name. The new domain name MUST be used to continue the
query for the requested service records.
It is important to ensure that DNS configurations provide only one
path from the e164.arpa tree to a single DNS leaf-node entry. If
multiple paths point to the same node, the substitution string
provided in the NAPTR may provide unintended results. In
particular, substitution expressions which use the original
telephone number string may result in different URI's depending upon
which number was used to initiate the ENUM query.
5.3 Third Level: Retrieving Resource records.
The third level is the request for NAPTR RRs to discover the URL of
the appropriate service-specific directory such as an LDAP directory
server, H.323 gatekeeper, or specific endpoint addresses.
The service registrar is responsible for ensuring that multiple
services may be provided on behalf of a single telephone number,
potentially by different service providers. This function includes
an arbiter function to ensure that there is a deterministic instance
of any given service assigned to a single telephone number. The
service-specific directory locator function is a new service modeled
upon existing telcoservice provisioning models. Long-distance
carrier selection within the United States is one well-known example
of a service-specific registration requiring an arbiter function
within the current network.
5.4 Service-Specific Queries
An additional level of query may be used to a service-specific
directory for service-specific information. As indicated in the
URI, such a query may include a SIP query to a designated gatekeeper
or an LDAP query to a designated directory server. This level is
specific to the service and is to be described in service-specific
documents. The service-specific directory is expected to be
dynamic. It is important that as little coordination as possible be
required between the directories of innovative and potentially
competing service-specific providers.
Vaudreuil Expires January 2001 6
ENUM Operations Auguest 18, 2000
6. Interesting Numbering Topologies
The following numbering uses require special consideration in the
provision and use of ENUM services.
6.1 Subaddressing
The E.164 standard provides for subaddressing through "additional
information" within the 16 digits of an E.164 number. This
information is passed through many telecommunications networks to be
used by terminal equipment to select between alternate services or
terminal devices. The subaddress digits are not processed by the
switching system and are not used by intermediate processes to
select services or route calls. In many cases, the network
numbering infrastructure may be unaware of the existence or use of
subaddressing by a given endpoint. Within ENUM, subaddressing may be
supported in two ways. The service registrar may explicitly
provision NAPTR records for each subaddress, or the service
registrar may provision default records for a range of subaddresses.
Using common DNS server implementations, the registrar may provision
default records for a block of subaddresses. A combination of
explicit entries and default entries may be provided in common DNS
server implementations using a longest-match algorithm. It is
important to note that if a NAPTR or any other RR is provisioned for
a subaddress, then all NAPTR records that are useful for that sub-
address must also be provisioned.
It is also important to note that numbers with optional subaddresses
may be queried without the subaddress component. For example, it
may be useful to dial an address when placing a PSTN telephone call.
The telephone number may terminate on an automated attendant
application which can prompt for the appropriate internal extension.
However, when placing a SIP call using IP telephony, the address
plus the subaddress may be queried.
The following set of records for company.com illustrate one
configuration where a PSTN caller will be directed to the automated
attendant application whether they dial the number or the number
plus a subaddress, and whether the subaddress is explicitly
provisioned or not. Calling using SIP to the explicitly provisioned
subaddress will result in a direct call to the intended recipient.
Example:
1.2.3.4.5.6.7.8.9.e164.arpa
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654321!" .
IN NAPTR 10 10 "u" "sip+E2U" "!+(.*)!sip:AA@company.com!" .
*.1.2.3.4.5.6.7.8.9.e164.arpa
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654321!" .
IN NAPTR 10 10 "u" "sip+E2U" "!+(.*)!sip:AA@company.com!" .
1.0.1.1.2.3.4.5.6.7.8.9.e164.arpa
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:joe@company.com!" .
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654321!" .
Vaudreuil Expires January 2001 7
ENUM Operations Auguest 18, 2000
6.2 Default and Range-based Service Records
It is envisioned that a corporation or service provider not subject
to number portability may wish to maintain a set of default NAPTR
records for all E.164 telephone numbers within a delegation block.
Similar to subaddressing, a service registrar may provision a set of
NAPTR records for a set of E.164 numbers with similar service
requirements.
Example:
*.3.4.5.6.7.8.9.SvcReg.company.com
IN NAPTR 102 10 "u" "tel+E2U" "!+(.*)!Tel:+\1" .
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:AA@company.com!" .
IN NAPTR 10 10 "U" "mailto+E2U" \
"!+(.*)!mailto:+\1@company.com!" .
1.0.3.4.5.6.7.8.9.SvcReg.company.com
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654310!" .
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:AA@company.com!" .
2.2.3.4.5.6.7.8.9.SvcReg.company.com
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654322!" .
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:joe@company.com!" .
IN NAPTR 10 10 "U" "mailto+E2U" \
"!^.*$!tel:+987654322@company.com!" .
In this example, mail sent to a number within the 100's block that
does not have an explicit entry will be sent to tel#@company.com.
Mail is not accepted at the automated attendant number as indicted
by the lack of a mailto service record. Because extension 22 has an
explicit record, it must also have an explicit mailto: URL in a
NAPTR record.
Vaudreuil Expires January 2001 8
ENUM Operations Auguest 18, 2000
7 Illustrative System Examples
7.1 Example: Hypothetical Reachme Service
The following hypothetical service enables an end-user to discover
the various means by which she can reach a recipient represented by
their corporate telephone number +1 613-555-1212 using the
hypothetical "reachme" service. This service is hosted by directly
by the recipient's corporation.
The telephone number is transformed into a domain name form to be
used in a DNS query.
2.1.2.1.5.5.5.6.1.3.1.e164.arpa
Sample configuration file for the top level delegations from ITU:
1.e164.arpa. IN NS ns.NANP.phone.net. ;for NANP
3.3.e164.arpa. IN NS ns.FR.phone.net. ; for France
2.7.9.e164.arpa. IN NS ns.il.phone.net. ; for Israel
Sample configuration file for numbers delegated from the NANP node
in the DNS tree:
5.5.5.3.1.6.1.e164.arpa. IN NS ns.ServiceProviderA.net.
;for +1 613 555 XXXX
In this example, ServiceProviderA.net is the authority to which the
telephone number has been delegated. ServiceProviderA.net provides
a non-terminal redirection pointer to Zcorporation, the designated
service registrar for the block of 100 numbers +1 613 555 12XX. The
configuration for this block of numbers is:
2.1.5.5.5.3.1.6.1.e164.arpa.
DNAME 2.1.5.5.3.1.6.1.Zcorporation.com.
Zcorporation provides the following service specific record for all
telephone numbers within it's 100 number block:
*.2.1.5.5.5.3.1.6.1.Zcorporation.com.
IN NAPTR 100 10 "u" "ldap+E2U"\
"$!ldap://ldap1.Zcorporation.com/cn=\1!" .
Assuming the resolver is using non-extended DNS, the query using
telephone number +1 613 555 1212 for the _reachme service is as
follows:
QueryType: NAPTR
QueryName: _ 2.1.2.1.5.5.5.3.1.6.1.e164.arpa.
Response:
IN CNAME 2.1.2.1.5.5.5.3.1.6.1.Zcorporation.com
IN NAPTR 10 10 "u" "Reachme+E2U" \
"!LDAP:\\ldap1.zcorporation.com\cn=\1!" .
The client can then apply the regular expression to yield an LDAP
URI of LDAP:\\ldap1.zcorporation.com\cn=16135551212 and then use
LDAP with the reachme schema to determine the set of communications
technologies available for +1 613 555 1212.
Vaudreuil Expires January 2001 9
ENUM Operations Auguest 18, 2000
7.2 Example: SIP Call Setup Service Request
This example provides resolution of a telephone number to the
identifier for the SIP gatekeeper designated to support real-time
calling (Sipphonecall) to 972 555 1313. The telephone number is
part of a block of ported telephone numbers that have been ported
out of the donor carriers block to another carrier.
The telephone number is transformed into a domain name form to be
used in a DNS query.
Sample configuration file for the top level delegations from ITU:
1.e164.arpa. IN NS ns.NANP.phone.net. ;for NANP
3.3.e164.arpa. IN NS ns.FR.phone.net. ; for France
2.7.9.e164.arpa. IN NS ns.il.phone.net. ; for Israel
Sample DNS configuration file for the ported number block serviced
by the 972 555 number portability authority delegated from the NANP
node in the DNS tree:
5.5.5.2.7.9.1.e164.arpa. IN NS ns.972555Port.NANP.phone.net.
;for 972 555
The number portability authority manages the delegation on a per-
telephone number basis. Logically, the ns.972555Port.NANP.phone.net
has the following record for the telephone number.
3.1.3.1.5.5.5.2.7.9.1.e164.arpa. IN NS ns.ServiceProviderB.net.
;for 972 555 1313
ServiceProviderB provides service registrar functions directly for
the telephone number and hosts the service records directly without
using a DNAME record. The following configuration entry is provided
for +1 972 555 1313.
3.1.3.1.5.5.2.7.9.1.ServiceProviderB.net.
IN NAPTR 10 10 "u" "sip+E2U"\
"!^.*$!sip:19725551313@ServiceProviderB.net!" .
The DNS Query and response using telephone number +1 972 555 1313:
QueryType: NAPTR
QueryName: 3.1.3.1.5.5.5.2.7.9.1.e164.arpa
Result:
IN NAPTR 10 10 "u" "sip+E2U" \
"!^.*$!sip:19725551313@ServiceProviderB.net!" .
The client can now use the SIP protocols to contact the SIP gateway
to initiate a phone call.
Vaudreuil Expires January 2001 10
ENUM Operations Auguest 18, 2000
8. Security Considerations
The following are known security issues taken into consideration in
the definition of this directory service.
1. Service provider customer information is very sensitive,
especially in this time of local phone competition. Service
providers require the maximum flexibility to protect this data.
2. Registration of a domain name for the telephone numbers
delegated to another carrier may result in messages being
misdirected to the wrong carrier. As subdelegations are
implemented, the risk that phone numbers delegated to one
enterprise may be incorrectly pointed at another will increase.
3. Service providers operate in a regulated environment where
certain information about subscribers must not be disclosed.
Telephony services and Voice Messaging are subject to caller-ID
blocking restrictions, restrictions normally enforced in the
telephony network. No such protection is available on the
Internet. The protection of this data is essential, but is up
to the individual service providers to not disclose this
information outside of their control.
Vaudreuil Expires January 2001 11
ENUM Operations Auguest 18, 2000
9. References
[DNS1] Mockapetris, P., "Domain names - implementation and
specification", RFC1035, Nov 1987.
[DNS2] Mockapetris, P., "Domain names - concepts and facilities",
RFC 1034, Nov 1987.
[SRV] Arnt Gulbrandsen, Paul Vixie, Levon Esibov, "A DNS RR for
specifying the location of services (DNS SRV)", Work in Progress
[E164] ITU, "CCITT Recommendation E.164 (1991), Telephone Network
and ISDN Operation, Numbering, Routing and Mobile Service -
Numbering Plan for the ISDN Era."
[TPC1] Malamud, Carl, Rose, Marshall, "Principles of Operation for
the TPC.INT Subdomain: Remote Printing -- Technical Procedures", RFC
1530, October 1993.
[VPIM2] Vaudreuil, Greg, Parsons, Glen, "Voice Profile for Internet
Mail, Version 2", RFC 2421, September 1998.
[SRV] Gulbrandsen, A., Vixie, P., "A DNS RR for specifying the
location of services (DNS SRV)", RFC 2052, October 1996.
[REQ] Brown, Anne, "ENUM Requirements", work-in-progress, November
1999
[ENUM] Faltstrom, Patrick, "E.164 number and DNS", RFC 2916,
September 2000.
[DNAME]
[NAPTR] M. Mealling, R. Daniel _The Naming Authority Pointer (NAPTR)
DNS Resource Record_, RFC 2915, September 2000.
[Portability]
10. Acknowledgments
11. Author's Addresses
Anne R. Brown
Nortel Networks
P.O. Box 3511, Station C
Ottawa, ON K1Y 4H7
Canada
Phone: +1-613-765-5274
Fax: +1-613-763-2697
Email: ARBrown@NortelNetworks.com
Gregory M. Vaudreuil
Lucent Technologies,
Communications Application Group
17080 Dallas Parkway
Dallas, TX 75248-1905
United States
Phone/Fax: +1-972-733-2722
Email: GregV@IEEE.org
Vaudreuil Expires January 2001 12
ENUM Operations Auguest 18, 2000
12. Full Copyright Statement
"Copyright (C) The Internet Society (2000). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into
Vaudreuil Expires January 2001 13
ENUM Operations Auguest 18, 2000
Appendix: changes from draft-ietf-enum-operations-00.txt
o Discussion of interesting numbering topologies was added
o Retrieval of NAPTR records are now described in a separate step
from the determination of a service registrar.
o A new example was created to illustrate ENUM using sub-addressing.
Vaudreuil Expires January 2001 14

View File

@@ -0,0 +1,945 @@
Telephone Number Mapping A. Brown
Internet Draft Nortel Networks
Document: <draft-ietf-enum-operation-02.txt> Greg Vaudreuil
Lucent Technologies
February 23, 2001
ENUM Service Reference Model
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [1].
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.
1. Abstract
This document outlines the principles for the operation of a
telephone number directory service. This service provides for the
resolution of telephone numbers into Internet domain name addresses
and service specific directory discovery.
Brown, Vaudreuil Expires August 2001 1
ENUM Reference Model February 23, 2001
Table of Contents
1. Abstract........................................................1
2. Introduction....................................................2
3. Scope...........................................................2
4. Overview........................................................4
4.1 Relationship with Dynamic Services.............................4
4.2 Number Portability.............................................5
5. The ENUM Service................................................5
5.1 First Tier: Determining the Service Registrar..................5
5.2 Second Tier: Retrieving Resource records.......................6
5.3 Third Tier: Service-Specific Queries...........................6
6. Interesting Numbering Topologies...............................8
6.1 Sub-addressing.................................................8
6.2 Default and Range-based Service Records........................9
6.3 Permissive dialing for dialing plan transitions...............9
7 Illustrative System Examples....................................10
7.1 Example: Hypothetical Reachme Service.........................10
7.2 Example: SIP Call Setup Service Request.......................11
8. Security Considerations........................................12
9. References.....................................................13
10. Acknowledgments...............................................13
11. Author's Addresses............................................13
12. Full Copyright Statement......................................14
Appendix:.........................................................15
Changes from draft-ietf-enum-operations-00.txt....................15
Changes from draft-ietf-enum-operations-01.txt....................15
2. Introduction
This document outlines the principles for the operation of a
telephone number directory service. This service provides for the
resolution of telephone numbers into the address of a service
specific directory or where applicable for a given service, directly
into a service-specific endpoint addresses.
This directory service uses the algorithms and methods described in
RFC 2916.
Please send comments on this document to the ENUM working group.
3. Scope
This document defines the reference architecture behind the ENUM
protocols necessary to implement a telephone number-based Internet
directory system. This solution enables an extensible set of
services to be provided for a given telephone number. Example
services may include IP telephony, store and forward or real-time
Internet Fax, VPIM voice messaging, Internet paging, geographic
phone location, and many others. Each service is to be separately
defined and identified using a unique, registered service
identifier.
Brown, Vaudreuil Expires August 2001 2
ENUM Reference Model February 23, 2001
This document does not specify the particulars of any telephone
number-based service. In particular, it does not describe how phone
calls are placed, routed, or terminated or how voice, fax, pager, or
email messages are routed.
Brown, Vaudreuil Expires August 2001 3
ENUM Reference Model February 23, 2001
4. Overview
This telephone number-based directory system implements a three-tier
information model; the first two constituting the ENUM service.
This abstract model is based on analysis of pre-existing
administrative structures, generalized service requirements, and the
capabilities of candidate protocols. This model does not itself
specify an administrative model, but provides a reference to guide
implementers or conforming clients and servers.
The mechanics of the ENUM service are specified in [ENUM].
The first tier is the mapping of the telephone number delegation
tree to the service registrar. Conceptually, this delegated
authority knows nothing about service-specific information
associated with the telephone number but provides a reference to
the service registrar that does know the specific information. Where
this services registrar is different from the delegated authority, a
query redirection from the delegated authority to the name server of
the service registrar for a given telephone number is necessary.
The second tier is the set of service records themselves. The
service records indicate which of several services may be available
for a given telephone number. Multiple records indicating redundant
or competitive service providers may be provided. The set of records
may be provided or modified by any number of service providers. The
ENUM service defines these records to be NAPTR records yielding a
valid URL for a potentially useful service. It is up to the client
initiating the service request to sort through the set of NAPTR
records to determine which services are appropriate for the intended
action.
The service registrar is conceptually responsible for maintaining
the set of service records for a given telephone number. Because
there may be multiple service providers for a given telephone
number, conceptually this registrar of services assumes a role of
managing service registrations and arbitrating conflicts between
service providers.
If necessary, an additional service-specific tier of information can
be provided by the service provider itself. This tier provides
specific attributes including any necessary attributes to place a
call, route a message, validate capabilities, or other data
necessary for that service that are known only by the provider of
that specific service.
4.1 Relationship with Dynamic Services
The telephone number delegation information changes infrequently.
However, when a change to this data is made, the information must be
rapidly propagated through the directory system. Inconsistencies
between the authoritative data and cached data may result in loss of
service, misrouting of communications, and/or service loops. An
effective ENUM service requires that DNS time-to-live fields be set
to an appropriate value consistent with the telephone number
reassignment policies and service record update intervals.
Use of the ENUM system to implement time-of-day and other highly
dynamic services is discouraged. Where such a service is desired,
Brown, Vaudreuil Expires August 2001 4
ENUM Reference Model February 23, 2001
it is recommended that itself be implemented as part of a service
indicated by the service records.
4.2 Number Portability
The concept of number portability generally refers to the ability of
a subscriber to change service providers, service types, or
locations without changing their telephone number. For a full
discussion of number portability, see [PORT]. In support of number
portability, the ENUM service provides mechanism at the three
conceptual tiers of the ENUM service.
1. If the telephone number has been re-delegated to another
authority, and that authority also provides the Tier-1 ENUM
service, the telephone number can be re-delegated in the ENUM
service by changing the name server "NS" records to point to the
new authority. This may be the case where numbers are re-
delegated from the incumbent service provider to another or to a
portability authority. The immediately higher delegated authority
coordinates the transfer.
2. The service registrar may be reassigned. This may be the case
where an individual or corporation changes telephony service
providers and wishes that telephony service provider to also
provide service registrar functions. The new service registrar
would recreate the appropriate service specific NAPTR records and
the delegated authority would coordinate the transfer from one
registrar to the other.
3. If a specific service for a given telephone number was changed
from one provider to another, such as switching telephone
answering / voice messaging providers, the NATPR record indicating
the specific service would change. The service registrar would
coordinate the deletion of the record for the previous service
provider and the insertion of a record for the new service
provider.
It is anticipated that in the early stages of an ENUM deployment,
the delegated authority and the service registrar may be the same
entity.
5. The ENUM Service
5.1 First Tier: Determining the Service Registrar
The first tier is the mapping of an E.164-formatted international
telecommunication number into the identity of the service registrar
for that number. This may or may not involve more than one referral
in DNS.
The delegation of telephone numbers from the root authority (the
ITU) down to individuals is a well-established system. While there
are differing Tier-1 administrative models, to a client they each
aim to represent in a single tree the trusted relationship between
the delegated carriers and subsidiary registrars; a necessary
precondition to ensure protection against various attacks. The
delegated authority, sub-delegated authority, or individual may
arrange to have a third-party (e.g., a service provider) list their
Brown, Vaudreuil Expires August 2001 5
ENUM Reference Model February 23, 2001
information. In this case the service provider's domain would be
returned in the ENUM query.
The Internet Domain Name System provides an ideal technology for the
first-tier directory due to its hierarchical structure, fast
connectionless queries, and distributed administrative model.
Earlier experimentation with the TPC.INT remote printing experiment
has shown how the hierarchical assignment of telephone numbers can
be mapped directly to the hierarchy of domains within the DNS. The
ENUM directory uses that approach to map any arbitrary telephone
number into a single domain name.
ITU standard E.164 defines the structure of the public telephone
number as follows: country code, followed by nationally significant
part, followed by sub-address. The country code may be from one to
three digits, and the total length may be up to 15 digits. The
nationally significant portion may be arbitrarily divided on any
number boundary. In many countries numbering plans, the divisions
are not uniform, that is, the "area codes" or "city codes" may be of
varying lengths within a single country and the total number of
digits may be variable. Where supported by the relevant service, an
optional sub-address of up to four digits may be utilized to
designate an extension telephone number. Note that while sub-
addressing is not well supported in GSTN calling, it is more widely
supported for voice messaging. It is important to note that the
national long-distance access or international dialing prefix
sequence is not part of the canonical E.164 number.
Within this delegation flexibility, it is always the case that the
delegation of authority is always done left-to-right. With this
assumption, a numbering tree can be built on a digit-by-digit basis
that can represent any arbitrary hierarchical structure. DNS
permits the delegation of authority on arbitrary boundaries such
that a delegation to country code "1", "44", and "972" can all
coexist under a single numbering plan root. The same applies for
"service selectors", "area codes", "city codes", "line number", or
"additional address information " within numbering plans.
5.2 Second Tier: Retrieving Resource records.
The second tier is the request for NAPTR RRs to discover the URL of
the appropriate service-specific directory such as an LDAP directory
server, H.323 gatekeeper, or specific endpoint addresses.
The service registrar is responsible for ensuring that multiple
services may be provided on behalf of a single telephone number,
potentially by different service providers. This function includes
an arbiter function to ensure that there is a deterministic instance
of any given service assigned to a single telephone number. The
service-specific directory locator function is a new service modeled
upon existing telco service provisioning models. Long-distance
carrier selection within the United States is one well-known example
of a service-specific registration requiring an arbiter function
within the current network.
5.3 Third Tier: Service-Specific Queries
An additional tier of query may be used to a service-specific
directory for service-specific information. As indicated in the
Brown, Vaudreuil Expires August 2001 6
ENUM Reference Model February 23, 2001
URI, such a query may include a SIP query to a designated gatekeeper
or an LDAP query to a designated directory server. This tier is
specific to the service and is to be described in service-specific
documents. The service-specific directory is expected to be
dynamic. It is important that as little coordination as possible be
required between the directories of innovative and potentially
competing service-specific providers.
Brown, Vaudreuil Expires August 2001 7
ENUM Reference Model February 23, 2001
6. Interesting Numbering Topologies
The following numbering uses require special consideration in the
provision and use of ENUM services.
6.1 Sub-addressing
The E.164 standard provides for sub-addressing through "additional
information" within the 16 digits of an E.164 number. This
information is passed through many telecommunications networks to be
used by terminal equipment to select between alternate services or
terminal devices. The sub-address digits are not processed by the
switching system and are not used by intermediate processes to
select services or route calls. In many cases, the network-
numbering infrastructure may be unaware of the existence or use of
sub-addressing by a given endpoint. Within ENUM, sub-addressing may
be supported in two ways. The service registrar may explicitly
provision NAPTR records for each sub-address, or the service
registrar may provision default records for a range of sub-
addresses.
Using common DNS server implementations, the registrar may provision
default records for a block of sub-addresses. A combination of
explicit entries and default entries may be provided in common DNS
server implementations using a longest-match algorithm. It is
important to note that if a NAPTR or any other RR is provisioned for
a sub-address, then all NAPTR records that are useful for that sub-
address must also be provisioned.
It is also important to note that numbers with optional sub-
addresses may be queried without the sub-address component. For
example, it may be useful to dial an address when placing a PSTN
telephone call. The telephone number may terminate on an automated
attendant application that can prompt for the appropriate internal
extension. However, when placing a SIP call using IP telephony, the
address plus the sub-address may be queried.
The following set of records for company.com illustrate one
configuration where a PSTN caller will be directed to the automated
attendant application whether they dial the number or the number
plus a sub-address, and whether the sub-address is explicitly
provisioned or not. Calling using SIP to the explicitly provisioned
sub-address will result in a direct call to the intended recipient.
Example:
1.2.3.4.5.6.7.8.9.e164.arpa
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654321!" .
IN NAPTR 10 10 "u" "sip+E2U" "!+(.*)!sip:AA@company.com!" .
*.1.2.3.4.5.6.7.8.9.e164.arpa
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654321!" .
IN NAPTR 10 10 "u" "sip+E2U" "!+(.*)!sip:AA@company.com!" .
1.0.1.1.2.3.4.5.6.7.8.9.e164.arpa
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:joe@company.com!" .
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654321!" .
Brown, Vaudreuil Expires August 2001 8
ENUM Reference Model February 23, 2001
6.2 Default and Range-based Service Records
It is envisioned that a corporation or service provider not subject
to number portability may wish to maintain a set of default NAPTR
records for all E.164 telephone numbers within a delegation block.
Similar to sub-addressing, a service registrar may provision a set
of NAPTR records for a set of E.164 numbers with similar service
requirements.
Example:
*.3.4.5.6.7.8.9.164.arpa
IN NAPTR 102 10 "u" "tel+E2U" "!+(.*)!Tel:+\1" .
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:AA@company.com!" .
IN NAPTR 10 10 "U" "mailto+E2U" \
"!+(.*)!mailto:+\1@company.com!" .
1.0.3.4.5.6.7.8.9.164.arpa
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654310!" .
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:AA@company.com!" .
2.2.3.4.5.6.7.8.9.164.arpa
IN NAPTR 102 10 "u" "tel+E2U" "!^.*$!tel:+987654322!" .
IN NAPTR 10 10 "u" "sip+E2U" "!^.*$!sip:joe@company.com!" .
IN NAPTR 10 10 "U" "mailto+E2U" \
"!^.*$!tel:+987654322@company.com!" .
In this example, mail sent to the phone number +987654311 using
1.1.3.4.5.6.7.8.9.164.arpa will be sent to +987654311@company.com.
Mail is explicitly not accepted at the automated attendant number as
indicted by the lack of a mailto service record. Because extension
22 has an explicit NAPTR record for inbound calls via the tel
record, it must also have an explicit mailto: URL in a NAPTR record.
6.3 Permissive dialing for dialing plan transitions
In the real-world environment, the telephone number hierarchy is
modified as necessary to prevent number exhaustion and to facilitate
new services. These re-numberings either insert additional digits
at arbitrary parts of the previous telephone number or result in the
re-assignment of a sub-tree of numbers to a new prefix. To avoid
the operational and social disruption involved with a _flash cut_, a
practice of _permissive dialing_ has been created. Permissive
dialing enables and end-user to use either the previous or new
telephone number for a period of time. During this time, there may
be two different telephone numbers pointing to the same set of
service records, or a duplicate set of service records for the new
and previous number.
Brown, Vaudreuil Expires August 2001 9
ENUM Reference Model February 23, 2001
7 Illustrative System Examples
7.1 Example: Hypothetical Reachme Service
The following hypothetical service enables an end-user to discover
the various means by which she can reach a recipient represented by
their corporate telephone number +1 613-555-1212 using the
hypothetical "reachme" service. This service is hosted by directly
by the recipient's corporation.
The telephone number is transformed into a domain name form to be
used in a DNS query.
2.1.2.1.5.5.5.3.1.6.1.e164.arpa
Sample configuration file for the top tier delegations from ITU:
1.e164.arpa. IN NS ns.NANP.phone.net. ;for NANP
3.3.e164.arpa. IN NS ns.FR.phone.net. ; for France
2.7.9.e164.arpa. IN NS ns.il.phone.net. ; for Israel
Sample configuration file for numbers delegated from the NANP node
in the DNS tree:
5.5.5.3.1.6.1.e164.arpa. IN NS ns.Zcorporation.com.
;for +1 613 555 XXXX
Zcorporation is the designated service registrar for the block of
100 numbers +1 613 555 12XX. Zcorporation provides the following
service specific record for all telephone numbers within it's 100
number block:
*.2.1.5.5.5.3.1.6.1.e164.arpa.
IN NAPTR 100 10 "u" "ldap+E2U"\
"$!ldap://ldap1.Zcorporation.com/cn=\1!" .
Assuming the resolver is using non-extended DNS, the query using
telephone number +1 613 555 1212 for the_reachme service is as
follows:
QueryType: NAPTR
QueryName: _ 2.1.2.1.5.5.5.3.1.6.1.e164.arpa.
Response:
IN NAPTR 10 10 "u" "Reachme+E2U" \
"!LDAP:\\ldap1.zcorporation.com\cn=\1!" .
The client can then apply the regular expression to yield an LDAP
URI of LDAP:\\ldap1.zcorporation.com\cn=16135551212 and then use
LDAP with the reachme schema to determine the set of communications
technologies available for +1 613 555 1212.
Brown, Vaudreuil Expires August 2001 10
ENUM Reference Model February 23, 2001
7.2 Example: SIP Call Setup Service Request
This example provides resolution of a telephone number to the
identifier for the SIP gatekeeper designated to support real-time
calling (Sipphonecall) to 972 555 1313. The telephone number is
part of a block of ported telephone numbers that have been ported
out of the donor carriers block to another carrier.
The telephone number is transformed into a domain name form to be
used in a DNS query.
Sample configuration file for the top tier delegations from ITU:
1.e164.arpa. IN NS ns.NANP.phone.net. ;for NANP
3.3.e164.arpa. IN NS ns.FR.phone.net. ; for France
2.7.9.e164.arpa. IN NS ns.il.phone.net. ; for Israel
Sample DNS configuration file for the ported number block serviced
by the 972 555 number portability authority delegated from the NANP
node in the DNS tree:
5.5.5.2.7.9.1.e164.arpa. IN NS ns.972555Port.NANP.phone.net.
;for 972 555
The number portability authority manages the delegation on a per-
telephone number basis. Logically, the ns.972555Port.NANP.phone.net
has the following record for the telephone number.
3.1.3.1.5.5.5.2.7.9.1.e164.arpa. IN NS ns.ServiceProviderB.net.
;for 972 555 1313
ServiceProviderB provides service registrar functions directly for
the telephone number. The following configuration entry is provided
for +1 972 555 1313.
3.1.3.1.5.5.2.7.9.1.ServiceProviderB.net.
IN NAPTR 10 10 "u" "sip+E2U"\
"!^.*$!sip:19725551313@ServiceProviderB.net!" .
The DNS Query and response using telephone number +1 972 555 1313:
QueryType: NAPTR
QueryName: 3.1.3.1.5.5.5.2.7.9.1.e164.arpa
Result:
IN NAPTR 10 10 "u" "sip+E2U" \
"!^.*$!sip:19725551313@ServiceProviderB.net!" .
The client can now use the SIP protocols to contact the SIP gateway
to initiate a phone call.
Brown, Vaudreuil Expires August 2001 11
ENUM Reference Model February 23, 2001
8. Security Considerations
The following are known security issues taken into consideration in
the definition of this directory service.
1. Service provider customer information is very sensitive,
especially in this time of local phone competition. Service
providers require the maximum flexibility to protect this data.
2. Registration of a domain name for the telephone numbers
delegated to another carrier may result in messages being
misdirected to the wrong carrier. As subdelegations are
implemented, the risk that phone numbers delegated to one
enterprise may be incorrectly pointed at another will increase.
3. Service providers operate in a regulated environment where
certain information about subscribers must not be disclosed.
Telephony services and Voice Messaging are subject to caller-ID
blocking restrictions, restrictions normally enforced in the
telephony network. No such protection is available on the
Internet. The protection of this data is essential, but is up
to the individual service providers to not disclose this
information outside of their control.
Brown, Vaudreuil Expires August 2001 12
ENUM Reference Model February 23, 2001
9. References
[DNS1] Mockapetris, P., "Domain names - implementation and
specification", RFC1035, Nov 1987.
[DNS2] Mockapetris, P., "Domain names - concepts and facilities",
RFC 1034, Nov 1987.
[SRV] Arnt Gulbrandsen, Paul Vixie, Levon Esibov, "A DNS RR for
specifying the location of services (DNS SRV)", Work in Progress
[E164] ITU, "CCITT Recommendation E.164 (1991), Telephone Network
and ISDN Operation, Numbering, Routing and Mobile Service -
Numbering Plan for the ISDN Era."
[TPC1] Malamud, Carl, Rose, Marshall, "Principles of Operation for
the TPC.INT Subdomain: Remote Printing -- Technical Procedures", RFC
1530, October 1993.
[VPIM2] Vaudreuil, Greg, Parsons, Glen, "Voice Profile for Internet
Mail, Version 2", RFC 2421, September 1998.
[SRV] Gulbrandsen, A., Vixie, P., "A DNS RR for specifying the
location of services (DNS SRV)", RFC 2052, October 1996.
[REQ] Brown, Anne, "ENUM Requirements", work-in-progress, November
1999
[ENUM] Faltstrom, Patrick, "E.164 number and DNS", RFC 2916,
September 2000.
[NAPTR] M. Mealling, R. Daniel _The Naming Authority Pointer (NAPTR)
DNS Resource Record_, RFC 2915, September 2000.
[PORT] M. Foster, T. McGarry, j. Yu, _Number Portability in the
GSTN: An Overview_, Work-in-Progress, July 2000.
10. Acknowledgments
11. Author's Addresses
Anne R. Brown
Nortel Networks
P.O. Box 3511, Station C
Ottawa, ON K1Y 4H7
Canada
Phone: +1-613-765-5274
Fax: +1-613-763-2697
Email: ARBrown@NortelNetworks.com
Gregory M. Vaudreuil
Lucent Technologies,
Communications Application Group
17080 Dallas Parkway
Dallas, TX 75248-1905
United States
Phone/Fax: +1-972-733-2722
Email: GregV@IEEE.org
Brown, Vaudreuil Expires August 2001 13
ENUM Reference Model February 23, 2001
12. Full Copyright Statement
"Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into
Brown, Vaudreuil Expires August 2001 14
ENUM Reference Model February 23, 2001
Appendix:
Changes from draft-ietf-enum-operations-00.txt
o Discussion of interesting numbering topologies was added
o Retrieval of NAPTR records are now described in a separate step
from the determination of a service registrar.
o A new example was created to illustrate ENUM using sub-addressing.
Changes from draft-ietf-enum-operations-01.txt
O Changed the title to more clearly reflect the intent of the
document.
o Collapsed Level 1 and 2 into a single tier. Aligned the document
to use the _tier_ terminology.
o Added missing text for dynamic updates.
o Reworked the examples to eliminate all references to the
controversial DNAME and CNAME redirection.
o Generalized descriptions of the administrative model to avoid
exclusion of any particular tier-1 approach.
o Corrected various errors in the examples.
Brown, Vaudreuil Expires August 2001 15

View File

@@ -1,10 +1,10 @@
IDN Working Group Edmon Chung & David Leung
Internet Draft Neteka Inc.
<draft-ietf-idn-dnsii-mdnp-01.txt> August 2000
<draft-ietf-idn-dnsii-mdnp-02.txt> February 2001
DNSII Multilingual Domain Name Protocol
The DNSII Multilingual Domain Name Protocol
STATUS OF THIS MEMO
@@ -29,9 +29,21 @@ STATUS OF THIS MEMO
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
A copy of this particular draft is also archived at
http://www.dnsii.org.
Abstract
The core thinking for DNSII is that multilingual DNS requests SHOULD
be signaled within a DNS label whether by way of a binary tag or an
alphanumeric prefix, and that compatibility to legacy client
applications SHOULD be taken into concern alongside legacy server
implementations.
Besides the original specifications, four alternatives including the
use of EDNS are included for discussion purposes in this document.
Historically, the DNS is capable of handling only names within the
basic English alphanumeric character set (plus the hyphen), yet the
standards were so elegantly and openly designed that the extension of
@@ -41,30 +53,25 @@ Abstract
These adjustments will be made on both the client side and the server
side. However, DNSII works on the principal that it is preferable to
make the transition to multilingual domain names seamless and
transparent to the end-user. Which means initially the server, or
more specifically, the resolver, SHOULD take the primary
responsibility for the technical implementation of the changes
required for a multilingual Internet.
DNSII-MDNP Multilingual Domain Name Protocol August 2000
transparent to the end-user. Which means initially the server SHOULD
take the primary responsibility for the technical implementation of
the changes required for a multilingual Internet.
The DNSII protocol is designed to allow the preservation of
interoperability, consistency and simplicity of the original DNS,
while being expandable and flexible for the handling of any character
or symbol used for the naming of an Internet domain. DNSII intends
to provide a platform for the implementation of multilingual domain
names. Besides the original specifications therefore, four
alternatives are included for discussion purposes in this document.
Chung & Leung [Page 1]
DNSII-MDNP Multilingual Domain Name Protocol August 2000
This draft forms the introduction of a series of draft including
intended resolution processes and other DNSII documents.
names.
Table Of Contents
1. Introduction....................................................2
1.1 Terminology....................................................2
1.2 DNSII..........................................................2
1.2 DNSII..........................................................3
2. DNSII Protocol..................................................3
2.1 InPacket DNSII Identifier......................................3
2.2 InPacket Label Encoding Type (ILET)............................4
@@ -102,19 +109,12 @@ Table Of Contents
A number of multilingual characters are used in this document for
examples. Please select your view encoding type to UTF-8 for it to
be displayed properly.
1.2 DNSII
Many of the current proposals for a multilingual domain name system
involve working around the current ANSI based DNS. So doing either
affects the integrity of the original spirit of the DNS or does not
well address the encoding conflict issues apparent in different
character encoding schemes.
Chung & Leung [Page 2]
DNSII-MDNP Multilingual Domain Name Protocol August 2000
1.2 DNSII
The DNSII specifications takes a radically different approach: it
successfully identifies the difference between original DNS and DNSII
packets within the labels and at the same time allows the use of
@@ -165,10 +165,7 @@ Chung & Leung [Page 2]
scheme.
Chung & Leung [Page 3]
DNSII-MDNP Multilingual Domain Name Protocol August 2000
2.2 InPacket Label Encoding Type (ILET)
@@ -398,7 +395,7 @@ Chung & Leung [Page 6]
Chung & Leung [Page 7]
DNSII-MDNP Multilingual Domain Name Protocol August 2000
Although this takes away some of the benefits of keeping the local
encoding scheme which includes the issues of case folding,
canonicalization and other related concerns, it creates a system that
@@ -512,7 +509,7 @@ Chung & Leung [Page 8]
Chung & Leung [Page 9]
DNSII-MDNP Multilingual Domain Name Protocol August 2000
The OPT RR could be used not only for version control but also as a
notification for the destination server on the level of conformance
of the inquirer. This is especially beneficial when considering the
@@ -682,7 +679,7 @@ Chung & Leung [Page 11]
Chung & Leung [Page 12]
DNSII-MDNP Multilingual Domain Name Protocol August 2000
: :
/ /
+---------------------------------------------------------------+
@@ -712,7 +709,7 @@ Chung & Leung [Page 12]
http://www.dnsii.org.
8. References
[DNSII-MDNR] E. Chung, D. Leung, _DNSII Multilingual Domain Name
Resolution_, August 2000
@@ -739,10 +736,10 @@ Chung & Leung [Page 12]
Chung & Leung [Page 13]
DNSII-MDNP Multilingual Domain Name Protocol August 2000
[RFC2277] H. Alvestrand, _IETF Policy on Character Sets and
Languages_ RFC 2277, January 1998
[RFC2671] Paul Vixie, "Extension Mechanisms for DNS (EDNS0)",
August 1999, RFC 2671.
@@ -795,5 +792,3 @@ Chung & Leung [Page 13]
Chung & Leung [Page 14]

View File

@@ -1,7 +1,7 @@
IDN Working Group Edmon Chung & David Leung
Internet Draft Neteka Inc.
<draft-ietf-idn-dnsii-mdnr-00.txt> August 2000
<draft-ietf-idn-dnsii-mdnr-01.txt> February 2001
@@ -30,33 +30,37 @@ STATUS OF THIS MEMO
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
A copy of this particular draft is also archived at
http://www.dnsii.org.
Abstract
This document outlines a resolution process that forms a framework
for the resolution of multilingual domain names. Additionally, a
tunneling mechanism utilizing additional RRs is introduced for the
transition to a fully multilingual capable name space.
The Internet-Draft for DNSII-MDNP was focused purely on discussing
the ultimate packet protocol that is being sent around the Internet
for multilingual domain names. This paper complements the previous
paper by outlining the contemplated resolution process with the DNSII
protocol throughout the DNS name resolution process.
The DNSII-MDNR outlines a resolution process that forms a framework
for the resolution of multilingual domain names. Whether the DNSII
protocol is implemented exactly as specified in DNSII-MDNP is less
relevant, rather it is the idea of having a multilingual packet
identifier and the fall back process that matters. The DNSII-MDNR
successfully addresses the transitional issues at each node of the
DNS resolution process providing a clear migration path and strategy
for the deployment of a multilingual enabled DNS system. It also
outlines the conformance levels required for basic or complete
implementations for applications, resolvers and name servers.
This document also introduces a tunneling mechanism for the short-run
to transition the system through to a truly multilingual capable name
space.
Whether the DNSII protocol is implemented exactly as specified in
DNSII-MDNP is less relevant, rather it is the idea of having a
multilingual packet identifier and the fall back process that
matters. The DNSII-MDNR successfully addresses the transitional
issues at each node of the DNS resolution process providing a clear
migration path and strategy for the deployment of a multilingual
Chung & Leung [Page 1]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
enabled DNS system. It also outlines the conformance levels required
for basic or complete implementations for applications, resolvers and
name servers.
Table of Contents
1. Introduction....................................................2
@@ -103,6 +107,11 @@ Table of Contents
and "MAY" in this document are to be interpreted as described in RFC
2119 [RFC2119].
DNSII-MDNR Multilingual Domain Name Resolution August 2000
A number of multilingual characters are used in this document for
examples. Please select your view encoding type to Big-5
(Traditional Chinese) for them to be displayed properly.
@@ -110,10 +119,6 @@ Table of Contents
Chung & Leung [Page 2]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
1.2 Multilingual Domain Name Resolution
The original specifications for the DNS were designed to be open
@@ -160,15 +165,7 @@ Chung & Leung [Page 2]
Chung & Leung [Page 3]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
+---------------+
@@ -225,7 +222,6 @@ Chung & Leung [Page 3]
Chung & Leung [Page 4]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
Case folding for multilingual domain names should follow the existing
@@ -282,7 +278,6 @@ Chung & Leung [Page 4]
Eventually, an ISO 10646 UCS without transformation is desired as the
common format. The benefits of having a uniform byte length encoding
Chung & Leung [Page 5]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
far exceeds the seemingly easier transformation solution. Especially
@@ -320,7 +315,7 @@ Chung & Leung [Page 5]
| | (3) Upon the detection | |
| | of the DNSII Flag | |
| | resolver will reply | |
| | with "Format Error" | |
| | with _Format Error_ | |
| | | |
| |----------------------->| | (5) Current resolu-
| | (4) Send QNAME using | | tion process begins
@@ -339,7 +334,6 @@ Chung & Leung [Page 5]
Chung & Leung [Page 6]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
It is not feasible to have a new RR type just for DNSII because the
@@ -358,7 +352,7 @@ Chung & Leung [Page 6]
It is possible to use ACE/RACE type translations at this level,
however it is more advisable to use a truly arbitrary label such as
"-for-tunneling-only-". So doing requires only reserving one
_-for-tunneling-only-_. So doing requires only reserving one
arbitrary name while ACE/RACE creates one more arbitrary name for
each new multilingual name registered, which will eventually
contribute to the fracturing of the DNS.
@@ -396,7 +390,6 @@ Chung & Leung [Page 6]
Chung & Leung [Page 7]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
(The Additional DNSII RR Tunneled in TXT RR form)
@@ -414,7 +407,7 @@ Chung & Leung [Page 7]
+---------------------------------------------------------------+
96| t |1 0|0 0| UCS-2=1000 | 4 |
+---------------------------------------------------------------+
100|1 1| 13 |1 0|z| ILET=2 | 4 |
100|1 1| 13 |1 0|z| ILET=2 | 4 |
+---------------------------------------------------------------+
104| —Œ (U+57DF) | ªW (U+540D) |
+---------------------------------------------------------------+
@@ -453,7 +446,6 @@ Chung & Leung [Page 7]
Chung & Leung [Page 8]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
Following the example given in 3.2.1, the QNAME would be in UTF-8
@@ -491,7 +483,7 @@ Chung & Leung [Page 8]
resolution strategy for resolvers would simply be to pass along the
labels in their 8-bit format and determine the existence of the
requested name as usual. If a tunneled DNSII RR is detected, by way
of a label constituting entirely of "-for-tunneling-only-" and the
of a label constituting entirely of _-for-tunneling-only-_ and the
existence of a valid DNSII RR, the resolver should attempt to resolve
the name according to the DNSII specification and tunnel the answer
back to the inquirer.
@@ -508,9 +500,8 @@ Chung & Leung [Page 8]
Continuing on the example given in Section 3.2, suppose an A record
is requested and the IP address returned for the domain host.—ŒªW¿t™ð
Chung & Leung [Page 9]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
.tld. is 123.4.5.6, then an additional DNSII ANS RR (TXT) in the
@@ -567,9 +558,10 @@ Chung & Leung [Page 9]
necessary for all servers and applications to be switched to
multilingual capable before starting the deployment.
Chung & Leung [Page 10]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
4.1 Application Conformance Levels
The BASIC compliancy for applications would be to remove validity
@@ -622,8 +614,6 @@ Chung & Leung [Page 10]
should however prepare for the transition towards a multilingual name
space even if they do not intend to deploy it right away.
Chung & Leung [Page 11]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
@@ -680,7 +670,6 @@ Chung & Leung [Page 11]
resolution.
Chung & Leung [Page 12]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
6.1 Client/Application Resolution Strategy
@@ -689,7 +678,7 @@ Chung & Leung [Page 12]
IF RCODE = Format Error
THEN send query in UTF-8/Local Encoding AND append DNSII RR
IF RCODE = Format Error
THEN send Query in ASCII with "-for-tunneling-only-" label
THEN send Query in ASCII with _-for-tunneling-only-_ label
AND append DNSII RR
AND check for DNSII ANS RR in response
ELSE proceed and check for DNSII ANS RR in response
@@ -703,7 +692,7 @@ Chung & Leung [Page 12]
IF encounter RCODE = Format Error
THEN send query in UTF-8 AND append DNSII RR
IF RCODE = Format Error
THEN send query in ASCII with "-for-tunneling-only-"
THEN send query in ASCII with _-for-tunneling-only-_
label
AND append DNSII RR
AND check for DNSII ANS RR in response
@@ -737,7 +726,6 @@ Chung & Leung [Page 12]
ELSE use InZone DNSII mechanisms AND use 8-bit clean approach
Chung & Leung [Page 13]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
7. Security Considerations
@@ -794,8 +782,7 @@ Chung & Leung [Page 13]
Chung & Leung [Page 14]
DNSII-MDNR Multilingual Domain Name Resolution August 2000
DNSII-MDNR Multilingual Domain Name Resolution August 2000
Authors:
@@ -848,8 +835,7 @@ DNSII-MDNR Multilingual Domain Name Resolution August 2000
Chung & Leung [Page 15]

View File

@@ -1,9 +1,9 @@
Internet Draft Paul Hoffman
draft-ietf-idn-idna-00.txt IMC & VPNC
September 12, 2000 Patrik Faltstrom
Expires in six months Cisco
Internet Draft Patrik Faltstrom
draft-ietf-idn-idna-01.txt Cisco
Paul Hoffman
Expires in six months IMC & VPNC
Internationalizing Host Names In Applications (IDNA)
Internationalizing Host Names In Applications (IDNA)
Status of this Memo
@@ -20,11 +20,11 @@ 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 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.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
@@ -51,6 +51,11 @@ proposal is that only user applications be updated; no changes are
needed to the DNS protocol or any DNS servers or the resolvers on user's
computers.
This document is being discussed on the ietf-idna@mail.apps.ietf.org
mailing list. To subscribe, send a message to
ietf-idna-request@mail.apps.ietf.org with the single word "subscribe" in
the body of the message.
1.1 Design philosophy
To date, the proposals for IDN protocols have required that DNS servers
@@ -67,10 +72,10 @@ as well.
Updating all (or even a significant percentage) of the DNS servers in
the world will be difficult, to say the least. Because of this, we have
designed a protocol that requires no updating of any name servers. IDNA
still requires the updating of applications, but once a
user has updated these, she or he could immediately start using
internationalized host names. The cost of implementing IDN would thus be
much lower, and the speed of implementation will be much higher.
still requires the updating of applications, but once a user has updated
these, she or he could immediately start using internationalized host
names. The cost of implementing IDN would thus be much lower, and the
speed of implementation will be much higher.
1.2 Terminology
@@ -78,15 +83,6 @@ The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and
"MAY" in this document are to be interpreted as described in RFC 2119
[RFC2119].
1.3 IDN summary
Using the terminology in [IDNCOMP], this protocol specifies an IDN
architecture of arch-3 (just send ACE). The format is ace-1.2 (RACE),
and the method for distinguishing ACE name parts from current name parts
is ace-2.1.1 (add hopefully-unique legal tag). Because there is no
changes needed to the DNS, the transition strategy is trans-1 (always do
current plus new architecture).
2. Structural Overview
@@ -99,30 +95,36 @@ and process the inputs and outputs from the DNS.
The interfaces in IDNA can be represented pictorially as:
+------+
| User |
+------+
^
| Input and display: local interface methods
| (pen, keyboard, glowing phosphorus, ...)
+--------------- v -------------------------------+
| +-------------+ |
| | Application | | End system
| +-------------+
| ^
| | API call and return: nameprepped RACE
| v
| +----------+
| | Resolver |
| +----------+ |
+----------------^--------------------------------+
| DNS query and response: nameprepped RACE
v
+-------------+
| DNS servers |
+-------------+
+------+
| User |
+------+
^
| Input and display: local interface methods
| (pen, keyboard, glowing phosphorus, ...)
+--------------- v -------------------------------+
| +-------------+ |
| | Application | | End system
| +-------------+
| ^
| | API call and return: nameprepped ACE
| v
| +----------+
| | Resolver |
| +----------+ |
+----------------^--------------------------------+
| DNS query and response: nameprepped ACE
v
+-------------+
| DNS servers |
+-------------+
This document uses the generic term "ACE" for an ASCII-compatible
encoding. After the IDN Working Group has chosen a specific ACE, this
document will be updated to refer to just that single ACE. Until that
time, an implementor creating experimental software must choose an ACE
to use, such as RACE or LACE or DUDE.
2.1.1 Users and applications
Applications can accept host names using any character set or sets
@@ -132,56 +134,53 @@ users and applications.
An IDNA-aware application can accept and display internationalized host
names in two formats: the internationalized character set(s) supported
by the application, and in RACE [RACE] ASCII-compatible encoding.
Applications MAY allow RACE input and output, but are not encouraged to
do so except as an interface for advanced users, possibly for debugging.
RACE encoding is opaque and ugly, and should thus only be exposed to
users who absolutely need it. The optional use, especially during a
transition period, of RACE encodings in the user interface is described
in section 3. Since RACE can be rendered either as the encoded ASCII
glyphs or the proper decoded character glyphs, the rendering engine for
an application SHOULD have an option for the user to select the
preferred display; if it does, rendering the RACE SHOULD NOT be the
default.
by the application, and in an ACE. Applications MAY allow ACE input and
output, but are not encouraged to do so except as an interface for
advanced users, possibly for debugging. ACE encoding is opaque and ugly,
and should thus only be exposed to users who absolutely need it. The
optional use, especially during a transition period, of ACE encodings in
the user interface is described in section 3. Since ACE can be rendered
either as the encoded ASCII glyphs or the proper decoded character
glyphs, the rendering engine for an application SHOULD have an option
for the user to select the preferred display; if it does, rendering the
ACE SHOULD NOT be the default.
2.1.2 Applications and resolvers
Applications communicate with resolver libraries through a programming
interface (API). Typically, the IETF does not standardize APIs, although
it has for IPv6. This protocol does not specify a specific API, but
instead specifies only the input and output formats of the host names to
the resolver library.
there are non-standard APIs specified for IPv6. This protocol does not
specify a specific API, but instead specifies only the input and output
formats of the host names to the resolver library.
Before converting the name parts into RACE, the application MUST prepare
each name part as specified in [NAMEPREP]. The application MUST use RACE
ASCII-compatible encoding for the name parts that are sent to the
resolver, and will always get name parts encoded in RACE from the
resolver.
Before converting the name parts into ACE, the application MUST prepare
each name part as specified in [NAMEPREP]. The application MUST use ACE
for the name parts that are sent to the resolver, and will always get
name parts encoded in ACE from the resolver.
IDNA-aware applications MUST be able to work with both
non-internationalized host name parts (those that conform to RFC 1035
[STD13]) and internationalized host name parts. An IDNA-aware
application that is resolving a non-internationalized host name parts
MUST NOT do any preparation or conversion to RACE on any
non-internationalized name part.
non-internationalized host name parts (those that conform to [STD13] and
[STD3]) and internationalized host name parts. An IDNA-aware application
that is resolving a non-internationalized host name parts MUST NOT do
any preparation or conversion to ACE on any non-internationalized name
part.
2.1.3 Resolvers and DNS servers
An operating system might have a set of libraries for converting host
names to nameprepped RACE. The input to such a library might be in one
or more charsets that are used in applications (UTF-8 and UTF-16 are
likely candidates for almost any operating system, and script-specific
charsets are likely for localized operating systems). The output would
be either the unchanged name part (if the input already conforms to [STD
13]), or the nameprepped, RACE-encoded name part. Such a library would
help keep applications smaller.
names to nameprepped ACE. The input to such a library might be in one or
more charsets that are used in applications (UTF-8 and UTF-16 are likely
candidates for almost any operating system, and script-specific charsets
are likely for localized operating systems). The output would be either
the unchanged name part (if the input already conforms to [STD13] and
[STD3]), or the nameprepped, ACE-encoded name part.
DNS servers MUST use the RACE format for internationalized host name
DNS servers MUST use the ACE format for internationalized host name
parts.
If a signalling system which makes negotiation possible between old and
new DNS clients and servers is standardized in the future, the encoding
of the query in the DNS protocol itself can be changed from RACE to
of the query in the DNS protocol itself can be changed from ACE to
something else, such as UTF-8. The question whether or not this should
be used is, however, a separate problem and is not discussed in this
memo.
@@ -198,10 +197,10 @@ of resolution to users.
3. Name Server Considerations
It is imperative that there be only one encoding for a particular host
name. RACE is an encoding for host name parts that use characters
outside those allowed for host names [STD 13]. Thus, a primary master
name server MUST NOT contain an RACE-encoded name that decodes to a host
name that is allowed in [STD 13].
name. ACE is an encoding for host name parts that use characters outside
those allowed for host names [STD13]. Thus, a primary master name server
MUST NOT contain an ACE-encoded name that decodes to a host name that is
allowed in [STD13] and [STD3].
Name servers MUST NOT have any records with host names that contain
internationalized name parts unless those name parts have be prepared
@@ -212,7 +211,7 @@ application will ever ask for a name that is not legal in [NAMEPREP]
because requests always go through [NAMEPREP] before getting to the DNS.
The host name data in zone files (as specified by section 5 of RFC 1035)
MUST be both nameprepped and RACE encoded.
MUST be both nameprepped and ACE encoded.
4. Root Server Considerations
@@ -238,26 +237,54 @@ security considerations from that document as well.
6. References
[IDNCOMP] Paul Hoffman, "Comparison of Internationalized Domain Name
Proposals", draft-ietf-idn-compare.
[NAMEPREP] Paul Hoffman & Marc Blanchet, "Preparation of
Internationalized Host Names", draft-ietf-idn-nameprep.
[RACE] RACE: Row-based ASCII Compatible Encoding for IDN,
draft-ietf-idn-race.
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", March 1997, RFC 2119.
[RFC2279] Francois Yergeau, "UTF-8, a transformation format of ISO
10646", January 1998, RFC 2279.
[STD13] Paul Mockapetris, "Domain names - implementation and
specification", November 1987, STD 13 (RFC 1035).
[STD3] Bob Braden, "Requirements for Internet Hosts -- Communication
Layers" (RFC 1122) and "Requirements for Internet Hosts -- Application
and Support" (RFC 1123), STD 3, October 1989.
[STD13] Paul Mockapetris, "Domain names - concepts and facilities" (RFC
1034) and "Domain names - implementation and specification" (RFC 1035,
STD 13, November 1987.
A. Authors' Addresses
B. Changes from the -00 draft
Throughout: Changed "RACE" to "ACE" and removed RACE-specific wording.
1: Added pointer to the mailing list.
1.3: Removed the [IDNCOMP] comparison section.
2.1: Added the last paragraph discussing ACEs.
2.1.2: Changed the discussion of IPv6 APIs to say they are not
standards. Added reference to [STD3].
2.1.3: Added reference to [STD3]. Removed the sentence about making
things smaller.
3: Added reference to [STD3].
6: Added [STD3], and updated the reference info for [STD13].
Removed [IDNCOMP].
C. Authors' Addresses
Patrik Faltstrom
Cisco Systems
Arstaangsvagen 31 J
S-117 43 Stockholm
Sweden
paf@cisco.com
Paul Hoffman
Internet Mail Consortium and VPN Consortium
@@ -265,8 +292,9 @@ Internet Mail Consortium and VPN Consortium
Santa Cruz, CA 95060 USA
phoffman@imc.org
Patrik Faltstrom
Cisco Systems
170 West Tasman Drive SJ-13/2
San Jose, CA 95134 USA
paf@cisco.com
--
Patrik F„ltstr÷m <paf@cisco.com> Cisco Systems
Consulting Engineer Office of the CSO
Phone: (Stockholm) +46-8-4494212 (San Jose) +1-408-525-8509
PGP: 2DFC AAF6 16F0 F276 7843 2DC1 BC79 51D9 7D25 B8DC

View File

@@ -1,7 +1,7 @@
Internet Draft Mark Davis
draft-ietf-idn-lace-00.txt IBM
November 6, 2000 Paul Hoffman
Expires May 6, 2001 IMC & VPNC
draft-ietf-idn-lace-01.txt IBM
January 5, 2001 Paul Hoffman
Expires July 5, 2001 IMC & VPNC
LACE: Length-based ASCII Compatible Encoding for IDN
@@ -26,7 +26,6 @@ material or to cite them other than as "work in progress."
http://www.ietf.org/shadow.html.
Abstract
This document describes a transformation method for representing
@@ -52,7 +51,7 @@ described in the IDN WG's requirements document, [IDNReq].
The IDN WG's comparison document [IDNComp] describes three potential
main architectures for IDN: arch-1 (just send binary), arch-2 (send
binary or ACE), and arch-3 (just send ACE). LACE is an ACE, called
Row-based ACE or LACE, that can be used with protocols that match arch-2
Length-based ACE or LACE, that can be used with protocols that match arch-2
or arch-3. LACE specifies an ACE format as specified in ace-1 in
[IDNComp]. Further, it specifies an identifying mechanism for ace-2 in
[IDNComp], namely ace-2.1.1 (add hopefully-unique legal tag to the
@@ -62,7 +61,9 @@ In formal terms, LACE describes a character encoding scheme of the
ISO/IEC 10646 [ISO10646] coded character set (whose assignment of
characters is synchronized with Unicode [Unicode3]) and the rules for
using that scheme in the DNS. As such, it could also be called a
"charset" as defined in [IDNReq].
"charset" as defined in [IDNReq]. It can also be viewed as a specialized
UTF (transformation format), designed to work within the restrictions of
the DNS.
The LACE protocol has the following features:
@@ -96,9 +97,10 @@ Hexadecimal values are shown preceded with an "0x". For example,
shown preceded with an "0b". For example, a nine-bit value might be
shown as "0b101101111".
Examples in this document use the notation from the Unicode Standard
[Unicode3] as well as the ISO 10646 names. For example, the letter "a"
may be represented as either "U+0061" or "LATIN SMALL LETTER A".
Examples in this document use the notation for code points and names
from the Unicode Standard [Unicode3] and ISO 10646. For example, the
letter "a" may be represented as either "U+0061" or "LATIN SMALL LETTER
A".
LACE converts strings with internationalized characters into
strings of US-ASCII that are acceptable as host name parts in current
@@ -112,8 +114,7 @@ specified in ace-1. Further, it specifies an identifying mechanism for
ace-2, namely ace-2.1.1 (add hopefully-unique legal tag to the beginning
of the name part).
LACE has the following length characteristics. In this list, "row" means
a row from ISO 10646.
LACE has the following length characteristics.
- LACE-encoded names are variable length, depending on the number of
transitions between rows that appear in the name part.
@@ -139,22 +140,22 @@ length.
2.1 Name tagging
All post-converted name parts that contain internationalized characters
begin with the string "bq--". (Of course, because host name parts are
case-insensitive, this might also be represented as "Bq--" or "bQ--" or
"BQ--".) The string "bq--" was chosen because it is extremely unlikely
begin with the string "lq--". (Of course, because host name parts are
case-insensitive, this might also be represented as "Lq--" or "lQ--" or
"LQ--".) The string "lq--" was chosen because it is extremely unlikely
to exist in host parts before this specification was produced. As a
historical note, in late August 2000, none of the second-level host name
parts in any of the .com, .edu, .net, and .org top-level domains began
with "bq--"; there are many tens of thousands of other strings of three
characters followed by a hyphen that have this property and could be
used instead. The string "bq--" will change to other strings with the
historical note, in late October 2000, none of the second-level host
name parts in any of the .com, .edu, .net, and .org top-level domains
began with "lq--"; there are many tens of thousands of other strings of
three characters followed by a hyphen that have this property and could
be used instead. The string "lq--" will change to other strings with the
same properties in future versions of this draft.
Note that a zone administrator might still choose to use "bq--" at the
Note that a zone administrator might still choose to use "lq--" at the
beginning of a host name part even if that part does not contain
internationalized characters. Zone administrators SHOULD NOT create host
part names that begin with "bq--" unless those names are post-converted
names. Creating host part names that begin with "bq--" but that are not
part names that begin with "lq--" unless those names are post-converted
names. Creating host part names that begin with "lq--" but that are not
post-converted names may cause two distinct problems. Some display
systems, after converting the post-converted name part back to an
internationalized name part, might display the name parts in a
@@ -179,33 +180,38 @@ If any checking for prohibited name parts (such as ones that are
prohibited characters, case-folding, or canonicalization) is to be done,
it MUST be done before doing the conversion to an ACE name part.
Characters outside the first plane of characters (those with codepoints
above U+FFFF) MUST be represented using surrogates, as described in
RFC 2781 [RFC2781].
The input name string consists of characters from the ISO 10646
character set in big-endian UTF-16 encoding. This is the pre-converted
string.
Characters outside the first plane of characters
(those with codepoints above U+FFFF) MUST be represented using surrogates, as
described in the UTF-16 description in ISO 10646.
2.2.1 Check the input string for disallowed names
2.2.1 Compress the pre-converted string
If the input string consists only of characters that conform to the host
name requirements in [STD13], the conversion MUST stop with an error.
2.2.2 Compress the pre-converted string
The entire pre-converted string MUST be compressed using the compression
algorithm specified in section 2.4. The result of this step is the
compressed string.
2.2.2 Check the length of the compressed string
2.2.3 Check the length of the compressed string
The compressed string MUST be 36 octets or shorter. If the compressed
string is 37 octets or longer, the conversion MUST stop with an error.
2.2.3 Encode the compressed string with Base32
2.2.4 Encode the compressed string with Base32
The compressed string MUST be converted using the Base32 encoding
described in section 2.5. The result of this step is the encoded string.
2.2.4 Prepend "bq--" to the encoded string and finish
2.2.5 Prepend "lq--" to the encoded string and finish
Prepend the characters "bq--" to the encoded string. This is the host
Prepend the characters "lq--" to the encoded string. This is the host
name part that can be used in DNS resolution.
2.3 Converting a host name part to an internationalized name
@@ -223,11 +229,11 @@ that consists exclusively of characters that conform to the host name
requirements in [STD13] and, if such a name part is found, MUST
beconsidered an error (and possibly a security violation).
2.3.1 Strip the "bq--"
2.3.1 Strip the "lq--"
The input string MUST begin with the characters "bq--". If it does not,
The input string MUST begin with the characters "lq--". If it does not,
the conversion MUST stop with an error. Otherwise, remove the characters
"bq--" from the input string. The result of this step is the stripped
"lq--" from the input string. The result of this step is the stripped
string.
2.3.2 Decode the stripped string with Base32
@@ -246,6 +252,12 @@ The entire decoded string MUST be converted to ISO 10646 characters
using the decompression algorithm described in section 2.4. The result
of this is the internationalized string.
2.3.4 Check the internationalized string for disallowed names
If the internationalized string consists only of characters that conform
to the host name requirements in [STD13], the conversion MUST stop with
an error.
2.4 Compression algorithm
The basic method for compression is to reduce a substring that consists
@@ -255,9 +267,9 @@ the characters. If this ends up being longer than the input, the string
is not compressed, but instead has a unique one-octet header attached.
Although the uncompressed mode limits the number of characters in a LACE
name part to 17, this is still generally enough for almost all names in
almost scripts. Also, this limit is close to the limits set by other
encoding proposals.
name part to 17, this is still generally enough for all names in almost
scripts. Also, this limit is close to the limits set by other encoding
proposals.
Note that the compression and decompression rules MUST be followed
exactly. This requirement prevents a single host name part from having
@@ -268,53 +280,54 @@ section.
2.4.1 Compressing a string
The input string is in big-endian UTF-16 encoding with no byte order
mark.
The input string is in the UTF-16 encoding (big-endian UTF-16 with no
byte order mark).
Design note: No checking is done on the input to this algorithm. It is
assumed that all checking for valid ISO/IEC 10646 characters has already
been done by a previous step in the conversion process.
1) If the length of the input is not even, or is less than 2, stop with
an error.
1) If the length (measured in octets) of the input is not even, or is
less than 2, stop with an error.
2) Set the input pointer, called IP, to the first octet of the input
string.
3) Set the variable called HIGH to the octet at IP.
4) Determine the number of pairs at or after IP that have HIGH as the
first octet; call this COUNT.
4) Determine the number of contiguous pairs at or after IP that have
HIGH as the first octet; call this COUNT.
5) Put into an output buffer the single octet for COUNT followed by the
single octet for HIGH, followed by all those low octets. Move IP to the
end of those pairs; that is, set IP to IP+(2*(COUNT+1)).
end of those pairs; that is, set IP to IP+(2*COUNT).
6) If IP is not at the end of the input string, go to step 3.
7) If the length of the output buffer is less than or equal to the
length of the input buffer (in octets, not in characters), output the
buffer. Otherwise, output the octet 0xFF followed by the input buffer.
Note that there can only be one possible representation for a name part,
so that outputting the wrong name part is a serious security error.
Decompression schemes MUST accept only the valid form and MUST NOT
accept invalid forms.
length of the input buffer (in octets, not in characters), emit the
output buffer. Otherwise, output the octet 0xFF followed by the input
buffer. Note that there can only be one possible representation for a
name part, so that outputting the wrong name part is a serious security
error. Decompression schemes MUST accept only the valid form and MUST
NOT accept invalid forms.
2.4.2 Decompressing a string
1. Set the input pointer, called IP, to the first octet of the input
string. If there is no first octet, stop with an error.
2. If the octet at IP is 0xFF, go to step 10.
2. If the octet at IP is 0xFF, set IP to IP+1, copy the rest of the
input buffer to the output buffer, and go to step 9.
3. Get the octet at IP, call it COUNT. Set IP to IP+1. If IP is now at
the end of the input string, stop with an error.
3. Get the octet at IP, call it COUNT. If COUNT equals zero or is
greater than 36, stop with an error. Set IP to IP+1. If IP is now at the
end of the input string, stop with an error.
4. Get the octet at IP, call it HIGH. Set IP to IP+1. If IP is now at
the end of the input string, stop with an error.
4. Get the octet at IP, call it HIGH. Set IP to IP+1.
5. Get the octet at IP, call it LOW. Set IP to IP+1.
5. If IP is now at the end of the input string, stop with an error. Get
the octet at IP, call it LOW. Set IP to IP+1.
6. Output HIGH, then LOW, to the output buffer.
@@ -322,17 +335,11 @@ the end of the input string, stop with an error.
8. If IP is not at the end of the input buffer, go to step 3.
9. Compare the length of the input string with the length of the output
buffer. If the length of the output buffer is longer than the length of
the input buffer, stop with an error because the wrong compression form
was used. Otherwise, send out the output buffer and stop.
10. Set IP to IP+1. Copy the rest of the input buffer to the output
buffer. Compress the output buffer into a separate comparison buffer
following the steps for compression above. If the length of the
comparison buffer is less than or equal to the length of the output
buffer, stop with an error because the wrong compression form was used.
Otherwise, send out the output buffer and stop.
9. If the length of the output buffer is odd, stop with an error.
Compress the output buffer into a separate comparison buffer following
the steps for compression above. If the contents of the comparison
buffer does not equal the input to the compression step, stop with an
error. Otherwise, send out the output buffer and stop.
2.4.3 Compression examples
@@ -342,16 +349,16 @@ FC 30 C9>. All the code units are in the same row (03). The output
buffer has seven octets <05 30 E6 CB B3 FC C9>, which is shorter than
the input string. Thus the output is <05 30 E6 CB B3 FC C9>.
The four input characters <U+012E U+0110 U+014A U+00C5> are represented
in big-endian UTF-16 as the eight octets <01 2E 01 10 01 4A 00 C5>. The
output buffer has eight octets <03 01 2E 10 4A 01 00 C5>, which is the
same length as the input string. Thus, the output is <03 01 2E 10 4A 01
00 C5>.
The four input characters <U+012F U+0111 U+0149 U+00E5> are represented
in big-endian UTF-16 as the eight octets <01 2F 01 11 01 49 00 E5>. The
output buffer has eight octets <03 01 2F 11 49 01 00 E5>, which is the
same length as the input string. Thus, the output is <03 01 2F 11 49 01
00 E5>.
The three input characters <U+012E U+00D0 U+014A> are represented in
big-endian UTF-16 as the six octets <01 2E 00 D0 01 4A>. The output
buffer is nine octets <01 01 2E 01 00 D0 01 01 4A>, which is longer than
the input buffer. Thus, the output is <FF 01 2E 00 D0 01 4A>.
The three input characters <U+012F U+00E0 U+014B> are represented in
big-endian UTF-16 as the six octets <01 2F 00 E0 01 4B>. The output
buffer is nine octets <01 01 2F 01 00 E0 01 01 4B>, which is longer than
the input buffer. Thus, the output is <FF 01 2F 00 E0 01 4B>.
2.5 Base32
@@ -418,15 +425,23 @@ is in the hex column).
The input is octets in network byte order. The input octets MUST be
values from the second column in Table 1.
1) Set the read pointer to the beginning of the input octet stream.
1) Count the number of octets in the input and divide it by 8; call the
remainder INPUTCHECK. If INPUTCHECK is 1 or 3 or 6, stop with an error.
2) Look up the character value of the octet in the char column (or hex
value in hex column) of Table 1, and output the five bits from the bits
column.
2) Set the read pointer to the beginning of the input octet stream.
3) Move the read pointer one octet forward. If the read pointer is at
the end of the input octet stream (that is, there are no more octets in
the input), stop. Otherwise, go to step 2.
3) Look up the character value of the octet in the char column (or hex
value in hex column) of Table 1, and add the five bits from the bits
column to the output buffer.
4) Move the read pointer one octet forward. If the read pointer is not
at the end of the input octet stream (that is, there are more octets in
the input), go to step 3.
5) Count the number of bits that are in the output buffer and divide it
by 8; call the remainder PADDING. If the PADDING number of bits at the
end of the output buffer are not all zero, stop with an error.
Otherwise, emit the output buffer and stop.
2.5.3 Base32 example
@@ -488,6 +503,9 @@ NEEDS TO BE UPDATED AFTER DETERMINING ACCEPTABLE WORDING ]]]
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", March 1997, RFC 2119.
[RFC2781] Paul Hoffman and Francois Yergeau, "UTF-16, an encoding of ISO
10646", February 2000, RFC 2781.
[STD13] Paul Mockapetris, "Domain names - implementation and
specification", November 1987, STD 13 (RFC 1035).
@@ -498,16 +516,335 @@ specification", November 1987, STD 13 (RFC 1035).
A. Acknowledgements
Rick Wesson pointed out some error conditions that need to be
tested for. Scott Hollenbeck pointed out some errors in the
compression.
Base32 is quite obviously inspired by the tried-and-true Base64
Content-Transfer-Encoding from MIME.
B. IANA Considerations
B. Sample code
There are no IANA considerations in this document.
The following is sample Javascript code for the LACE algorithm.
This code is believed to be correct, but there may be errors in
it. The code is provided as-is and comes with no warranty of
fitness, correctness, blah blah blah.
/**
* Converts to LACE compression format (without Base32) from
* UTF-16BE array
* @parameter iArray Array of bytes in UTF16-BE
* @parameter iCount Number of elements. Must be 0..63
* @parameter oArray Array for output of LACE bytes.
* Must be at least 100 octets long to provide internal working space
* @return Length of output array used
* @parameter parseResult output error value if any
* @author Mark Davis
*/
function toLACE(iArray, iCount, oArray, parseResult) {
//debugger;
if (iCount < 1 || iCount > 62) ×{
parseResult.set("Lace: count out of range", iCount);
return;
}
if ((iCount % 2) == 1) ×{
parseResult.set("Lace: odd length, can't be UTF-16", iCount);
return;
}
var op = 0; ×// input index
var ip = 0; ×// output index
var lastHigh = -1;
var lenp = 0;
while (ip < iCount) {
var high = iArray[ip++];
if (high != lastHigh) {
if (lastHigh != -1) { ×// store last length
var len = op - lenp - 2;
oArray[lenp] = len;
} ×
lenp = op++; // reserve space
oArray[op++] = high;
lastHigh = high;
}
oArray[op++] = iArray[ip++];
}
// store last len
var len = op - lenp - 2;
oArray[lenp] = len;
// see if the input is short, and we should
// just copy
if (op > iCount) {
if (op > 63) ×{
parseResult.set("Lace: output too long", op);
return;
}
oArray[0] = 0xFF;
copyTo(iArray, 0, iCount, oArray, 1);
op = iCount + 1;
}
return op;
}
/**
* Converts from LACE compressed format (without Base32) to
* UTF-16BE array
* @parameter iArray Array of bytes in LACE format
* @parameter iCount Number of elements
* @parameter oArray Array for output of bytes, UTF16-BE.
* Must be at least iCount+1 long
* @return Length of output array used
* @parameter parseResult output error value if any
* @author Mark Davis
*/
function fromLACE(iArray, iCount, oArray, parseResult) {
var high;
if (iCount < 1 || iCount > 63) {
parseResult.set("fromLACE: count out of range", iCount);
return;
}
var op = 0;
var ip = 0;
var result = 0;
if (iArray[ip] == 0xFF) { ×// special case FF
copyTo(iArray, 1, iCount-1, oArray, 0);
result = iCount-1;
} else {
while (ip < iCount) { ×// loop over runs
var count = iArray[ip++];
if (ip == iCount) {
parseResult.set("fromLACE: truncated before high", ip);
return;
}
high = iArray[ip++];
for (var i = 0; i < count; ++i) {
oArray[op++] = high;
if (ip == iCount) ×{
parseResult.set("fromLACE: truncated from count", ip);
return;
}
oArray[op++] = iArray[ip++];
}
}
result = op;
}
// check for uniqueness
var checkArray = [];
var checkCount = toLACE(oArray, result, checkArray, parseResult);
if (!equals(iArray, iCount, checkArray, checkCount)) {
parseResult.set("fromLACE: illegal input form");
return;
} ×
return result;
}
/**
* Utility routine for comparing arrays
* @parameter array1 first array to compare
* @parameter count1 number of elements to compare in first array
* @parameter array2 second array to compare
* @parameter count1 number of elements to compare in second array
* @return true iff counts are same, and elements from 0 to count-1
* are the same
*/
function equals(array1, count1, array2, count2) {
if (count1 != count2) return false;
for (var i = 0; i < count1; ++i) {
if (array1[i] != array2[i]) return false;
}
return true;
}
/**
* Utility routine for getting array of bytes from UTF-16 string
* @parameter str source string
* @parameter oArray output array to fill in
* @return count of bytes put into oArray
*/
function utf16FromString(str, oArray) {
var op = 0;
for (var i = 0; i < str.length; ++i) {
var code = str.charCodeAt(i);
oArray[op++] = (code >>> 8); ×// top byte
oArray[op++] = (code & 0xFF); // bottom byte
}
return op;
}
/**
* Utility routine to see if string doesn't need LACE
* @parameter str source string
* @return true if ok already
*/
function okAlready(str) {
for (var i = 0; i < str.length; ++i) {
var c = str.charAt(i);
if (c == '-' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9')
continue;
return false;
}
return true
}
/**
* Convert from bytes to base32
* @parameter input Input buffer of bytes with values 00 to FF
* @parameter inputLength Length of input buffer
* @parameter output Output buffer, to be filled with with values from
a-z2-7.
* Must be of at least length input*8/5 + 1
* @return Length of output buffer used
* @author Mark Davis
*/
function toBase32(input, inputLength, output, parseResult) {
//debugger;
var bits = 0;
var bitCount = 0;
var ip = 0;
var op = 0;
var val = 0;
while (true) {
// get bits if we don't have enough
if (bitCount < 5) {
if (ip >= inputLength) break;
// get another input
bits <<= 8;
if (baseDebugTo) alert("byte: " + input[ip].toString(16) + ",
bitCount: " + (bitCount+8));
bits = bits | input[ip++];
bitCount += 8;
}
// emit and remove them
bitCount -= 5;
val = (bits >> bitCount);
if (baseDebugTo) alert("Val: " + val.toString(16) + ", bitCount: "
+ bitCount);
output[op++] = toLetter(val);
//if (baseDebugTo) alert("out: " + output[op-1].toString(16));
bits &= ~(0x1F << bitCount);
}
// add padding and output if necessary
if (bitCount > 0) {
if (baseDebugTo) alert("bits*: " + bits.toString(16) +
", bitCount: " + bitCount);
val = bits << (5 - bitCount);
if (baseDebugTo) alert("out*: " + val.toString(16));
output[op++] = toLetter(val);
}
return op;
}
/**
* Convert from base32 to bytes
* @parameter input Input buffer of bytes with values from a-z2-7
* @parameter inputLength Length of input buffer
* @parameter output Output buffer, to be filled with bytes from
* 00 to FF
* Must be of at least length input*5/8 + 1
* @return Length of output buffer used
* @author Mark Davis
*/
function fromBase32(input, inputLength, output, parseResult) {
//debugger;
var inputCheck = inputLength % 8;
if (inputCheck == 1 || inputCheck == 3 || inputCheck == 6) {
parseResult.set("Base32 excess length", null, inputLength);
return;
}
var bits = 0;
var bitCount = 0;
var ip = 0;
var op = 0;
var val = 0;
while (ip < inputLength) {
// get more bits
var val = input[ip++];
val = fromLetter(val);
if (val < 0 || val > 0x3F) {
parseResult.set("Bad Base32 byte", val, ip-1);
return;
}
if (baseDebugFrom) alert("base32: " + val.toString(16));
bits <<= 5;
bits = bits | val;
bitCount += 5;
if (baseDebugFrom) alert("from: " + val.toString(16) +
", bitCount: " + bitCount);
// emit & remove if we can
if (bitCount >= 8) {
bitCount -= 8;
output[op++] = bits >> bitCount;
if (baseDebugFrom) alert("out2: " + (bits >> bitCount) +
", bitCount: " + bitCount);
bits &= ~(0xFF << bitCount);
}
}
// check that padding is with zero!
if (bits != 0) return -ip;
return op;
}
C. Author Contact Information
function toLetter(val) {
if (val > 25) return val - 26 + 0x32;
return val + 0x61;
// return val + (val < 26 ? 0x61 : 0x18);
}
function fromLetter(val) {
if (val < 0x61) return val + 26 - 0x32;
return val - 0x61;
}
C. Difrerences between -00 and -01
1: Minor typos.
2.1: Changed the tag to 'lq--'.
2.2 and 2.3: Added check for all-STD13 names in the steps.
2.4.1: Clarified first sentence. Step 5: fixed the moving of the IP.
2.4.2: Moved the last sentence of step 4 to be the first sentence of
step 5. Added the check for odd-length output. Changed the exit
comparision to doing a full comparison (instead of looking for lengths).
2.5.2: Changed the sense of the test in step 3 and added step 4 to check
for malformed input. Also made the output a buffer. Also added new step
1.
Changed Appendix B from IANA Considerations (of which there are none) to
Javascript code sample.
D. Author Contact Information
Mark Davis
IBM

View File

@@ -1,6 +1,6 @@
IETF IDN Working Group Editors Zita Wenzel, James Seng
Internet Draft draft-ietf-idn-requirements-03.txt
28 June 2000 Expires 28 November 2000
Internet Draft draft-ietf-idn-requirements-04.txt
04 October 2000 Expires 04 March 2001
Requirements of Internationalized Domain Names
@@ -49,48 +49,109 @@ list can also be found at ftp://ops.ietf.org/pub/lists/idn*.
1.1 Definitions and Conventions
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].
A language is a way that humans interact. In computerised form, a text
in a written language can be expressed as a string of characters.
The same set of characters can often be used for many written languages,
and many written languages can be expressed using different scripts.
The same characters are often shown with somewhat different glyphs
(shapes)
for display of a text depending on the font used, the automatic shaping
applied, or the automatic formation of ligatures. In addition, the same
characters can be shown with somewhat different glyphs (shapes) for
display
of a text depending on the language being used, even within the same
font
or trough automatic font change.
A character is a member of a set of elements used for organization,
control, or representation of textual data.
A graphic character is a character, other than a control function,
that has a visual representation normally handwritten, printed, or
displayed.
Characters mentioned in this document are identified by their position
in the Unicode [UNICODE] character set. The notation U+12AB, for
example, indicates the character at position 12AB (hexadecimal) in the
Unicode character set. Note that the use of this notation is not an
indication of a requirement to use Unicode.
in the Unicode [UNICODE] character set. This character set is also
known as the UCS [ISO10646]. The notation U+12AB, for example, indicates
the character at position 12AB (hexadecimal) in the Unicode character
set. Note that the use of this notation is not an indication of a
requirement to use Unicode.
Examples quoted in this document should be considered as a method to
further explain the meanings and principles adopted by the document. It
is not a requirement for the protocol to satisfy the examples.
A character is a member of a set of elements used for organization,
control, or representation of data.
Unicode Technical Report 17 [UTR17] defines a character encoding
model in several levels (much of the text below is quoted from
Unicode Technical Report 17 [UTR17]):
A coded character is a character with its coded representation.
1. A abstract character repertoire (ACR) is defined as the set of
abstract characters to be encoded, normally a familiar alphabet
or symbol set. The word abstract just means that these objects
are defined by convention (such as the 26 letters of the English
alphabet, uppercase and lowercase forms). Examples: the ASCII
repertoire, the Latin-15 repertoire, the JIS X 0208 repertoire,
the UCS repertiore (of a particular version).
A coded character set ("CCS") is a set of unambiguous rules that
establishes a character set and the relationship between the characters
of the set and their coded representation.
2. A coded character set (CCS) is defined to be a mapping from a
set of abstract characters to the set of non-negative integers.
This range of integers need not be contiguous. An abstract
character is defined to be in a coded character set if the coded
character set maps from it to an integer. That integer is said
to be the code point for the abstract character. That abstract
character is then an encoded character. Examples: ASCII, Latin-15,
JIS X 0208, the UCS.
A graphic character or glyph is a character, other than a control
function, that has a visual representation normally handwritten,
printed, or displayed.
3. A character encoding form (CEF) is a mapping from the set of integers
used in a CCS to the set of sequences of code units. A code unit
is an integer occupying a specified binary width in a computer
architecture, such as a septet, an octet, or a 16-bit unit. The
encoding form enables character representation as actual data in
a computer. The sequences of code units do not necessarily have the
same length. Examples: ASCII, Latin-15, Shift-JIS, UTF-16, UTF-8.
A character encoding scheme or "CES" is a mapping from one or more
coded character sets to a set of octets. Some CESs are associated with
a single CCS; for example, UTF-8 [RFC2279] applies only to ISO 10646.
Other CESs, such as ISO 2022, are associated with many CCSs.
4. A character encoding scheme (CES) is a mapping of code units into
serialized octet sequences. Character encoding schemes are relevant
to the issue of cross-platform persistent data involving code units
wider than a byte, where byte-swapping may be required to put data
into the byte polarity canonical for a particular platform.
A charset is a method of mapping a sequence of octets to a sequence of
abstract characters. A charset is, in effect, a combination of one or
more CCS with a CES. Charset names are registered by the IANA according
to procedures documented in [RFC2278].
The CES may involve two or more CCS's, and may include code units
(e.g. single shifts, SI/SO, or escape sequences) that are not part
of the CCS per se, but which are defined by the character encoding
architecture and which may require an external registry of particular
values (as for the ISO 2022 escape sequences). In such a case, the
CES is called a compound CES. (A CES that only involves a single
CCS is called a simple CES.)
A language is a way that humans interact. In written form, a language
is expressed in characters. The same set of characters can often be
used in many languages, and many languages can be expressed using
different scripts. A particular charset MAY have different glyphs
(shapes) depending on the language being used.
Examples: ASCII, Latin-15, Shift-JIS, UTF-16BE, UTF-16LE, UTF-8.
5. The mapping from an abstract character repertoire (ACR) to a
serialised
sequence of octets is called a Character Map (CM). A simple character
map thus implicitly includes a CCS, a CEF, and a CES, mapping from
abstract characters to code units to octets. A compound character
map includes a compound CES, and thus includes more than one CCS
and CEF. In that case, the abstract character repertoire for the
character map is the union of the repertoires covered by the coded
character sets involved.
Character Maps are the things that in the IAB architecture get IANA
charset identifiers. A sequence of encoded characters must be
unambiguously mapped onto a sequence of octets by the charset. The
charset must be specified in all instances, as in Internet
protocols, where textual content is treated as a ordered sequence
of octets, and where the textual content must be reconstructible
from that sequence of octets. Charset names are registered by the
IANA according to procedures documented in [RFC2278]. In many cases,
the same name is used for both a character map and for a character
encoding scheme, such as UTF-16BE. Typically this is done for simple
character maps when such usage is clear from context.
6. A transfer encoding syntax (TES) is a reversible transform of encoded
data which may (or may not) include textual data represented in
one or more character encoding schemes. Examples: 8bit,
Quoted-Printable, BASE64, UTF-7 (defunct), (UTF-5, and RACE).
1.2 Description of the Domain Name System
@@ -100,7 +161,7 @@ clarifications, extensions and modifications given in [RFC1123],
security extensions described in [RFC2535] and companions.
Over the years, many different words have been used to describe the
components of resource naming on the Internet (e.g., [URI], [URN]); to make
components of resource naming on the Internet (e.g., URI, URN); to make
certain that the set of terms used in this document are well-defined and
non-ambiguous, the definitions are given here.
@@ -138,9 +199,10 @@ The form specified for most protocols using the DNS is a limited form of
the master file format domain name. This limited form is defined in
[RFC1034] Section 3.5 and [RFC1123]. In most implementations of
applications today, domain names in the Internet have been limited to
the much more restricted forms used, e.g., in email. Those names are
limited to the ASCII upper and lower-case characters (interpreted in a
case-independent fashion), the digits, and the hyphen.
the much more restricted forms used, e.g., in email. Those names are
limited to the upper- and lower-case letters a-z (interpreted in a
case-independent fashion), the digits, and the hyphen-minus, all in
ASCII.
1.3 Definition of "hostname" and "Internationalized Domain Name"
@@ -170,7 +232,8 @@ The DNS can be seen as a multilayer function:
- Above that is the "DNS service", created by an infrastructure of DNS
servers, NS records that point to those DNS servers, that is
pointed to by the root servers (listed in the "root cache file" on each DNS
pointed to by the root servers (listed in the "root cache file" on
each DNS
server, often called "named.cache". It is at this level that the
statement "the DNS has a single root" [RFC2826] makes sense, but
still, what are being transferred are octets, not characters.
@@ -276,22 +339,26 @@ internationalized domain name.
names as described in [RFC1034]. It MUST maintain a single, global,
universal, and consistent hierarchical namespace.
[2.5] The DNS service layer (the packet formats that go on the wire)
MUST NOT limit the codepoints that can be used. This interface SHOULD
NOT assign meaning to name strings; the application service layer,
where "gethostbyname" et al reside, MAY constrain the name strings to
be used in certain services. (conflict)
[2.5] The DNS protocol (the packet formats that go on the wire) MUST
NOT limit the codepoints that can be used. A service defined on top of
the DNS, for instance the IDN-to-address function, MAY limit the
codepoints that can be used. The service descriptions MUST describe
what limitations are imposed.
[2.6] The protocol MUST work for all features of DNS, IPv4, and
IPv6. The protocol MUST NOT allow an IDN to be returned to a requestor
that requests the IP-to-(old)-domain-name mapping service.
[3] The same name resolution request MUST generate the same response,
regardless of the location or localization settings in the resolver, in
the master server, and in any slave servers involved in the resolution
process.
[4] The protocol SHOULD allow creation of caching servers that do
not understand the charset in which a request or response is encoded.
The caching server SHOULD perform correctly for IDN as well as for
current domain names (without the authoritative bit) as the master
server would have if presented with the same request.
[4] The protocol MUST NOT require that the current DNS cache
servers be modified to support IDN. If a cache server can have
additional functionality to support IDN better, this additional
functionality MUST NOT cause problems for resolving correctly
functioning current domain names.
[5] A caching server MUST NOT return data in response to a query that
would not have been returned if the same query had been presented to an
@@ -321,27 +388,23 @@ used in DNS names and records. The protocol MUST specify what charset is
used when resolving domain names and how characters are encoded in DNS
records.
[12] This document RECOMMENDS Unicode only. If multiple charsets are
allowed, each charset MUST be tagged and conform to [RFC2277].
[12] Codepoints SHOULD be from the Universal Set as defined in
ISO-10646 or Unicode. The specifics of versions MUST be defined in the
proposed solution. If multiple charsets are allowed, each charset MUST
be tagged and conform to [RFC2277].
[12.5] IDN MUST NOT return illegal code points in responses, SHOULD
reject queries with illegal codepoints. (one request to add; one request
to remove)
[13] CES(s) chosen SHOULD NOT encode ASCII characters differently
depending on the other characters in the string. In other words, unless
IDN names are identified and coded differently from ASCII-only ones,
characters in the ASCII set SHOULD remain as specified in [US-ASCII]
(one request to remove).
[12.5] The protocol MUST NOT reject any non-IDN characters (to be
defined) in any queries or responses.
[14] The protocol SHOULD NOT invent a new CCS for the purpose of IDN
only and SHOULD use existing CES. The charset(s) chosen SHOULD also be
non-ambiguous.
[15] The protocol SHOULD NOT make any assumptions about the location in
a domain name where internationalization might appear. In other words,
it SHOULD NOT differentiate between any part of a domain name because
this MAY impose restrictions on future internationalization efforts.
[15] The protocol SHOULD NOT make any assumptions about the location
in a domain name where internationalization might appear. In other
words, it SHOULD NOT differentiate between any part of a domain name
because this MAY impose restrictions on future internationalization
efforts. For example, the TLDs can be internationalized.
[16] The protocol also SHOULD NOT make any localized restrictions in the
protocol. For example, an IDN implementation which only allows domain
@@ -354,10 +417,6 @@ domain name input and display, IDN is only concerned with the
protocol. Therefore, there MUST be a single way of encoding an
internationalized domain name within the DNS.
[18] The protocol SHOULD NOT place any restrictions on the
application service layer. It SHOULD only specify changes in the DNS
service layer and within the DNS itself.
2.4 Canonicalization
Matching rules are a complicated process for IDN. Canonicalization
@@ -431,9 +490,7 @@ local-rule-ignorant) caches.
[36] The protocol MUST work with DNSSEC.
[37] The protocol MUST work for all features of DNS, IPv4, and IPv6.
4. Security Considerations
3. Security Considerations
Any solution that meets the requirements in this document MUST NOT be
less secure than the current DNS. Specifically, the mapping of
@@ -449,7 +506,7 @@ MUST be compatible with DNSSEC and, if multiple charsets or
representation forms are permitted, the implications of this name-spoof
MUST be throughly understood.
5. References
4. References
[CHARREQ] "Requirements for string identity matching and String
Indexing", http://www.w3.org/TR/WD-charreq, July 1998,
@@ -501,29 +558,42 @@ MUST be throughly understood.
[IDNCOMP] "Comparison of Internationalized Domain Name Proposals",
draft-ietf-idn-compare-00.txt, June 2000, P. Hoffman.
[UNICODE] The Unicode Consortium, "The Unicode Standard -- Version
3.0", ISBN 0-201-61633-5. Described at
http://www.unicode.org/unicode/standard/versions/
Unicode3.0.html
[ISO10646] ISO/IEC 10646-1:2000 (note that an amendment 1 is in
preparation), ISO/IEC 10646-2 (in preparation), plus
corrigenda and amendments to these standards.
[UNICODE] The Unicode Consortium, "The Unicode Standard". Described at
http://www.unicode.org/unicode/standard/versions/.
[UNICODE30] The Unicode Consortium, "The Unicode Standard -- Version
3.0", ISBN 0-201-61633-5. Same repertoire as ISO/IEC
10646-1:2000. Described at
http://www.unicode.org/unicode/standard/versions/Unicode3.0.html.
[US-ASCII] Coded Character Set -- 7-bit American Standard Code for
Information Interchange, ANSI X3.4-1986.
Information Interchange, ANSI X3.4-1986; also: ISO/IEC
646 (IRV).
[UTR15] "Unicode Normalization Forms", Unicode Technical Report
#15, http://www.unicode.org/unicode/reports/tr15/,
Nov 1999, M. Davis & M. Duerst, Unicode Consortium.
[UAX15] "Unicode Normalization Forms", Unicode Standard Annex #15,
http://www.unicode.org/unicode/reports/tr15/, 2000-08-31,
M. Davis and M. Duerst, Unicode Consortium.
[UTR17] "Character Encoding Model", Unicode Technical Report #17,
http://www.unicode.org/unicode/reports/tr17/, 2000-08-31,
K. Whistler and M. Davis, Unicode Consortium.
[UTR21] "Case Mappings", Unicode Technical Report #21,
http://www.unicode.org/unicode/reports/tr21/, Dec 1999,
M. Davis, Unicode Consortium. Approved status.
http://www.unicode.org/unicode/reports/tr21/, 2000-09-12,
M. Davis, Unicode Consortium.
6. Editors' Contact
5. Editors' Contact
Zita Wenzel, Ph.D.
Information Sciences Institute
University of Southern California
4676 Admiralty Way
Marina del Rey, CA
Marina del Rey, CA
90292 USA
Tel: +1 310 448 8462
Fax: +1 310 823 6714
@@ -537,7 +607,7 @@ Tel: +65 248 6208
Fax: +65 248 6198
Email: jseng@pobox.org.sg
7. Acknowledgements
6. Acknowledgements
The editors gratefully acknowledge the contributions of:
@@ -553,7 +623,7 @@ Ned Freed <ned.freed@innosoft.com>
Olafur Gudmundsson <ogud@tislabs.com>
Paul Hoffman <phoffman@imc.org>
Simon Josefsson <jas+idn@pdc.kth.se>
Karlsson Kent <keka@im.se>
Kent Karlsson <keka@im.se>
John Klensin <klensin+idn@jck.com>
Tan Juay Kwang <tanjk@i-dns.net>
Dongman Lee <dlee@icu.ac.kr>
@@ -562,3 +632,6 @@ Dan Oscarsson <Dan.Oscarsson@trab.se>
J. William Semich <bill@mail.nic.nu>
James Seng <jseng@pobox.org.sg>

View File

@@ -1,7 +1,7 @@
Internet Draft Dan Oscarsson
draft-ietf-idn-udns-01.txt Telia ProSoft
Updates: RFC 2181, 1035, 1034, 2535 27 August 2000
Expires: 27 February 2001
Internet Draft Dan Oscarsson
draft-ietf-idn-udns-02.txt Telia ProSoft
Updates: RFC 2181, 1035, 1034, 2535 24 February
2001 Expires: 24 August 2001
Using the Universal Character Set in the Domain Name System (UDNS)
@@ -34,9 +34,11 @@ Abstract
started to experiment with non-ASCII names.
This document defines how the Universal Character Set (UCS)
[ISO10646] can be used in DNS without extending the current [RFC1035]
protocol and how DNS is extended to overcome length limits in the
future.
[ISO10646] is to be used in DNS.
It includes both a transition scheme for older software supporting
non-ASCII handling in applications only, as well as how to use UCS in
labels and having more than 63 octets in a label.
1. Introduction
@@ -44,16 +46,16 @@ Abstract
While the need for non-ASCII domain names have existed since the
creation of the DNS, the need have increased very much during the
last few years. Currently there are at least two implementations
using UTF-8 in use, and others using other methods.
Dan Oscarsson Expires: 27 Februray 2001 [Page 1]
Dan Oscarsson Expires: 24 August 2001 [Page 1]
Internet Draft Universal DNS 27 August 2000
Internet Draft Universal DNS 24 February 2001
using UTF-8 in use, and others using other methods.
To avoid several different implementations of non-ASCII names in DNS
that do not work together, and to avoid breaking the current ASCII
only DNS, there is an immediate need to standardise how DNS shall
@@ -65,10 +67,6 @@ Internet Draft Universal DNS 27 August 2000
all octets are to be used in character data allowing a standardised
way to use non-ASCII in DNS.
To support the software where only ASCII host and domain names are
allowed, this document defines how resource records are to be
returned in a response to avoid breaking that software.
The specification here conforms to the IDN requirements [IDNREQ].
1.1 Terminology
@@ -85,6 +83,10 @@ Internet Draft Universal DNS 27 August 2000
1.2 Previous versions of this document
The third version of this document included a way to return both
ASCII and non-ASCII versions of a name. As this could not be
guaranteed to work it has been removed.
The second version of this document was available as draft-ietf-idn-
udns-00.txt. It included a lot of possibilities as well as a flag bit
that is now removed.
@@ -100,147 +102,107 @@ Internet Draft Universal DNS 27 August 2000
format of zone files or how to enter or display domain names are not
part of the protocol.
Dan Oscarsson Expires: 24 August 2001 [Page 2]
Internet Draft Universal DNS 24 February 2001
The update of the protocol defined here can be used immediately as it
is fully compatible with the DNS of today.
For a long time there will be software understanding UCS in DNS and
software only understanding ASCII in DNS. It is therefore necessary
to support a mixing of both types. For the following text software
understanding UCS in DNS will be called UDNS aware.
This specification supports the following scenarios:
- UDNS unaware client, UDNS aware DNS server
- UDNS aware client, UDNS unaware DNS server
- UDNS aware client, UDNS unaware DNS server
Dan Oscarsson Expires: 27 Februray 2001 [Page 2]
Internet Draft Universal DNS 27 August 2000
2.1 Fundamentals
2.1 Character data
2.1.1 Standard Character Encoding (SCE)
Character data need to be able to represent as much as possible of
the characters in the world as well as being compatible with ASCII.
It must also be well defined so that it can easily be handled and
should be compact as only 63 octets is available without an extension
of the protocol. Character data is used in labels and in text fields
in the RDATA part of a RR.
Character data is used in labels and in text fields in the RDATA part
of a RR.
Character data used in the DNS protocol MUST:
The Standard Character Encoding of character data used in the DNS
protocol MUST:
- Use ISO 10646 (UCS) [ISO10646] as coded character set.
- Be normalised using form C as defined in Unicode technical report
#15 [UTR15]. See also [CHNORM].
- Encoded using the UTF-8 [RFC2279] character encoding scheme.
2.2 Name matching
2.1.2 Binary Comparison Format (BCF)
RFC 1035 states that the labels of a name are matched case-
insensitively. When using UCS this is no longer enough as there are
other forms than case that need to match as equivalent.
other forms than case that need to match as equivalent. Form-
insensitive matching of UCS includes:
- Letters of different case are compared as the same character.
- Code points of primary typographical variations of the same
character are compared as the same character. An example is double
width/normal width characters or presentation forms of a
character.
- Some characters are represented with multiple code points in UCS.
All code points of one character must compare as the same. For
example the degree Kelvin sign is the same as the letter K.
The original definition is now extended to be: labels must be
compared using form-insensitivity.
For the UCS character code range 0-255 (ASCII and ISO 8859-1) the
case folding MUST be done by case-insensitive matching following the
one to one mapping as defined in the Unicode 3.0 Character Database
[UDATA].
How to do form-insensitive matching for the rest of UCS will be
defined in a separate document.
2.2.1 Rules for matching of domain names in DNS servers
To be able to handle correct domain name matching in lookups, the
following MUST be followed by DNS servers:
- Do matching on authorative data using form-insensitive matching
for the characters used in the data (for example a zone using only
ASCII need only handle matching of ASCII characters).
- On non-authorative data, either do binary matching or case-
insensitive matching on ASCII letters and binary matching on all
others.
The effect of the above is:
- only servers handling authorative data must implement form-
insensitive matching of names. And they need only implement the
subset needed for the subset of characters of UCS they support in
their authorative zones.
Dan Oscarsson Expires: 27 Februray 2001 [Page 3]
Dan Oscarsson Expires: 24 August 2001 [Page 3]
Internet Draft Universal DNS 27 August 2000
Internet Draft Universal DNS 24 February 2001
- it normally gives fast lookup because data is usually sent like:
resolver <-> server <-> authorative server.
While form-insensitive matching can be complex and CPU consuming,
the server in the middle will do caching with only simple and fast
binary matching. So the impact of complex matching rules should
not slow down DNS very much.
To handle form-insensitivity it is here defined the Binary Comparison
Format (BCF) to which strings can be mapped. After strings is mapped
to BCF they can be compared using binary string comparison.
Implementors may implement the form-insensitive comparison without
using BCF, as long as the results are the same.
2.3 Supporting older software and allowing for ASCII aliases.
Mapping of a label to BCF is typically done by steps like: changing
all upper case letters to lower case, mapping different forms to one
form and changing different code points of one character into a
single code point.
As there is a lot of software expecting host and domain names to only
use a subset of ASCII, they may work incorrectly if receiving a
response with non-ASCII characters. And when communicating between
nations it is sometimes good to also have a version of a name that
can be used by most people.
For the UCS character code range 0-255 (ASCII and ISO 8859-1) the BCF
MUST be done by mapping all upper case characters to lower case
following the one to one mapping as defined in the Unicode 3.0
Character Database [UDATA].
To support this the following MUST be followed:
- Queries for PTR records must return two records if the name
pointed to includes non-ASCII. They may also return two records if
an alternative name exist for the object pointed to.
The two records MUST be ordered with the ASCII version of the name
first and the non-ASCII or true name second. The second record
defines the true name of the object, the first record an ASCII
version of the name.
The definition of the Binary Comparison Format (BCF) for the rest of
UCS will be defined in a separate document. The nearest today is
[NAMEPREP].
Note: older software will normally stop analysing a response when
finding the first PTR record so they will get the ASCII name.
Newer software can select the name best suited for its needs.
- Queries for other records with non-ASCII in the RDATA section MUST
return an ASCII version also, unless the client is known to handle
non-ASCII.
2.1.3 Backward Compatibility Encoding (BCE)
At a future date IETF can decide that it is no longer necessary to
support the software only handling ASCII names, and the servers can
stop including ASCII versions in the responses.
To support older software expecting only ASCII and to support
downgrading from 8-bit to 7-bit ASCII in other protocols (like SMTP)
a Backward Compatibility Encoding (BCE) is available. It is a
transition mechanism and will no longer be supported at some future
time when it is so decided.
NOTE: a cache server shall return data in the same way as an
authorative server. If some do not and change the order of the PTR
records, some old software will not get the ASCII version of the
name.
2.3.1 ASCII versions of a name
When returning an ASCII version of a name, there are two
possibilities: returning a user defined ASCII alias or an ASCII
compatible encoding (ACE) of the name.
The ASCII Compatible Encoding (ACE) is used to support older software
expecting only ASCII and to support downgrading from 8-bit to 7-bit
Dan Oscarsson Expires: 27 Februray 2001 [Page 4]
Internet Draft Universal DNS 27 August 2000
ASCII in other protocols (like SMTP). It is a transition mechanism
and will no longer be supported at some future time when it is so
decided.
All software following this specification MUST recognise ACE and
decode them into their true name when doing matching and handling. A
DNS server must recognise ACE in a query.
The Backward Compatibility Encoding (BCE) of a label is defined as
the BCF of the label encoded using an ASCII Compatible Encoding
(ACE).
The definition of the ACE to be used, is defined in a separate
document. Typical definitions that are suitable are [SACE] and
[RACE].
NOTE: To support the transition to UTF-8 in resolver code, it is
recommended that a server recognise local encodings for the zones it
is authorative for. This will allow clients using the local character
set in many cases even before the resolver code is upgraded.
2.4 Handling long names
2.1.4 Long names
The current DNS protocol limits a label to 63 octets. As UTF-8 take
more than one octet for some characters, an UTF-8 name cannot have 63
@@ -252,6 +214,14 @@ Internet Draft Universal DNS 27 August 2000
simplify implementations.
To support longer names a long label type is defined using [RFC2671]
Dan Oscarsson Expires: 24 August 2001 [Page 4]
Internet Draft Universal DNS 24 February 2001
as extended label 0b000011 (the label type will be assigned by IANA
and may not be the number used here).
@@ -270,87 +240,132 @@ Internet Draft Universal DNS 27 August 2000
The limits for labels are updated since RFC 1025 as follows:
A label is limited to a maximum of 63 character code points in UCS
Dan Oscarsson Expires: 27 Februray 2001 [Page 5]
Internet Draft Universal DNS 27 August 2000
normalised using Unicode form C. The full name is limited to a
maximum of 255 character code points normalised as for a label.
A long label MUST always use the Standard Character Encoding (SCE).
As long labels are not understood by older software, a response MUST
not include a long label unless the query did. At a later date, IETF
may change this.
2.5 Handling to large responses and identifying non-ASCII clients
If a client sends the QNAME in the query using the long label type,
the client shows that it implements this specification and do not
need ASCII compatibility.
2.2 Rules for matching of domain names in UDNS aware DNS servers
If the client is not identified to follow this specification, the UDP
packet size is limited to 512 bytes. If then a response will not fit,
the response MUST set the TC bit (truncated) to indicate that. A
client may then resend the query using a long label in the query to
show that it can handle larger responses.
To be able to handle correct domain name matching in lookups, the
following MUST be followed by DNS servers:
- Do matching on authorative data using form-insensitive matching
for the characters used in the data (for example a zone using only
ASCII need only handle matching of ASCII characters).
- On non-authorative data, either do binary matching or case-
insensitive matching on ASCII letters and binary matching on all
others.
2.6 DNSSEC
The effect of the above is:
- only servers handling authorative data must implement form-
insensitive matching of names. And they need only implement the
subset needed for the subset of characters of UCS they support in
their authorative zones.
- it normally gives fast lookup because data is usually sent like:
resolver <-> server <-> authorative server.
While form-insensitive matching can be complex and CPU consuming,
the server in the middle will do caching with only simple and fast
Dan Oscarsson Expires: 24 August 2001 [Page 5]
Internet Draft Universal DNS 24 February 2001
binary matching. So the impact of complex matching rules should
not slow down DNS very much.
2.3 Mixing of UDNS aware and non-UDNS aware clients and servers
To handle the mixing of UDNS aware and non-UDNS aware clients and
servers the following MUST be followed for clients and servers.
2.3.1 Native UDNS aware client
A native UDNS aware client is a client supporting all in this
document.
When doing a query it MUST:
- Use the long label in the QNAME.
- If server rejected query due to long label, retry the query using
the normal short label. If the QNAME contains non-ASCII it must be
encoded using BCE.
- Handle answers containg BCE.
The client may skip trying a query using the long label if it knows
the server does not understand it.
2.3.2 Application based UDNS aware client
An application based UDNS aware client is a client supporting UDNS
through BCE handling in the application.
It only understands BCE and need only a non-UDNS aware resolver to
work. All encoding and decoding of BCE is handled in the
application.
Due to BCE being an ACE of BCF the names returned in an answer need
not contain the real form of the name. Instead it may contains the
simplified form used in name matching. As this is a transition
mechanism to support non-ASCII in names before the DNS servers have
been upgraded, it is acceptable and will give people a reason to
upgrade.
2.3.3 non-UDNS aware client
A non-UDNS aware client will send ASCII or whatever is sent from an
application. It can be BCE which will for the client just be ASCII
text.
2.3.4 UDNS aware server
An UDNS aware server MUST handle all in this document and follow:
Dan Oscarsson Expires: 24 August 2001 [Page 6]
Internet Draft Universal DNS 24 February 2001
- If an incoming query contains a long label the answer may contain
a long label and the client is identified as being UDNS aware.
- If the query comes from a non-UDNS aware client and the answer
contains non-ASCII, the non-ASCII labels must be encoded using
BCE.
- If a short label is used in a query and the QNAME contains non-
ASCII, an authorative server must handle the query if the
character encoding can be recognised. If must recognise SCE and
should recognise common encodings used for the labels in the
domain it is authorative for. Answers will use BCE for all labels
except the one matching QNAME. This will allow clients using the
local character set to work in many cases before the resolver code
is upgraded.
2.3.5 non-UDNS aware server
A non-UDNS server can only handle ASCII matching when comparing
names. It can support the transition mechanism with BCE. The
authorative zones will then have to be loaded with manually BCE
encoded names.
2.4 DNSSEC
As labels now can have non-ASCII in them, DNSSEC [RFC2535] need to be
revised so that it also can handle that.
3. User interface issues
Locally on a system or in a user interface a different character set
than the one defined to be used in the DNS protocol may be used.
Therefore software must map between the local character set and the
character set of the protocol, so that human beings can understand
it.
This means that a zone file that is edited in a text editor by a
person before being loaded into a DNS server must be allowed to be in
the local character set. Software may not assume that the user can
edit text encoded in UTF-8. A zone file transmitted between DNS
software that is not handled by a human, can be transmitted using any
format.
When character data is presented to a human or entered by a human,
software must, as good as possible, present it using local character
set and allow it to be entered using the local character set. It is
the responsibility of the software to convert between the local
character set and the one used in the protocol, not the human.
The down coding defined above allows all names to be entered and
displayed for all users, as long as at least the ASCII characters are
supported.
Dan Oscarsson Expires: 27 Februray 2001 [Page 6]
Internet Draft Universal DNS 27 August 2000
4.1 Applications using DNS software
If an application does a call to DNS, it must present the data to the
users in the local character set used by the user, down coding if
necessary. Software used to access DNS should give the application
programmer both the possibility of doing queries and getting
responses using local character set, and using UTF-8.
APIs like getipnodebyname should be updated with a IDN flag that
results in the name being returned using the current locale, instead
of native UTF-8 or ASCII format.
5. Effect on other protocols
3. Effect on other protocols
As now a domain name may include non-ASCII many other protocols that
include domain names need to be updated. For example SMTP, HTTP and
URIs. The ACE format can be used when interfacing with ASCII only
URIs. The BCE format can be used when interfacing with ASCII only
software or protocols. Protocols like SMTP could be extended using
ESMTP and a UTF8 option that defines that all headers are in UTF-8.
@@ -367,34 +382,22 @@ Internet Draft Universal DNS 27 August 2000
recommendations given above, so that a human will see the characters
in their local character set, if possible.
5.1 An example: SMTP
When using SMTP it may be extended to allow UTF-8 in headers and
addresses. It will then have to, when transferring an e-mail to a
SMTP system that have not been extended, encoded e-mail addresses and
IDNs into an ACE.
In this case an e-mail address could look like:
ra--XXXXX.surname@ra--YYYYY.com
where ra--XXXXX is the ACE of the given name and ra--YYYYY is the ACE
of one part of the domain name.
6. Security Considerations
Dan Oscarsson Expires: 24 August 2001 [Page 7]
Internet Draft Universal DNS 24 February 2001
4. Security Considerations
As always with data, if software does not check for data that can be
Dan Oscarsson Expires: 27 Februray 2001 [Page 7]
Internet Draft Universal DNS 27 August 2000
a problem, security may be affected. As more characters than ASCII is
allowed, software only expecting ASCII and with no checks may now get
security problems.
7. References
5. References
[RFC1034] P. Mockapetris, "Domain Names - Concepts and Facilities",
STD 13, RFC 1034, November 1987.
@@ -435,17 +438,18 @@ Internet Draft Universal DNS 27 August 2000
[UDATA] The Unicode Character Database,
ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt.
Dan Oscarsson Expires: 24 August 2001 [Page 8]
Internet Draft Universal DNS 24 February 2001
The database is described in
ftp://ftp.unicode.org/Public/UNIDATA/
UnicodeCharacterDatabase.html.
Dan Oscarsson Expires: 27 Februray 2001 [Page 8]
Internet Draft Universal DNS 27 August 2000
[IDNREQ] James Seng, "Requirements of Internationalized Domain
Names", draft-ietf-idn-requirement.
@@ -470,7 +474,7 @@ Internet Draft Universal DNS 27 August 2000
[RACE] Paul Hoffman, "RACE: Row-based ASCII Compatible Encoding
for IDN", draft-ietf-idn-race.
8. Acknowledgements
6. Acknowledgements
Paul Hoffman giving many comments in our e-mail discussions.
@@ -490,6 +494,14 @@ Author's Address
Telia ProSoft AB
Box 85
201 20 Malmo
Dan Oscarsson Expires: 24 August 2001 [Page 9]
Internet Draft Universal DNS 24 February 2001
Sweden
E-mail: Dan.Oscarsson@trab.se
@@ -497,61 +509,49 @@ Author's Address
Dan Oscarsson Expires: 27 Februray 2001 [Page 9]
Internet Draft Universal DNS 27 August 2000
Dan Oscarsson Expires: 27 Februray 2001 [Page 10]
Dan Oscarsson Expires: 24 August 2001 [Page 10]