RFC 3761 - The E.164 to Uniform Resource Identifiers (URI) D

时间:2006-10-30 来源: 作者: 点击:
NetworkWorkingGroupP.Faltstrom RequestforComments:3761CiscoSystems,Inc. Obsoletes:2916M.Mealling Category:StandardsTrackVeriSign April2004 TheE.164toUniformResourceIdentifiers(URI) DynamicDelegationDiscoverySystem(DDDS)Application(ENUM) StatusofthisM
  Network Working Group                                       P. Faltstrom
Request for Comments: 3761                           Cisco Systems, Inc.
Obsoletes: 2916                                              M. Mealling
Category: Standards Track                                       VeriSign
                                                              April 2004

            The E.164 to Uniform Resource Identifiers (URI)
     Dynamic Delegation Discovery System (DDDS) Application (ENUM)

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2004).  All Rights Reserved.

Abstract

   This document discusses the use of the Domain Name System (DNS) for
   storage of E.164 numbers.  More specifically, how DNS can be used for
   identifying available services connected to one E.164 number.  It
   specifically obsoletes RFC 2916 to bring it in line with the Dynamic
   Delegation Discovery System (DDDS) Application specification found in
   the document series specified in RFC 3401.  It is very important to
   note that it is impossible to read and understand this document
   without reading the documents discussed in RFC 3401.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
       1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . .  3
       1.2. Use for these mechanisms for private dialing plans. . . .  3
       1.3. Application of local policy . . . . . . . . . . . . . . .  3
   2.  The ENUM Application Specifications .  . . . . . . . . . . . .  4
       2.1. Application Unique String . . . . . . . . . . . . . . . .  5
       2.2. First Well Known Rule . . . . . . . . . . . . . . . . . .  5
       2.3. Expected Output . . . . . . . . . . . . . . . . . . . . .  5
       2.4. Valid Databases . . . . . . . . . . . . . . . . . . . . .  5
            2.4.1. Flags. . . . . . . . . . . . . . . . . . . . . . .  6
            2.4.2. Services Parameters. . . . . . . . . . . . . . . .  7
       2.5. What constitutes an ’Enum Resolver’?. . . . . . . . . . .  8
   3.  Registration mechanism for Enumservices .  . . . . . . . . . .  8

       3.1. Registration Requirements . . . . . . . . . . . . . . . .  8
            3.1.1. Functionality Requirement. . . . . . . . . . . . .  8
            3.1.2. Naming requirement . . . . . . . . . . . . . . . .  9
            3.1.3. Security requirement . . . . . . . . . . . . . . .  9
            3.1.4. Publication Requirements . . . . . . . . . . . . . 10
       3.2. Registration procedure. . . . . . . . . . . . . . . . . . 10
            3.2.1. IANA Registration. . . . . . . . . . . . . . . . . 10
            3.2.2. Registration Template. . . . . . . . . . . . . . . 11
   4.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
       4.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 11
   5.  IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 12
   6.  Security Considerations. . . . . . . . . . . . . . . . . . . . 12
       6.1. DNS Security. . . . . . . . . . . . . . . . . . . . . . . 12
       6.2. Caching Security. . . . . . . . . . . . . . . . . . . . . 14
       6.3. Call Routing Security . . . . . . . . . . . . . . . . . . 14
       6.4. URI Resolution Security . . . . . . . . . . . . . . . . . 15
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
   8.  Changes since RFC 2916 . . . . . . . . . . . . . . . . . . . . 15
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
       9.1. Normative References. . . . . . . . . . . . . . . . . . . 16
       9.2. Informative References. . . . . . . . . . . . . . . . . . 16
   10. Authors’ Addresses . . . . . . . . . . . . . . . . . . . . . . 17
   11. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 18

1.  Introduction

   This document discusses the use of the Domain Name System (DNS) for
   storage of E.164 numbers.  More specifically, how DNS can be used for
   identifying available services connected to one E.164 number.  It
   specifically obsoletes RFC 2916 to bring it in line with the Dynamic
   Delegation Discovery System (DDDS) Application specification found in
   the document series specified in RFC 3401 [6].  It is very important
   to note that it is impossible to read and understand this document
   without reading the documents discussed in RFC 3401 [6].

   Through transformation of International Public  Telecommunication
   Numbers in the international format [5], called within this document
   E.164 numbers, into DNS names and the use of existing DNS services
   like delegation through NS records and NAPTR records, one can look up
   what services are available for a specific E.164 in a decentralized
   way with distributed management of the different levels in the lookup
   process.

   The domain "e164.arpa" is being populated in order to provide the
   infrastructure in DNS for storage of E.164 numbers.  In order to
   facilitate distributed operations, this domain is divided into
   subdomains.  Holders of E.164 numbers which want to be listed in DNS
   should contact the appropriate zone administrator according to the

   policy which is attached to the zone.  One should start looking for
   this information by examining the SOA resource record associated with
   the zone, just like in normal DNS operations.

   Of course, as with other domains, policies for such listings will be
   controlled on a subdomain basis and may differ in different parts of
   the world.

1.1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC 2119 [1].

   All other capitalized terms are taken from the vocabulary found in
   the DDDS algorithm specification found in RFC 3403 [2].

1.2.  Use for these mechanisms for private dialing plans

   This document describes the operation of these mechanisms in the
   context of numbers allocated according to the ITU-T recommendation
   E.164.  The same mechanisms might be used for private dialing plans.
   If these mechanisms are re-used, the suffix used for the private
   dialing plan MUST NOT be e164.arpa, to avoid conflict with this
   specification.  Parties to the private dialing plan will need to know
   the suffix used by their private dialing plan for correct operation
   of these mechanisms.  Further, the application unique string used
   SHOULD be the full number as specified, but without the leading ’+’,
   and such private use MUST NOT be called "ENUM".

1.3.  Application of local policy

   The Order field in the NAPTR record specifies in what order the DNS
   records are to be interpreted.  This is because DNS does not
   guarantee the order of records returned in the answer section of a
   DNS packet.  In most ENUM cases this isn’t an issue because the
   typical regular expression will be ’!^.*$!’ since the first query
   often results in a terminal Rule.

   But there are other cases (non-terminal Rules) where two different
   Rules both match the given Application Unique String.  As each Rule
   is evaluated within the algorithm, one may match a more significant
   piece of the AUS than the other.  For example, by using a non-
   terminal NAPTR a given set of numbers is sent to some private-
   dialing-plan-specific zone.  Within that zone there are two Rules
   that state that if a match is for the entire exchange and the service
   is SIP related then the first, SIP-specific rule is used.  But the
   other Rule matches a longer piece of the AUS, specifying that for

   some other service (instant messaging) that the Rule denotes a
   departmental level service.  If the shorter matching Rule comes
   before the longer match, it can ’mask’ the other rules.  Thus, the
   order in which each Rule is tested against the AUS is an important
   corner case that many DDDS applications take advantage of.

   In the case where the zone authority wishes to state that two Rules
   have the same effect or are identical in usage, then the Order for
   those records is set to the same value.  In that case, the Preference
   is used to specify a locally over-ridable suggestion by the zone
   authority that one Rule might simply be better than another for some
   reason.

   For ENUM this specifies where a client is allowed to apply local
   policy and where it is not.  The Order field in the NAPTR is a
   request from the holder of the E.164 number that the records be
   handled in a specific way.  The Preference field is merely a
   suggestion from that E.164 holder that one record might be better
   than another.  A client implementing ENUM MUST adhere to the Order
   field but can simply take the Preference value "on advisement" as
   part of a client context specific selection method.

2.  The ENUM Application Specifications

   This template defines the ENUM DDDS Application according to the
   rules and requirements found in [7].  The DDDS database used by this
   Application is found in [2] which is the document that defines the
   NAPTR DNS Resource Record type.

   ENUM is only applicable for E.164 numbers.  ENUM compliant
   applications MUST only query DNS for what it believes is an E.164
   number.  Since there are numerous dialing plans which can change over
   time, it is probably impossible for a client application to have
   perfect knowledge about every valid and dialable E.164 number.
   Therefore a client application, doing everything within its power,
   can end up with what it thinks is a syntactically correct E.164
   number which in reality is not actually valid or dialable.  This
   implies that applications MAY send DNS queries when, for example, a
   user mistypes a number in a user interface.  Because of this, there
   is the risk that collisions between E.164 numbers and non-E.164
   numbers can occur.  To mitigate this risk, the E2U portion of the
   service field MUST NOT be used for non-E.164 numbers.

2.1.  Application Unique String

   The Application Unique String is a fully qualified E.164 number minus
   any non-digit characters except for the ’+’ character which appears
   at the beginning of the number.  The "+" is kept to provide a well
   understood anchor for the AUS in order to distinguish it from other
   telephone numbers that are not part of the E.164 namespace.

   For example, the E.164 number could start out as "+44-116-496-0348".
   To ensure that no syntactic sugar is allowed into the AUS, all non-
   digits except for "+" are removed, yielding "+441164960348".

2.2.  First Well Known Rule

   The First Well Known Rule for this Application is the identity rule.
   The output of this rule is the same as the input.  This is because
   the E.164 namespace and this Applications databases are organized in
   such a way that it is possible to go directly from the name to the
   smallest granularity of the namespace directly from the name itself.

   Take the previous example, the AUS is "+441164960348".  Applying the
   First Well Known Rule produces the exact same string,
   "+441164960348".

2.3.  Expected Output

   The output of the last DDDS loop is a Uniform Resource Identifier in
   its absolute form according to the ’absoluteURI’ production in the
   Collected ABNF found in RFC2396 [4].

2.4.  Valid Databases

   At present only one DDDS Database is specified for this Application.
   "Dynamic Delegation Discovery System (DDDS) Part Three: The DNS
   Database" (RFC 3403) [2] specifies a DDDS Database that uses the
   NAPTR DNS resource record to contain the rewrite rules.  The Keys for
   this database are encoded as domain-names.

   The output of the First Well Known Rule for the ENUM Application is
   the E.164 number minus all non-digit characters except for the +.  In
   order to convert this to a unique key in this Database the string is
   converted into a domain-name according to this algorithm:

   1. Remove all characters with the exception of the digits.  For
      example, the First Well Known Rule produced the Key
      "+442079460148".  This step would simply remove the leading "+",
      producing "442079460148".

   2. Put dots (".") between each digit.  Example:
      4.4.2.0.7.9.4.6.0.1.4.8

   3. Reverse the order of the digits.  Example:
      8.4.1.0.6.4.9.7.0.2.4.4

   4. Append the string ".e164.arpa" to the end.  Example:
      8.4.1.0.6.4.9.7.0.2.4.4.e164.arpa

   This domain-name is used to request NAPTR records which may contain
   the end result or, if the flags field is blank, produces new keys in
   the form of domain-names from the DNS.

   Some nameserver implementations attempt to be intelligent about items
   that are inserted into the additional information section of a given
   DNS response.  For example, BIND will attempt to determine if it is
   authoritative for a domain whenever it encodes one into a packet.  If
   it is, then it will insert any A records it finds for that domain
   into the additional information section of the answer until the
   packet reaches the maximum length allowed.  It is therefore
   potentially useful for a client to check for this additional
   information.  It is also easy to contemplate an ENUM enhanced
   nameserver that understand the actual contents of the NAPTR records
   it is serving and inserts more appropriate information into the
   additional information section of the response.  Thus, DNS servers
   MAY interpret Flag values and use that information to include
   appropriate resource records in the Additional Information portion of
   the DNS packet.  Clients are encouraged to check for additional
   information but are not required to do so.  See the Additional
   Information Processing section of RFC 3403 [2], Section 4.2 for more
   information on NAPTR records and the Additional Information section
   of a DNS response packet.

   The character set used to encode the substitution expression is UTF-
   8.  The allowed input characters are all those characters that are
   allowed anywhere in an E.164 number.  The characters allowed to be in
   a Key are those that are currently defined for DNS domain-names.

2.4.1.  Flags

   This Database contains a field that contains flags that signal when
   the DDDS algorithm has finished.  At this time only one flag, "U", is
   defined.  This means that this Rule is the last one and that the
   output of the Rule is a URI [4].  See RFC 3404 [3].

   If a client encounters a record with an unknown flag, it MUST ignore
   it and move to the next Rule.  This test takes precedence over any
   ordering since flags can control the interpretation placed on fields.

   A novel flag might change the interpretation of the regexp and/or
   replacement fields such that it is impossible to determine if a
   record matched a given target.

   If this flag is not present then this rule is non-terminal.  If a
   Rule is non-terminal then clients MUST use the Key produced by this
   Rewrite Rule as the new Key in the DDDS loop (i.e., causing the
   client to query for new NAPTR records at the domain-name that is the
   result of this Rule).

2.4.2.  Services Parameters

   Service Parameters for this Application take the following form and
   are found in the Service field of the NAPTR record.

               service-field = "E2U" 1*(servicespec)
               servicespec   = "+" enumservice
               enumservice   = type 0*(subtypespec)
               subtypespec   = ":" subtype
               type          = 1*32(ALPHA / DIGIT)
               subtype       = 1*32(ALPHA / DIGIT)

   In other words, a non-optional "E2U" (used to denote ENUM only
   Rewrite Rules in order to mitigate record collisions) followed by 1
   or more or more Enumservices which indicate what class of
   functionality a given end point offers.  Each Enumservice is
   indicated by an initial ’+’ character.

2.4.2.1.  ENUM Services

   Enumservice specifications contain the functional specification
   (i.e., what it can be used for), the valid protocols, and the URI
   schemes that may be returned.  Note that there is no implicit mapping
   between the textual string "type" or "subtype" in the grammar for the
   Enumservice and URI schemes or protocols.  The mapping, if any, must
   be made explicit in the specification for the Enumservice itself.  A
   registration of a specific Type also has to specify the Subtypes
   allowed.

   The only exception to the registration rule is for Types and Subtypes
   used for experimental purposes, and those are to start with the facet
   "X-".  These elements are unregistered, experimental, and should be
   used only with the active agreement of the parties exchanging them.

   The registration mechanism is specified in Section 3.

2.5.  What constitutes an ’Enum Resolver’?

   There has been some confusion over what exactly an ENUM Resolver
   returns and what relation that has to the ’Note 1’ section in RFC
   3402.  On first reading it seems as though it might be possible for
   an ENUM Resolver to return two Rules.

   The ENUM algorithm always returns a single rule.  Specific
   applications may have application-specific knowledge or facilities
   that allow them to present multiple results or speed selection, but
   these should never change the operation of the algorithm.

3.  Registration mechanism for Enumservices

   As specified in the ABNF found in Section 2.4.2, an ’enumservice’ is
   made up of ’types’ and ’subtypes’.  For any given ’type’, the
   allowable ’subtypes’ must be specified in the registration.  There is
   currently no concept of a registered ’subtype’ outside the scope of a
   given ’type’.  Thus the registration process uses the ’type’ as its
   main key within the IANA Registry.  While the combination of each
   type and all of its subtypes constitutes the allowed values for the
   ’enumservice’ field, it is not sufficient to simply document those
   values.  A complete registration will also include the allowed URI
   schemes, a functional specification, security considerations,
   intended usage, and any other information needed to allow for
   interoperability within ENUM.  In order to be a registered ENUM
   Service, the entire specification, including the template, requires
   approval by the IESG and publication of the Enumservice registration
   specification as an RFC.

3.1.  Registration Requirements

   Service registration proposals are all expected to conform to various
   requirements laid out in the following sections.

3.1.1.  Functionality Requirement

   A registered Enumservice must be able to function as a selection
   mechanism when choosing one NAPTR resource record from another.  That
   means that the registration MUST specify what is expected when using
   that very NAPTR record, and the URI which is the outcome of the use
   of it.

   Specifically, a registered Enumservice MUST specify the URI scheme(s)
   that may be used for the Enumservice, and, when needed, other
   information which will have to be transferred into the URI resolution
   process itself (LDAP Distinguished Names, transferring of the AUS
   into the resulting URI, etc).

3.1.2.  Naming requirement

   An Enumservice MUST be unique in order to be useful as a selection
   criteria.  Since an Enumservice is made up of a type and a type-
   dependent subtype, it is sufficient to require that the ’type’ itself
   be unique.  The ’type’ MUST be unique, conform to the ABNF specified
   in Section 2.4.2, and MUST NOT start with the facet "X-" which is
   reserved for experimental, private use.

   The subtype, being dependent on the type, MUST be unique within a
   given ’type’.  It must conform to the ABNF specified in Section
   2.4.2, and MUST NOT start with the facet "X-" which is reserved for
   experimental, private use.  The subtype for one type MAY be the same
   as a subtype for a different registered type but it is not sufficient
   to simply reference another type’s subtype.  The function of each
   subtype must be specified in the context of the type being
   registered.

3.1.3.  Security requirement

   An analysis of security issues is required for all registered
   Enumservices.  (This is in accordance with the basic requirements for
   all IETF protocols.)

   All descriptions of security issues must be as accurate as possible
   regardless of registration tree.  In particular, a statement that
   there are "no security issues associated with this Enumservice" must
   not be confused with "the security issues associated with this
   Enumservice have not been assessed".

   There is no requirement that an Enumservice must be secure or
   completely free from risks.  Nevertheless, all known security risks
   must be identified in the registration of an Enumservice.

   The security considerations section of all registrations is subject
   to continuing evaluation and modification.

   Some of the issues that should be looked at in a security analysis of
   an Enumservice are:

   1. Complex Enumservices may include provisions for directives that
      institute actions on a user’s resources.  In many cases provision
      can be made to specify arbitrary actions in an unrestricted
      fashion which may then have devastating results.  Especially if
      there is a risk for a new ENUM lookup, and because of that an
      infinite loop in the overall resolution process of the E.164.

   2. Complex Enumservices may include provisions for directives that
      institute actions which, while not directly harmful, may result in
      disclosure of information that either facilitates a subsequent
      attack or else violates the users privacy in some way.

   3. An Enumservice might be targeted for applications that require
      some sort of security assurance but do not provide the necessary
      security mechanisms themselves.  For example, an Enumservice could
      be defined for storage of confidential security services
      information such as alarm systems or message service passcodes,
      which in turn require an external confidentiality service.

3.1.4.  Publication Requirements

   Proposals for Enumservices registrations MUST be published as one of
   the following documents; RFC on the Standards Track, Experimental
   RFC, or as a BCP.

   IANA will retain copies of all Enumservice registration proposals and
   "publish" them as part of the Enumservice Registration tree itself.

3.2.  Registration procedure

3.2.1.  IANA Registration

   Provided that the Enumservice has obtained the necessary approval,
   and the RFC is published, IANA will register the Enumservice and make
   the Enumservice registration available to the community in addition
   to the RFC publication itself.

3.2.1.1.  Location of Enumservice Registrations

   Enumservice registrations will be published in the IANA repository
   and made available via anonymous FTP at the following URI:
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容