mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 22:15:20 +00:00
updated drafts
This commit is contained in:
@@ -1,657 +0,0 @@
|
|||||||
INTERNET-DRAFT A. Costanzo
|
|
||||||
draft-costanzo-dns-gl-03.txt AKC Computer Services Corp.
|
|
||||||
Expires: December 2000 June 2000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Definition of the DNS GL Resource Record
|
|
||||||
used to encode Geographic Locations
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1. Status of this Memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with all
|
|
||||||
provisions of Section 10 of RFC2026 except that the right to produce
|
|
||||||
derivative works is not granted.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
To learn the current status of any Internet-Draft, please check the
|
|
||||||
"1id-abstracts.txt" listing contained in the Internet- Drafts Shadow
|
|
||||||
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
|
|
||||||
munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast, or ftp.isi.edu
|
|
||||||
(US West Coast).
|
|
||||||
|
|
||||||
Distribution of this memo is unlimited.
|
|
||||||
|
|
||||||
|
|
||||||
2. Abstract
|
|
||||||
|
|
||||||
This document defines the format of a new Experimental Resource Record (RR)
|
|
||||||
namely GL for the Domain Naming System (DNS), and reserves a corresponding
|
|
||||||
DNS type mnemonic and numerical code XX (decimal). This definition deals
|
|
||||||
with associating geographical host location mappings to host names within
|
|
||||||
a domain.
|
|
||||||
|
|
||||||
|
|
||||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
||||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this
|
|
||||||
document are to be interpreted as described in RFC-2119.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 1]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
3. Introduction
|
|
||||||
|
|
||||||
The ideal way to manage and maintain a database of information, such as
|
|
||||||
geographical location of Internet hosts, is to delegate responsibility
|
|
||||||
to local domain administrators.
|
|
||||||
|
|
||||||
This document resolves the problem of relating host information within
|
|
||||||
the DNS to geographical locations. This definition has been designed to
|
|
||||||
be easy for the person who administrates DNS for a domain. The author
|
|
||||||
hopes that the lack of requiring longitude, latitude and elevation
|
|
||||||
information and merely being able to enter address information, as you
|
|
||||||
would address a postal letter, will mean broad acceptance and use of the
|
|
||||||
GL resource record.
|
|
||||||
|
|
||||||
The availability of geographical location information will immediately be
|
|
||||||
able to benefit applications in network management, which would enhance
|
|
||||||
and supplement various network tools which currently exist.
|
|
||||||
|
|
||||||
The Domain Name System is ideally suited to provide geographic location
|
|
||||||
information. The information we desire to make available globally needs
|
|
||||||
to be maintained and updated locally (perfect for DNS).
|
|
||||||
|
|
||||||
Although several other attempts by various authors have attempted to
|
|
||||||
created resource records that would allow location information on host to
|
|
||||||
be stored and distributed, none, to the authors knowledge, have either
|
|
||||||
gained acceptance on a wide scale or made allowance for location information
|
|
||||||
that is not within the confines of the planet Earth.
|
|
||||||
|
|
||||||
4. The GL format
|
|
||||||
|
|
||||||
GL has the following format:
|
|
||||||
|
|
||||||
<owner> <ttl> <class> GL <Rdata>
|
|
||||||
|
|
||||||
|
|
||||||
4.1 Rdata Format
|
|
||||||
|
|
||||||
Rdata has the following format:
|
|
||||||
|
|
||||||
<string> <string>
|
|
||||||
|
|
||||||
The format of the RDATA field is two varying length strings separated by
|
|
||||||
a space character. The first, the hierarchical locator, then an address
|
|
||||||
string. Each is quoted (like all strings) only when it has spaces in it,
|
|
||||||
which will never be true for the first string, and almost always for the
|
|
||||||
second.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 2]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
4.1.1 The Hierarchical Locator
|
|
||||||
|
|
||||||
The Hierarchical Locator contains the following components (each separated
|
|
||||||
by a period "."):
|
|
||||||
|
|
||||||
Astronomical Location - (Required)
|
|
||||||
A coded field defining the heavenly body within
|
|
||||||
the known Universe, where the machine resides. The most common
|
|
||||||
entry, "S3" is the planet Earth and is the only currently
|
|
||||||
defined location.
|
|
||||||
|
|
||||||
Man-made devices (Space Stations, Rockets, Probes, etc.) not residing
|
|
||||||
on planet Earth may have Astronimical Locations defined as well.
|
|
||||||
|
|
||||||
New locations MUST be registered with the Internet Assigned Numbers
|
|
||||||
Authority (IANA). Refer to section 6 for additional information.
|
|
||||||
|
|
||||||
Country Code - (Required)
|
|
||||||
|
|
||||||
The country code specifies the country the host computer resides
|
|
||||||
in. The code is a two character fixed length string and may only
|
|
||||||
be included within the Astronimical Location 'S3'. These codes
|
|
||||||
are defined in document ISO 3166-1 and are listed in Appendix A
|
|
||||||
for easy reference.
|
|
||||||
|
|
||||||
Postal Zone - (Optional)
|
|
||||||
|
|
||||||
This rdata component supplies the postal code (Zip Code) for the
|
|
||||||
location the host computer resides. For countries that have a
|
|
||||||
multi-segmented postal coding system, the segments should be
|
|
||||||
separated by period(s) ".".
|
|
||||||
|
|
||||||
This field may be omitted only if the country in which the host
|
|
||||||
machine resides does not use a postal coding system.
|
|
||||||
|
|
||||||
When all three Hierarchical Locator components exist for an DNS
|
|
||||||
entry, the position being defined is considered to be a "precise
|
|
||||||
position".
|
|
||||||
|
|
||||||
|
|
||||||
4.2 The Quoted String
|
|
||||||
|
|
||||||
This string should be entered as you would enter an address on
|
|
||||||
a postal letter within the country specified by the Hierarchical
|
|
||||||
Locator. The country code information should not be included within
|
|
||||||
the quoted string. This string is always required and must be
|
|
||||||
present in the RDATA field.
|
|
||||||
|
|
||||||
The quoted string may be used for both visual reference of the
|
|
||||||
physical address as well as by a software application to help
|
|
||||||
determine a more precise location of the host machine (if the
|
|
||||||
Hierarchical Locator lacks sufficient precision).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 3]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
The only instance in which any application should attempt to
|
|
||||||
interpret the quoted string is in a case where the country
|
|
||||||
code defines a country that does not use, or has not implemented
|
|
||||||
a postal code system.
|
|
||||||
|
|
||||||
No software or application should attempt to override a precise
|
|
||||||
position defined by the Hierarchical Locator with information
|
|
||||||
defined within the quoted string data.
|
|
||||||
|
|
||||||
|
|
||||||
5. Example(s)
|
|
||||||
|
|
||||||
Example 1 (with a postal zone defined):
|
|
||||||
|
|
||||||
donuts A 192.188.192.1
|
|
||||||
GL S3.US.45420.1910 "1425 Arbor Avenue, Dayton OH"
|
|
||||||
|
|
||||||
Example 2 (no postal zone):
|
|
||||||
|
|
||||||
lorinda A 129.122.1.1
|
|
||||||
GL S3.SR "Marthastrasse 64, Shawproject, Uitvlug, Parimaribo"
|
|
||||||
|
|
||||||
Example 3
|
|
||||||
|
|
||||||
; Authoritative data for akc.net.
|
|
||||||
;
|
|
||||||
; note in this example:
|
|
||||||
; uspring, diana and martha (even though the complete postal code was
|
|
||||||
; not entered) are precisely defined
|
|
||||||
;
|
|
||||||
; lorinda, resides in the country of SURINAME, which has not implemented
|
|
||||||
; a postal coding system.
|
|
||||||
;
|
|
||||||
; THIS IS ONLY AN EXAMPLE
|
|
||||||
;
|
|
||||||
@ IN SOA forme.akc.net. postmaster.akc.net.
|
|
||||||
(
|
|
||||||
99071100 ; Serial (yymmddnn)
|
|
||||||
10800 ; Refresh (3 hours)
|
|
||||||
3600 ; Retry (1 hour)
|
|
||||||
3600000 ; Expire (1000 hours)
|
|
||||||
86400 ; Minimum (24 hours)
|
|
||||||
)
|
|
||||||
|
|
||||||
IN NS ns.akc.net.
|
|
||||||
|
|
||||||
uspring IN A 192.188.192.2
|
|
||||||
IN MX 5 mail
|
|
||||||
IN HINFO Vax VMS
|
|
||||||
IN GL S3.US.45420.1910 "1425 Arbor Avenue, Dayton OH"
|
|
||||||
ftp IN CNAME uspring
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 4]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
diana IN A 192.188.192.3
|
|
||||||
IN MX 5 mail
|
|
||||||
IN HINFO Vax VMS
|
|
||||||
IN GL S3.US.07204.1367 "808 Chestnut Street, Roselle
|
|
||||||
Park, NJ"
|
|
||||||
www IN CNAME diana
|
|
||||||
|
|
||||||
martha IN A 192.188.192.4
|
|
||||||
IN MX 5 mail
|
|
||||||
IN HINFO Vax VMS
|
|
||||||
IN GL S3.US.07204 "815 Chestnut Willis Place, Roselle
|
|
||||||
Park, NJ"
|
|
||||||
|
|
||||||
lorinda IN A 129.122.1.1
|
|
||||||
IN GL S3.SR "Marthastrasse 64, Shawproject, Uitvlug,
|
|
||||||
Parimaribo"
|
|
||||||
|
|
||||||
|
|
||||||
6. Registering New Astronomical Location(s)
|
|
||||||
|
|
||||||
New Astronomical Locations (ALs) MUST be registered with the Internet
|
|
||||||
Assigned Numbers Authority (IANA). IANA acts as a central registry for
|
|
||||||
these values. IANA may reject or modify the Astronomical Location
|
|
||||||
registration request if it does not meet the criteria as specified in
|
|
||||||
section 4.1.1.
|
|
||||||
|
|
||||||
Registration requests should be sent via electronic mail to IANA as
|
|
||||||
follows:
|
|
||||||
|
|
||||||
To: IANA@iana.org
|
|
||||||
Subject: Registration of a new Astronomical Location
|
|
||||||
|
|
||||||
The mail message must specify the proposed AL. Documentation defining
|
|
||||||
the AL and its proposed purpose must be included. The documentation must
|
|
||||||
either reference an external non-Internet standards document or an existing
|
|
||||||
or soon to be RFC. If applicable, the documentation should contain a
|
|
||||||
draft version of the future RFC. The draft must be submitted as a
|
|
||||||
RFC according to the normal procedure within a reasonable amount of
|
|
||||||
time after the AL registration has been approved.
|
|
||||||
|
|
||||||
IANA will not register a new Astronmical Location until an actual
|
|
||||||
computer requiring GL data in the DNS resides or will soon reside on a
|
|
||||||
heavenly body other than Earth.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 5]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS May 2000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
7. Notes To Implementors:
|
|
||||||
|
|
||||||
7.1 Defining New Astronimical Locations
|
|
||||||
|
|
||||||
The astronomical location 'S3' is intended to be Sol-Three (i.e. the Earth).
|
|
||||||
The Earth is the 3rd large planet in the solar system. The Sun would be S0
|
|
||||||
(not that we'd have a computer there), but a solar observatory in orbit might
|
|
||||||
be S0-001. Our moon would be S3-1. Other letters and such for catalogued
|
|
||||||
objects. Additionally, the ISS and Mir space stations could use S3-001 (Mir),
|
|
||||||
S3-002 (ISS) now, if they get connected on IP.
|
|
||||||
|
|
||||||
This document only defines 'S3' however the authors strongly suggest that the
|
|
||||||
above nomenclature be followed.
|
|
||||||
|
|
||||||
|
|
||||||
7.2 Other possible uses for GL
|
|
||||||
|
|
||||||
The use of postal codes also is exactly what is needed for credit card address
|
|
||||||
authentication. Sites could (quietly) compare GL info provided on entries from
|
|
||||||
ISPs to what someone enters for additional verification purposes.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 6]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
8. Appendix A: ISO 3166-1 Country Codes
|
|
||||||
|
|
||||||
The ISO country codes are merely listed here for easy reference and may
|
|
||||||
become out-of-date in this document. Any changes in the ISO specification
|
|
||||||
supercede this appendix and the ISO specification must be followed.
|
|
||||||
|
|
||||||
|
|
||||||
AFGHANISTAN AF
|
|
||||||
ALBANIA AL
|
|
||||||
ALGERIA DZ
|
|
||||||
AMERICAN SAMOA AS
|
|
||||||
ANDORRA AD
|
|
||||||
ANGOLA AO
|
|
||||||
ANGUILLA AI
|
|
||||||
ANTARCTICA AQ
|
|
||||||
ANTIGUA AND BARBUDA AG
|
|
||||||
ARGENTINA AR
|
|
||||||
ARMENIA AM
|
|
||||||
ARUBA AW
|
|
||||||
AUSTRALIA AU
|
|
||||||
AUSTRIA AT
|
|
||||||
AZERBAIJAN AZ
|
|
||||||
BAHAMAS BS
|
|
||||||
BAHRAIN BH
|
|
||||||
BANGLADESH BD
|
|
||||||
BARBADOS BB
|
|
||||||
BELARUS BY
|
|
||||||
BELGIUM BE
|
|
||||||
BELIZE BZ
|
|
||||||
BENIN BJ
|
|
||||||
BERMUDA BM
|
|
||||||
BHUTAN BT
|
|
||||||
BOLIVIA BO
|
|
||||||
BOSNIA AND HERZEGOWINA BA
|
|
||||||
BOTSWANA BW
|
|
||||||
BOUVET ISLAND BV
|
|
||||||
BRAZIL BR
|
|
||||||
BRITISH INDIAN OCEAN TERRITORY IO
|
|
||||||
BRUNEI DARUSSALAM BN
|
|
||||||
BULGARIA BG
|
|
||||||
BURKINA FASO BF
|
|
||||||
BURUNDI BI
|
|
||||||
CAMBODIA KH
|
|
||||||
CAMEROON CM
|
|
||||||
CANADA CA
|
|
||||||
CAPE VERDE CV
|
|
||||||
CAYMAN ISLANDS KY
|
|
||||||
CENTRAL AFRICAN REPUBLIC CF
|
|
||||||
CHAD TD
|
|
||||||
CHILE CL
|
|
||||||
CHINA CN
|
|
||||||
CHRISTMAS ISLAND CX
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 7]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
COCOS (KEELING) ISLANDS CC
|
|
||||||
COLOMBIA CO
|
|
||||||
COMOROS KM
|
|
||||||
CONGO CG
|
|
||||||
COOK ISLANDS CK
|
|
||||||
COSTA RICA CR
|
|
||||||
COTE D'IVOIRE CI
|
|
||||||
CROATIA HR
|
|
||||||
CUBA CU
|
|
||||||
CYPRUS CY
|
|
||||||
CZECH REPUBLIC CZ
|
|
||||||
DENMARK DK
|
|
||||||
DJIBOUTI DJ
|
|
||||||
DOMINICA DM
|
|
||||||
DOMINICAN REPUBLIC DO
|
|
||||||
EAST TIMOR TP
|
|
||||||
ECUADOR EC
|
|
||||||
EGYPT EG
|
|
||||||
EL SALVADOR SV
|
|
||||||
EQUATORIAL GUINEA GQ
|
|
||||||
ERITREA ER
|
|
||||||
ESTONIA EE
|
|
||||||
ETHIOPIA ET
|
|
||||||
FALKLAND ISLANDS (MALVINAS) FK
|
|
||||||
FAROE ISLANDS FO
|
|
||||||
FIJI FJ
|
|
||||||
FINLAND FI
|
|
||||||
FRANCE FR
|
|
||||||
FRANCE, METROPOLITAN FX
|
|
||||||
FRENCH GUIANA GF
|
|
||||||
FRENCH POLYNESIA PF
|
|
||||||
FRENCH SOUTHERN TERRITORIES TF
|
|
||||||
GABON GA
|
|
||||||
GAMBIA GM
|
|
||||||
GEORGIA GE
|
|
||||||
GERMANY DE
|
|
||||||
GHANA GH
|
|
||||||
GIBRALTAR GI
|
|
||||||
GREECE GR
|
|
||||||
GREENLAND GL
|
|
||||||
GRENADA GD
|
|
||||||
GUADELOUPE GP
|
|
||||||
GUAM GU
|
|
||||||
GUATEMALA GT
|
|
||||||
GUINEA GN
|
|
||||||
GUINEA-BISSAU GW
|
|
||||||
GUYANA GY
|
|
||||||
HAITI HT
|
|
||||||
HEARD AND MC DONALD ISLANDS HM
|
|
||||||
HONDURAS HN
|
|
||||||
HONG KONG HK
|
|
||||||
HUNGARY HU
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 8]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
ICELAND IS
|
|
||||||
INDIA IN
|
|
||||||
INDONESIA ID
|
|
||||||
IRAN (ISLAMIC REPUBLIC OF) IR
|
|
||||||
IRAQ IQ
|
|
||||||
IRELAND IE
|
|
||||||
ISRAEL IL
|
|
||||||
ITALY IT
|
|
||||||
JAMAICA JM
|
|
||||||
JAPAN JP
|
|
||||||
JORDAN JO
|
|
||||||
KAZAKHSTAN KZ
|
|
||||||
KENYA KE
|
|
||||||
KIRIBATI KI
|
|
||||||
KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP
|
|
||||||
KOREA, REPUBLIC OF KR
|
|
||||||
KUWAIT KW
|
|
||||||
KYRGYZSTAN KG
|
|
||||||
LAO PEOPLE'S DEMOCRATIC REPUBLIC LA
|
|
||||||
LATVIA LV
|
|
||||||
LEBANON LB
|
|
||||||
LESOTHO LS
|
|
||||||
LIBERIA LR
|
|
||||||
LIBYAN ARAB JAMAHIRIYA LY
|
|
||||||
LIECHTENSTEIN LI
|
|
||||||
LITHUANIA LT
|
|
||||||
LUXEMBOURG LU
|
|
||||||
MACAU MO
|
|
||||||
MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF MK
|
|
||||||
MADAGASCAR MG
|
|
||||||
MALAWI MW
|
|
||||||
MALAYSIA MY
|
|
||||||
MALDIVES MV
|
|
||||||
MALI ML
|
|
||||||
MALTA MT
|
|
||||||
MARSHALL ISLANDS MH
|
|
||||||
MARTINIQUE MQ
|
|
||||||
MAURITANIA MR
|
|
||||||
MAURITIUS MU
|
|
||||||
MAYOTTE YT
|
|
||||||
MEXICO MX
|
|
||||||
MICRONESIA (FEDERATED STATES OF) FM
|
|
||||||
MOLDOVA, REPUBLIC OF MD
|
|
||||||
MONACO MC
|
|
||||||
MONGOLIA MN
|
|
||||||
MONTSERRAT MS
|
|
||||||
MOROCCO MA
|
|
||||||
MOZAMBIQUE MZ
|
|
||||||
MYANMAR MM
|
|
||||||
NAMIBIA NA
|
|
||||||
NAURU NR
|
|
||||||
NEPAL NP
|
|
||||||
NETHERLANDS NL
|
|
||||||
NETHERLANDS ANTILLES AN
|
|
||||||
NEW CALEDONIA NC
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 9]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
NEW ZEALAND NZ
|
|
||||||
NICARAGUA NI
|
|
||||||
NIGER NE
|
|
||||||
NIGERIA NG
|
|
||||||
NIUE NU
|
|
||||||
NORFOLK ISLAND NF
|
|
||||||
NORTHERN MARIANA ISLANDS MP
|
|
||||||
NORWAY NO
|
|
||||||
OMAN OM
|
|
||||||
PAKISTAN PK
|
|
||||||
PALAU PW
|
|
||||||
PANAMA PA
|
|
||||||
PAPUA NEW GUINEA PG
|
|
||||||
PARAGUAY PY
|
|
||||||
PERU PE
|
|
||||||
PHILIPPINES PH
|
|
||||||
PITCAIRN PN
|
|
||||||
POLAND PL
|
|
||||||
PORTUGAL PT
|
|
||||||
PUERTO RICO PR
|
|
||||||
QATAR QA
|
|
||||||
REUNION RE
|
|
||||||
ROMANIA RO
|
|
||||||
RUSSIAN FEDERATION RU
|
|
||||||
RWANDA RW
|
|
||||||
ST. HELENA SH
|
|
||||||
SAINT KITTS AND NEVIS KN
|
|
||||||
SAINT LUCIA LC
|
|
||||||
ST. PIERRE AND MIQUELON PM
|
|
||||||
SAINT VINCENT AND THE GRENADINES VC
|
|
||||||
SAMOA WS
|
|
||||||
SAN MARINO SM
|
|
||||||
SAO TOME AND PRINCIPE ST
|
|
||||||
SAUDI ARABIA SA
|
|
||||||
SENEGAL SN
|
|
||||||
SEYCHELLES SC
|
|
||||||
SIERRA LEONE SL
|
|
||||||
SINGAPORE SG
|
|
||||||
SLOVAKIA SK
|
|
||||||
SLOVENIA SI
|
|
||||||
SOLOMON ISLANDS SB
|
|
||||||
SOMALIA SO
|
|
||||||
SOUTH AFRICA ZA
|
|
||||||
SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS
|
|
||||||
SPAIN ES
|
|
||||||
SRI LANKA LK
|
|
||||||
SUDAN SD
|
|
||||||
SURINAME SR
|
|
||||||
SVALBARD AND JAN MAYEN ISLANDS SJ
|
|
||||||
SWAZILAND SZ
|
|
||||||
SWEDEN SE
|
|
||||||
SWITZERLAND CH
|
|
||||||
SYRIAN ARAB REPUBLIC SY
|
|
||||||
|
|
||||||
|
|
||||||
Costanzo [Page 10]
|
|
||||||
|
|
||||||
EXPIRES IN SIX MONTHS June 2000
|
|
||||||
|
|
||||||
TAIWAN, PROVINCE OF CHINA TW
|
|
||||||
TAJIKISTAN TJ
|
|
||||||
TANZANIA, UNITED REPUBLIC OF TZ
|
|
||||||
THAILAND TH
|
|
||||||
TOGO TG
|
|
||||||
TOKELAU TK
|
|
||||||
TONGA TO
|
|
||||||
TRINIDAD AND TOBAGO TT
|
|
||||||
TUNISIA TN
|
|
||||||
TURKEY TR
|
|
||||||
TURKMENISTAN TM
|
|
||||||
TURKS AND CAICOS ISLANDS TC
|
|
||||||
TUVALU TV
|
|
||||||
UGANDA UG
|
|
||||||
UKRAINE UA
|
|
||||||
UNITED ARAB EMIRATES AE
|
|
||||||
UNITED KINGDOM GB
|
|
||||||
UNITED STATES US
|
|
||||||
UNITED STATES MINOR OUTLYING ISLANDS UM
|
|
||||||
URUGUAY UY
|
|
||||||
UZBEKISTAN UZ
|
|
||||||
VANUATU VU
|
|
||||||
VATICAN CITY STATE (HOLY SEE) VA
|
|
||||||
VENEZUELA VE
|
|
||||||
VIET NAM VN
|
|
||||||
VIRGIN ISLANDS (BRITISH) VG
|
|
||||||
VIRGIN ISLANDS (U.S.) VI
|
|
||||||
WALLIS AND FUTUNA ISLANDS WF
|
|
||||||
WESTERN SAHARA EH
|
|
||||||
YEMEN YE
|
|
||||||
YUGOSLAVIA YU
|
|
||||||
ZAIRE ZR
|
|
||||||
ZAMBIA ZM
|
|
||||||
ZIMBABWE ZW
|
|
||||||
|
|
||||||
|
|
||||||
9. Acknowledgments
|
|
||||||
|
|
||||||
The author would like to thank
|
|
||||||
|
|
||||||
James Sears - for his continual editing effort
|
|
||||||
Robert Ullmann - for his input
|
|
||||||
|
|
||||||
and the members of the namedroppers mailing list for both their support and
|
|
||||||
criticism of this document.
|
|
||||||
|
|
||||||
10. Author's Address
|
|
||||||
|
|
||||||
Al Costanzo
|
|
||||||
AKC Computer Services Corp.
|
|
||||||
P.O. Box 4031, Roselle Park, NJ 07204-0531
|
|
||||||
www.AKC.com
|
|
||||||
Phone: +1 908 298 9000
|
|
||||||
Email: AL@AKC.COM
|
|
||||||
|
|
||||||
Costanzo [Page 11]
|
|
19
doc/draft/draft-costanzo-dns-gl-04.txt
Normal file
19
doc/draft/draft-costanzo-dns-gl-04.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
A. Costanzo: al@akc.com
|
||||||
|
|
||||||
|
|
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT David Conrad
|
INTERNET-DRAFT David Conrad
|
||||||
draft-ietf-dnsext-dnssec-okbit-01.txt Nominum Inc.
|
draft-ietf-dnsext-dnssec-okbit-02.txt Nominum Inc.
|
||||||
November, 2000
|
May, 2001
|
||||||
|
|
||||||
Indicating Resolver Support of DNSSEC
|
Indicating Resolver Support of DNSSEC
|
||||||
|
|
||||||
@@ -55,9 +55,9 @@ Abstract
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires May, 2001 [Page 1]
|
Expires October, 2001 [Page 1]
|
||||||
|
|
||||||
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
|
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
|
||||||
|
|
||||||
|
|
||||||
This document discusses a method to avoid these negative impacts,
|
This document discusses a method to avoid these negative impacts,
|
||||||
@@ -74,15 +74,15 @@ draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
|
|||||||
|
|
||||||
2. Rationale
|
2. Rationale
|
||||||
|
|
||||||
As DNSSEC is deployed, the vast majority of queries will be from
|
Initially, as DNSSEC is deployed, the vast majority of queries will
|
||||||
resolvers that are not DNSSEC aware and thus do not understand or
|
be from resolvers that are not DNSSEC aware and thus do not
|
||||||
support the DNSSEC security RRs. When a query from such a resolver
|
understand or support the DNSSEC security RRs. When a query from
|
||||||
is received for a DNSSEC signed zone, the DNSSEC specification
|
such a resolver is received for a DNSSEC signed zone, the DNSSEC
|
||||||
indicates the nameserver must respond with the appropriate DNSSEC
|
specification indicates the nameserver must respond with the
|
||||||
security RRs. As DNS UDP datagrams are limited to 512 bytes
|
appropriate DNSSEC security RRs. As DNS UDP datagrams are limited to
|
||||||
[RFC1035], responses including DNSSEC security RRs have a high
|
512 bytes [RFC1035], responses including DNSSEC security RRs have a
|
||||||
probability of resulting in a truncated response being returned and
|
high probability of resulting in a truncated response being returned
|
||||||
the resolver retrying the query using TCP.
|
and the resolver retrying the query using TCP.
|
||||||
|
|
||||||
TCP DNS queries result in significant overhead due to connection
|
TCP DNS queries result in significant overhead due to connection
|
||||||
setup and teardown. Operationally, the impact of these TCP queries
|
setup and teardown. Operationally, the impact of these TCP queries
|
||||||
@@ -111,9 +111,9 @@ draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires May, 2001 [Page 2]
|
Expires October, 2001 [Page 2]
|
||||||
|
|
||||||
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
|
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
|
||||||
|
|
||||||
|
|
||||||
non-compliant caching or forwarding servers inappropriately copy data
|
non-compliant caching or forwarding servers inappropriately copy data
|
||||||
@@ -167,9 +167,9 @@ draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires May, 2001 [Page 3]
|
Expires October, 2001 [Page 3]
|
||||||
|
|
||||||
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
|
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
|
||||||
|
|
||||||
|
|
||||||
DNSSEC security RRs and SHOULD retry the query without the EDNS0 in
|
DNSSEC security RRs and SHOULD retry the query without the EDNS0 in
|
||||||
@@ -182,16 +182,28 @@ Security Considerations
|
|||||||
that zone as the response may be forged or a non-forged response of
|
that zone as the response may be forged or a non-forged response of
|
||||||
an altered (DO bit cleared) query.
|
an altered (DO bit cleared) query.
|
||||||
|
|
||||||
IANA Considerations
|
IANA considerations:
|
||||||
|
|
||||||
Allocation of the most significant bit of the Z field in the EDNS0
|
EDNS0[RFC2761] defines 16 bits as extened flags in the OPT record,
|
||||||
OPT meta-RR is required.
|
these bits are encoded into the TTL field of the OPT record (RFC2761
|
||||||
|
section 4.6).
|
||||||
|
|
||||||
|
This document reserves one of these bits as the OK bit. It is
|
||||||
|
requested that the left most bit be allocated. Thus the USE of the
|
||||||
|
OPT record TTL field would look like
|
||||||
|
|
||||||
|
+0 (MSB) +1 (LSB)
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
0: | EXTENDED-RCODE | VERSION |
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
2: |DO| Z |
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
|
||||||
Acknowledgements
|
Acknowledgements
|
||||||
|
|
||||||
This document is based on a rough draft by Bob Halley with input from
|
This document is based on a rough draft by Bob Halley with input from
|
||||||
Olafur Gudmundsson, Andreas Gustafsson, Brian Wellington, Randy Bush,
|
Olafur Gudmundsson, Andreas Gustafsson, Brian Wellington, Randy Bush,
|
||||||
Rob Austein, and Steve Bellovin.
|
Rob Austein, Steve Bellovin, and Erik Nordmark.
|
||||||
|
|
||||||
References
|
References
|
||||||
|
|
||||||
@@ -208,6 +220,14 @@ References
|
|||||||
2535, March 1999.
|
2535, March 1999.
|
||||||
|
|
||||||
[RFC2671] Vixie, P., Extension Mechanisms for DNS (EDNS0)", RFC 2671,
|
[RFC2671] Vixie, P., Extension Mechanisms for DNS (EDNS0)", RFC 2671,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Expires October, 2001 [Page 4]
|
||||||
|
|
||||||
|
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
|
||||||
|
|
||||||
|
|
||||||
August 1999
|
August 1999
|
||||||
|
|
||||||
Author's Address
|
Author's Address
|
||||||
@@ -220,14 +240,6 @@ Author's Address
|
|||||||
|
|
||||||
Phone: +1 650 779 6003
|
Phone: +1 650 779 6003
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires May, 2001 [Page 4]
|
|
||||||
|
|
||||||
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Email: david.conrad@nominum.com
|
Email: david.conrad@nominum.com
|
||||||
|
|
||||||
|
|
||||||
@@ -267,17 +279,5 @@ Full Copyright Statement
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Expires October, 2001 [Page 5]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires May, 2001 [Page 5]
|
|
||||||
|
|
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
DNEXT Working Group S. Rose
|
DNEXT Working Group S. Rose
|
||||||
Internet Draft NIST
|
Internet Draft NIST
|
||||||
Expires: August 2001 February 2001
|
Expires: November 2001 April 2001
|
||||||
Category: Informational
|
Category: Informational
|
||||||
|
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ Category: Informational
|
|||||||
|
|
||||||
DNS Security Document Roadmap
|
DNS Security Document Roadmap
|
||||||
------------------------------
|
------------------------------
|
||||||
<draft-ietf-dnsext-dnssec-roadmap-02.txt>
|
<draft-ietf-dnsext-dnssec-roadmap-03.txt>
|
||||||
|
|
||||||
|
|
||||||
Status of this Document
|
Status of this Document
|
||||||
@@ -61,7 +61,7 @@ Rose [Page 1]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
overview of what to find in which document and author
|
overview of what to find in which document and author
|
||||||
@@ -120,7 +120,7 @@ Rose [Page 2]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
1. Introduction
|
1. Introduction
|
||||||
@@ -180,7 +180,7 @@ Rose [Page 3]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
possible that some documents fall into more than one of these
|
possible that some documents fall into more than one of these
|
||||||
@@ -207,11 +207,12 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
| [RFC2538, | | [RFC2535, | | [SSH-DNS] |
|
| [RFC2538, | | [RFC2535, | | [SSH-DNS] |
|
||||||
| RFC2931, | | RFC3007, | +-------------+
|
| RFC2931, | | RFC3007, | +-------------+
|
||||||
| NO] | | RFC3008, |
|
| NO] | | RFC3008, |
|
||||||
+------------+ | CLARIFY, |
|
+------------+ | RFC3090, |
|
||||||
| SIZE ] |
|
| SIZE ] |
|
||||||
| OKBIT, |
|
| OKBIT, |
|
||||||
| ADBIT, |
|
| ADBIT, |
|
||||||
| OPTIN ] |
|
| OPTIN, |
|
||||||
|
| PARSIG ] |
|
||||||
+-----------+
|
+-----------+
|
||||||
|
|
|
|
||||||
|
|
|
|
||||||
@@ -233,14 +234,13 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Rose [Page 4]
|
Rose [Page 4]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
The "DNSSEC protocol" document set refers to the document that makes
|
The "DNSSEC protocol" document set refers to the document that makes
|
||||||
@@ -258,8 +258,9 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
lines of RFC/Internet Draft author guidelines). Also, the portions
|
lines of RFC/Internet Draft author guidelines). Also, the portions
|
||||||
of the specification to be modified SHOULD be synopsized in the new
|
of the specification to be modified SHOULD be synopsized in the new
|
||||||
document for the benefit of the reader. The "DNSSEC protocol" set
|
document for the benefit of the reader. The "DNSSEC protocol" set
|
||||||
includes the documents [RFC2535], [RFC3007], [RFC3008], [CLARIFY],
|
includes the documents [RFC2535], [RFC3007], [RFC3008], [RFC3090],
|
||||||
[SIZE], [OKBIT], [ADBIT] and their derivative documents.
|
[SIZE], [OKBIT], [ADBIT], [OPTIN], [PARSIG] and their derivative
|
||||||
|
documents.
|
||||||
|
|
||||||
The "New Security RRs" set refers to the group of documents that seek
|
The "New Security RRs" set refers to the group of documents that seek
|
||||||
to add additional Resource Records to the set of base DNS Record
|
to add additional Resource Records to the set of base DNS Record
|
||||||
@@ -289,8 +290,7 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
vidual user public keys (PGP, e-mail, etc.) Some documents in this
|
vidual user public keys (PGP, e-mail, etc.) Some documents in this
|
||||||
group may fall beyond the DNSEXT WG scope, but they are included
|
group may fall beyond the DNSEXT WG scope, but they are included
|
||||||
because of their use of the security extensions. The documents in
|
because of their use of the security extensions. The documents in
|
||||||
this group should not propose any changes to the DNS protocol to sup-
|
this group should not propose any changes to the DNS protocol to
|
||||||
port other protocols; only how existing DNS security records and
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -300,9 +300,10 @@ Rose [Page 5]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
|
support other protocols; only how existing DNS security records and
|
||||||
transactions can be used to support other protocols. One such docu-
|
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
|
ment is [SSH-DNS] which deals with storing SSH keys in the DNS using
|
||||||
the security records.
|
the security records.
|
||||||
@@ -318,8 +319,8 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
two Internet Drafts that fall under this category: the report on the
|
two Internet Drafts that fall under this category: the report on the
|
||||||
CAIRN DNSSEC testbed [CAIRN] and a draft on security key rollover
|
CAIRN DNSSEC testbed [CAIRN] and a draft on security key rollover
|
||||||
[ROLLOVER]. These documents were submitted through the DNSOP Working
|
[ROLLOVER]. These documents were submitted through the DNSOP Working
|
||||||
Group, however the main concern of thesee documents is the implemen-
|
Group, however the main concern of these documents is the implementa-
|
||||||
tation and limitations of the DNS security extensions, hence their
|
tion and limitations of the DNS security extensions, hence their
|
||||||
interest to the DNS security community. The CAIRN draft deals with
|
interest to the DNS security community. The CAIRN draft deals with
|
||||||
the implementation of a secure DNS, and the draft on key rollover
|
the implementation of a secure DNS, and the draft on key rollover
|
||||||
deals with updating DNS keys in a secure fashion. Authors of docu-
|
deals with updating DNS keys in a secure fashion. Authors of docu-
|
||||||
@@ -345,12 +346,11 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
col to add security should follow common guidelines as to minimum
|
col to add security should follow common guidelines as to minimum
|
||||||
required content and structure. It is the purpose of this document
|
required content and structure. It is the purpose of this document
|
||||||
roadmap to establish criteria for content that any new DNS security
|
roadmap to establish criteria for content that any new DNS security
|
||||||
protocol specifications document SHOULD contain. This criteria
|
protocol specifications document SHOULD contain. These criteria
|
||||||
SHOULD be interpreted as a minimum set of information required/needed
|
SHOULD be interpreted as a minimum set of information required/needed
|
||||||
in a document, any additional information regarding the specific
|
in a document, any additional information regarding the specific
|
||||||
extension should also be included in the document. These criteria
|
extension should also be included in the document. These criteria
|
||||||
are not officially part of the IETF guidelines regarding RFC/Internet
|
are not officially part of the IETF guidelines regarding RFC/Internet
|
||||||
Drafts, but should be considered as guidance to promote uniformity to
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -360,9 +360,10 @@ Rose [Page 6]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
|
Drafts, but should be considered as guidance to promote uniformity to
|
||||||
Working Group documents.
|
Working Group documents.
|
||||||
|
|
||||||
Since the addition of security to the DNS protocol is now considered
|
Since the addition of security to the DNS protocol is now considered
|
||||||
@@ -409,8 +410,7 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
In addition, authors are encouraged to include any necessary descrip-
|
In addition, authors are encouraged to include any necessary descrip-
|
||||||
tion of the algorithm itself, as well as any know/suspected
|
tion of the algorithm itself, as well as any know/suspected
|
||||||
weaknesses as an appendix to the document. This is for reference
|
weaknesses as an appendix to the document. This is for reference
|
||||||
only, as the goals of the DNSEXT working group is to propose exten-
|
only, as the goals of the DNSEXT working group is to propose
|
||||||
sions to the DNS protocol, not cryptographic research.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -420,7 +420,10 @@ Rose [Page 7]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
|
extensions to the DNS protocol, not cryptographic research.
|
||||||
|
|
||||||
|
|
||||||
4.3 Refinement of Security Procedures
|
4.3 Refinement of Security Procedures
|
||||||
@@ -468,9 +471,6 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
6. Acknowledgements
|
6. Acknowledgements
|
||||||
|
|
||||||
In addition to the RFCs mentioned in this document, there are also
|
In addition to the RFCs mentioned in this document, there are also
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -480,41 +480,44 @@ Rose [Page 8]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 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.
|
not be able to access these documents through the RFC repositories.
|
||||||
For that reason, the version of the Internet drafts that were refer-
|
All of these documents are "Work in Progress" and are subject to
|
||||||
enced in this document are given below:
|
change, therefore a version number is not supplied for the current
|
||||||
|
revision.
|
||||||
|
|
||||||
* SIGALG: R. Austein, P. Vixie. "DNS SIGALGOPT". <draft-ietf-
|
* SIGALG: R. Austein, P. Vixie. "DNS SIGALGOPT". <draft-ietf-
|
||||||
dnsind-sigalgopt-00.txt>
|
dnsind-sigalgopt-NN.txt>
|
||||||
* CLARIFY: E. Lewis. "DNS Security Extension Clarification on Zone
|
|
||||||
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-
|
* CAIRN: D. Massey, T. Lehman, and E. Lewis. "DNSSEC Implementa-
|
||||||
tion in the CAIRN Testbed". <draft-ietf-dnsop-dnsseccairn-00.txt>
|
tion in the CAIRN Testbed". <draft-ietf-dnsop-dnsseccairn-NN.txt>
|
||||||
* UPDATE: B. Wellington. "Secure Domain Name System (DNS) Dynamic
|
* UPDATE: B. Wellington. "Secure Domain Name System (DNS) Dynamic
|
||||||
Update". <draft-ietf-simple-secure-update-02.txt>
|
Update". <draft-ietf-simple-secure-update-NN.txt>
|
||||||
* SIZE: O. Gudmundsson. "DNSSEC and IPv6 A6 aware server/resolver
|
* SIZE: O. Gudmundsson. "DNSSEC and IPv6 A6 aware server/resolver
|
||||||
message size requirements". <draft-ietf-dnsext-message-size-03.txt>
|
message size requirements". <draft-ietf-dnsext-message-size-NN.txt>
|
||||||
* GSS-TSIG: S. Kwan, P. Garg, J. Gilroy, and L. Esibov. "GSS
|
* GSS-TSIG: S. Kwan, P. Garg, J. Gilroy, and L. Esibov. "GSS
|
||||||
Algorithm for TSIG (GSS-TSIG)". <draft-ietf-dnsext-gss-tsig-01.txt>
|
Algorithm for TSIG (GSS-TSIG)". <draft-ietf-dnsext-gss-tsig-NN.txt>
|
||||||
* NO: S. A. Josefsson. "Authenticating Denial of Existence in DNS
|
* NO: S. A. Josefsson. "Authenticating Denial of Existence in DNS
|
||||||
with Minimum Disclosure". <draft-ietf-dnsext-not-existing-rr-01.txt>
|
with Minimum Disclosure". <draft-ietf-dnsext-not-existing-rr-NN.txt>
|
||||||
* OKBIT: D. Conrad. "Indicting Resolver Support of DNSSEC".
|
* OKBIT: D. Conrad. "Indicting Resolver Support of DNSSEC".
|
||||||
<draft-ietf-dnsext-dnssec-okbit-01.txt>
|
<draft-ietf-dnsext-dnssec-okbit-NN.txt>
|
||||||
* RSA-SHA: D. Eastlake. "RSA/SHA-1 SIGs and RSA KEYs in the
|
* RSA-SHA: D. Eastlake. "RSA/SHA-1 SIGs and RSA KEYs in the
|
||||||
Domain Name System (DNS)" <draft-ietf-dnsext-rsa-02.txt>
|
Domain Name System (DNS)" <draft-ietf-dnsext-rsa-NN.txt>
|
||||||
* ROLLOVER: M. Andrews, D. Eastlake. "Domain Name System (DNS)
|
* ROLLOVER: M. Andrews, D. Eastlake. "Domain Name System (DNS)
|
||||||
Security Key Rollover" <draft-ietf-dnsopt-rollover-00.txt>.
|
Security Key Rollover" <draft-ietf-dnsopt-rollover-NN.txt>.
|
||||||
* ADBIT: B. Wellington. "Redefinition of DNS AD bit" <draft-
|
* ADBIT: B. Wellington. "Redefinition of DNS AD bit" <draft-
|
||||||
ietf-dnsext-ad-is-secure-01.txt>
|
ietf-dnsext-ad-is-secure-NN.txt>
|
||||||
* OPTIN: M. Kosters. "DNSSEC Opt-in for Large Zones" <draft-
|
* OPTIN: M. Kosters. "DNSSEC Opt-in for Large Zones" <draft-
|
||||||
kosters-dnsext-dnssec-opt-in-00.txt>
|
kosters-dnsext-dnssec-opt-in-NN.txt>
|
||||||
* SSH-DNS: W. Griffin. "Storing SSH Host Keys in DNS" <draft-
|
* SSH-DNS: W. Griffin. "Storing SSH Host Keys in DNS" <draft-
|
||||||
griffin-ssh-host-keys-in-dns-00.txt>
|
griffin-ssh-host-keys-in-dns-NN.txt>
|
||||||
|
* PARSIG: R. Geiben, T. Lindgreen. "Parent's SIG Over Child's
|
||||||
|
KEY" <draft-ietf-dnsext-parent-sig-NN.txt>
|
||||||
|
|
||||||
|
|
||||||
7. References
|
7. References
|
||||||
|
|
||||||
@@ -528,9 +531,6 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
(DNS)", RFC 2536, March 1999.
|
(DNS)", RFC 2536, March 1999.
|
||||||
|
|
||||||
[RFC2137] D. Eastlake, "Secure Domain Name System Dynamic Update",
|
[RFC2137] D. Eastlake, "Secure Domain Name System Dynamic Update",
|
||||||
RFC 2137, April 1997.
|
|
||||||
|
|
||||||
[RFC2539] D. Eastlake, "Storage of Diffie-Hellman Keys in the Domain
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -540,9 +540,12 @@ Rose [Page 9]
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
|
RFC 2137, April 1997.
|
||||||
|
|
||||||
|
[RFC2539] D. Eastlake, "Storage of Diffie-Hellman Keys in the Domain
|
||||||
Name System (DNS)", RFC 2539, March 1999.
|
Name System (DNS)", RFC 2539, March 1999.
|
||||||
|
|
||||||
[RFC2538] D. Eastlake, O. Gudmundsson, "Storing Certificates in the
|
[RFC2538] D. Eastlake, O. Gudmundsson, "Storing Certificates in the
|
||||||
@@ -554,6 +557,9 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
[RFC2931] D. Eastlake "DNS Request and Transaction Signatures
|
[RFC2931] D. Eastlake "DNS Request and Transaction Signatures
|
||||||
(SIG(0))" RFC 2931, September 2000.
|
(SIG(0))" RFC 2931, September 2000.
|
||||||
|
|
||||||
|
[RFC3090] E. Lewis "DNS Security Extensions Clarification on Zone
|
||||||
|
Status" RFC 3090, March 2001.
|
||||||
|
|
||||||
[RFC1591] J. Postal, "Domain Name System Structure and Delegation",
|
[RFC1591] J. Postal, "Domain Name System Structure and Delegation",
|
||||||
RFC 1591, March 1994.
|
RFC 1591, March 1994.
|
||||||
|
|
||||||
@@ -588,19 +594,46 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expiration and File Name:
|
|
||||||
|
|
||||||
This draft, titled <draft-ietf-dnsext-dnssec-roadmap-02.txt> expires June 2001
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Rose [Page 10]
|
Rose [Page 10]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INTERNET-DRAFT DNS Security Document Roadmap February 2001
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
|
Expiration and File Name:
|
||||||
|
|
||||||
|
This draft, titled <draft-ietf-dnsext-dnssec-roadmap-03.txt> expires November
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2001
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Full Copyright Statement
|
Full Copyright Statement
|
||||||
@@ -618,6 +651,18 @@ Full Copyright Statement
|
|||||||
Internet organizations, except as needed for the purpose of develop-
|
Internet organizations, except as needed for the purpose of develop-
|
||||||
ing Internet standards in which case the procedures for copyrights
|
ing Internet standards in which case the procedures for copyrights
|
||||||
defined in the Internet Standards process must be followed, or as
|
defined in the Internet Standards process must be followed, or as
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Rose [Page 11]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT DNS Security Document Roadmap April 2001
|
||||||
|
|
||||||
|
|
||||||
required to translate it into languages other than English.
|
required to translate it into languages other than English.
|
||||||
|
|
||||||
The limited permissions granted above are perpetual and will not be
|
The limited permissions granted above are perpetual and will not be
|
||||||
@@ -654,6 +699,21 @@ Full Copyright Statement
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Rose [Page 11]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Rose [Page 12]
|
||||||
|
|
||||||
|
|
@@ -1,558 +0,0 @@
|
|||||||
|
|
||||||
INTERNET DRAFT M. Ohta
|
|
||||||
draft-ietf-dnsext-ixfr-01.txt Tokyo Institute of Technology
|
|
||||||
June 2000
|
|
||||||
|
|
||||||
Incremental Zone Transfer in DNS
|
|
||||||
|
|
||||||
Status of this Memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with
|
|
||||||
all provisions of Section 10 of RFC2026.
|
|
||||||
|
|
||||||
Internet-Drafts are working documents of the Internet Engineering
|
|
||||||
Task Force (IETF), its areas, and its working groups. Note that
|
|
||||||
other groups may also distribute working documents as Internet-
|
|
||||||
Drafts.
|
|
||||||
|
|
||||||
Internet-Drafts are draft documents valid for a maximum of six months
|
|
||||||
and may be updated, replaced, or obsoleted by other documents at any
|
|
||||||
time. It is inappropriate to use Internet- Drafts as reference
|
|
||||||
material or to cite them other than as "work in progress."
|
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
|
||||||
http://www.ietf.org/shadow.html.
|
|
||||||
|
|
||||||
Copyright (C) The Internet Society (March/5/2000). All Rights
|
|
||||||
Reserved.
|
|
||||||
|
|
||||||
Abstract
|
|
||||||
|
|
||||||
This document proposes extensions to the DNS protocols to provide an
|
|
||||||
incremental zone transfer (IXFR) mechanism.
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
|
|
||||||
For rapid propagation of changes to a DNS database [STD13], it is
|
|
||||||
necessary to reduce latency by actively notifying servers of the
|
|
||||||
change. This is accomplished by the NOTIFY extension of the DNS
|
|
||||||
[NOTIFY].
|
|
||||||
|
|
||||||
The current full zone transfer mechanism (AXFR) is not an efficient
|
|
||||||
means to propagate changes to a small part of a zone, as it transfers
|
|
||||||
the entire zone file.
|
|
||||||
|
|
||||||
Incremental transfer (IXFR) as proposed is a more efficient
|
|
||||||
mechanism, as it transfers only the changed portion(s) of a zone.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 1]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
In this document, a secondary name server which requests IXFR is
|
|
||||||
called an IXFR client and a primary or secondary name server which
|
|
||||||
responds to the request is called an IXFR server.
|
|
||||||
|
|
||||||
The current AXFR specification in [STD13] is very terse, and in
|
|
||||||
practice it does not contain sufficient information to construct
|
|
||||||
interoperable implementations. This memo assumes AXFR protocol used
|
|
||||||
in existing interoperable implementations.
|
|
||||||
|
|
||||||
2. Brief Description of the Protocol
|
|
||||||
|
|
||||||
If an IXFR client, which likely has an older version of a zone,
|
|
||||||
thinks it needs new information about the zone (typically through SOA
|
|
||||||
refresh timeout or the NOTIFY mechanism), it sends an IXFR message
|
|
||||||
containing the SOA serial number of its, presumably outdated, copy of
|
|
||||||
the zone.
|
|
||||||
|
|
||||||
An IXFR server should keep record of the newest version of the zone
|
|
||||||
and the differences between that copy and several older versions.
|
|
||||||
When an IXFR request with an older version number is received, the
|
|
||||||
IXFR server needs to send only the differences required to make that
|
|
||||||
version current. Alternatively, the server may choose to transfer
|
|
||||||
the entire zone just as in a normal full zone transfer.
|
|
||||||
|
|
||||||
When a zone has been updated, it should be saved in stable storage
|
|
||||||
before the new version is used to respond to IXFR (or AXFR) queries.
|
|
||||||
Otherwise, if the server crashes, data which is no longer available
|
|
||||||
may have been distributed to secondary servers, which can cause
|
|
||||||
persistent database inconsistencies.
|
|
||||||
|
|
||||||
If an IXFR query with the same or newer version number than that of
|
|
||||||
the server is received, it is replied to with a single SOA record of
|
|
||||||
the server's current version, just as a SOA query before TCP AXFR.
|
|
||||||
|
|
||||||
Transport of a query may be by either UDP or TCP. If an IXFR query
|
|
||||||
is via UDP, the IXFR server may attempt to reply using UDP if the
|
|
||||||
entire response can be contained in a single UDP packet. If the UDP
|
|
||||||
reply does not fit, the query is responded to with a single SOA
|
|
||||||
record of the server's current version to inform the client that a
|
|
||||||
TCP query should be initiated.
|
|
||||||
|
|
||||||
Thus, a client should first make an IXFR query using UDP. If the
|
|
||||||
query type or other part of the query is not recognized by the
|
|
||||||
server, an AXFR (preceded by a UDP SOA query) should be tried,
|
|
||||||
ensuring backward compatibility. If the query response is a single
|
|
||||||
packet with the entire new zone, or if the server does not have a
|
|
||||||
newer version than the client, everything is done. Otherwise, a TCP
|
|
||||||
IXFR query should be tried.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 2]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
To ensure integrity, servers should use UDP checksums for all UDP
|
|
||||||
responses. A cautious client which receives a UDP packet with a
|
|
||||||
checksum value of zero should ignore the result and try a TCP IXFR
|
|
||||||
instead.
|
|
||||||
|
|
||||||
The query type value of IXFR assigned by IANA is 251.
|
|
||||||
|
|
||||||
3. Query Format
|
|
||||||
|
|
||||||
The IXFR query packet format is the same as that of a normal DNS
|
|
||||||
query, but with the query type being IXFR and the authority section
|
|
||||||
containing the SOA record of client's version of the zone.
|
|
||||||
|
|
||||||
4. Response Format
|
|
||||||
|
|
||||||
If incremental zone transfer is not available, the entire zone is
|
|
||||||
returned. The first and the last RR of the response is the SOA
|
|
||||||
record of the zone. I.e. the behavior is the same as an AXFR
|
|
||||||
response except the query type is IXFR.
|
|
||||||
|
|
||||||
If incremental zone transfer is available, one or more difference
|
|
||||||
sequences is returned. The list of difference sequences is preceded
|
|
||||||
and followed by a copy of the server's current version of the SOA.
|
|
||||||
|
|
||||||
Each difference sequence represents one update to the zone (one SOA
|
|
||||||
serial change) consisting of deleted RRs and added RRs. The first RR
|
|
||||||
of the deleted RRs is the older SOA RR and the first RR of the added
|
|
||||||
RRs is the newer SOA RR.
|
|
||||||
|
|
||||||
Modification of an RR is performed first by removing the original RR
|
|
||||||
and then adding the modified one.
|
|
||||||
|
|
||||||
Each individual difference sequence must leave the zone in a
|
|
||||||
consistent state with contents identical to those visible in the
|
|
||||||
master at the time identified by the new SOA serial number. During a
|
|
||||||
transfer, the slave server may save the zone data to stable storage
|
|
||||||
and use it in responding to queries after applying one or more
|
|
||||||
complete difference sequences even if they do not yet form a complete
|
|
||||||
incremental transfer.
|
|
||||||
|
|
||||||
A difference sequence which indicates the removal of a non-existent
|
|
||||||
RR is an indication of an error that the IXFR client is out-of-sync
|
|
||||||
with the IXFR server. The IXFR SHOULD be aborted, and an AXFR
|
|
||||||
requested from the same server. A difference sequence which
|
|
||||||
indicates the addition of a seemingly duplicate (though a node may
|
|
||||||
have multiple TXT RR's with duplicate content) or conflicting RR may
|
|
||||||
just be a malformed zone. In any case the IXFR should be aborted and
|
|
||||||
AXFR performed.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 3]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
The sequences of differential information are ordered oldest first
|
|
||||||
newest last. Thus, the differential sequences are the history of
|
|
||||||
changes made since the version known by the IXFR client up to the
|
|
||||||
server's current version.
|
|
||||||
|
|
||||||
RR sets (RRs of the same RR types) in the incremental transfer
|
|
||||||
messages may be partial. For example, if a single RR of multiple RRs
|
|
||||||
of the same RR type changes, only the changed RR needs to be
|
|
||||||
transferred.
|
|
||||||
|
|
||||||
An IXFR client, should only replace an older version with a newer
|
|
||||||
version after all the differences have been successfully processed.
|
|
||||||
|
|
||||||
An incremental response is different from that of a non-incremental
|
|
||||||
response in that it begins with two SOA RRs, the server's current SOA
|
|
||||||
followed by the SOA of the client's version which is about to be
|
|
||||||
replaced.
|
|
||||||
|
|
||||||
A slave receiving an IXFR response needs to classify it as one of the
|
|
||||||
following four cases:
|
|
||||||
|
|
||||||
UDP-overflow An indication that the transfer will not fit in a
|
|
||||||
UDP packet and should be retried over TCP
|
|
||||||
|
|
||||||
up-to-date An indication that the serial number of the
|
|
||||||
request is current and no transfer is necessary
|
|
||||||
|
|
||||||
incremental An incremental transfer
|
|
||||||
|
|
||||||
nonincremental A full zone transfer
|
|
||||||
|
|
||||||
Performing this classification requires some care. For example,
|
|
||||||
UDP-overflow responses differ from UDP up-to-date responses only in
|
|
||||||
the value of the SOA serial number. Also, to distinguish between a
|
|
||||||
nonincremental and an incremental transfer, the slave needs to
|
|
||||||
receive the first two response RRs and check whether the second one
|
|
||||||
is a SOA. If the master chose to transmit each RR in a separate TCP
|
|
||||||
message, this involves waiting for a second TCP response message. On
|
|
||||||
the other hand, in the case of an up-to-date response, the slave must
|
|
||||||
not wait for a second TCP message as doing so would cause it to hang
|
|
||||||
waiting for a message the master will never send. Therefore, the
|
|
||||||
slave must examine the first message and eliminate the possibility
|
|
||||||
that it is a TCP up-to-date response before it attempts to receive a
|
|
||||||
second message.
|
|
||||||
|
|
||||||
Slaves must not attempt to classify a response based on incidental
|
|
||||||
information such as the presence or absence of a question section,
|
|
||||||
the QTYPE field of a possible question section, or the number of
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 4]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
response RRs in a TCP response message.
|
|
||||||
|
|
||||||
An example algorithm for classifying IXFR responses appears in
|
|
||||||
Appendix A.
|
|
||||||
|
|
||||||
5. Purging Strategy
|
|
||||||
|
|
||||||
An IXFR server can not be required to hold all previous versions
|
|
||||||
forever and may delete them anytime. In general, there is a trade-
|
|
||||||
off between the size of storage space and the possibility of using
|
|
||||||
IXFR.
|
|
||||||
|
|
||||||
Information about older versions should be purged if the total length
|
|
||||||
of an IXFR response would be longer than that of an AXFR response.
|
|
||||||
Given that the purpose of IXFR is to reduce AXFR overhead, this
|
|
||||||
strategy is quite reasonable. The strategy assures that the amount
|
|
||||||
of storage required is at most twice that of the current zone
|
|
||||||
information.
|
|
||||||
|
|
||||||
Information older than the SOA expire period should also be purged.
|
|
||||||
|
|
||||||
6. Optional Condensation of Multiple Versions
|
|
||||||
|
|
||||||
An IXFR server may optionally condense multiple difference sequences
|
|
||||||
into a single difference sequence, thus, dropping information on
|
|
||||||
intermediate versions.
|
|
||||||
|
|
||||||
This may be beneficial if a lot of versions, not all of which are
|
|
||||||
useful, are generated. For example, if multiple ftp servers share a
|
|
||||||
single DNS name and the IP address associated with the name is
|
|
||||||
changed once a minute to balance load between the ftp servers, it is
|
|
||||||
not so important to keep track of all the history of changes.
|
|
||||||
|
|
||||||
But, this feature may not be so useful if an IXFR client has access
|
|
||||||
to two IXFR servers: A and B, with inconsistent condensation results.
|
|
||||||
The current version of the IXFR client, received from server A, may
|
|
||||||
be unknown to server B. In such a case, server B can not provide
|
|
||||||
incremental data from the unknown version and a full zone transfer is
|
|
||||||
necessary.
|
|
||||||
|
|
||||||
Condensation is completely optional. Clients can't detect from the
|
|
||||||
response whether the server has condensed the reply or not.
|
|
||||||
|
|
||||||
For interoperability, IXFR servers, including those without the
|
|
||||||
condensation feature, should not flag an error even if it receives a
|
|
||||||
client's IXFR request with a version number known not to exist (which
|
|
||||||
means that the server has versions with version numbers newer and
|
|
||||||
older than, but not equal to, the version number) and should,
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 5]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
instead, attempt to perform a full zone transfer by replying with a
|
|
||||||
single SOA record of the server's current version (UDP case) or with
|
|
||||||
a full zone content (UDP or TCP case).
|
|
||||||
|
|
||||||
7. Example
|
|
||||||
|
|
||||||
Given the following three generations of data with the current serial
|
|
||||||
number of 3,
|
|
||||||
|
|
||||||
example.domain. IN SOA ns.example.domain. rt.example.domain. (
|
|
||||||
1 600 600 3600000 604800)
|
|
||||||
IN NS ns.example.domain.
|
|
||||||
ns.example.domain. IN A 10.0.0.1
|
|
||||||
ftp.example.domain. IN A 10.0.1.1
|
|
||||||
|
|
||||||
ftp.example.domain. is removed and www.example.domain. is added.
|
|
||||||
|
|
||||||
example.domain. IN SOA ns.example.domain. rt.example.domain. (
|
|
||||||
2 600 600 3600000 604800)
|
|
||||||
IN NS ns.example.domain.
|
|
||||||
ns.example.domain. IN A 10.0.0.1
|
|
||||||
www.example.domain. IN A 10.0.1.2
|
|
||||||
IN A 10.0.2.1
|
|
||||||
|
|
||||||
One of the IP addresses of www.example.domain. is changed.
|
|
||||||
|
|
||||||
example.domain. IN SOA ns.example.domain. rt.example.domain. (
|
|
||||||
3 600 600 3600000 604800)
|
|
||||||
IN NS ns.example.domain.
|
|
||||||
ns.example.domain. IN A 10.0.0.1
|
|
||||||
www.example.domain. IN A 10.0.3.1
|
|
||||||
IN A 10.0.2.1
|
|
||||||
|
|
||||||
The following IXFR query
|
|
||||||
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Header | OPCODE=SQUERY |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Answer | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Authority | example.domain. IN SOA serial=1 |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Additional | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
|
|
||||||
could be replied to with the following full zone transfer message:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 6]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Header | OPCODE=SQUERY, RESPONSE |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Answer | example.domain. IN SOA serial=3 |
|
|
||||||
| example.domain. IN NS NS.JAIN.AD.JP. |
|
|
||||||
| ns.example.domain. IN A 10.0.0.1 |
|
|
||||||
| www.example.domain. IN A 10.0.3.1 |
|
|
||||||
| www.example.domain. IN A 10.0.2.1 |
|
|
||||||
| example.domain. IN SOA serial=3 |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Authority | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Additional | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
|
|
||||||
or with the following incremental message:
|
|
||||||
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Header | OPCODE=SQUERY, RESPONSE |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Answer | example.domain. IN SOA serial=3 |
|
|
||||||
| example.domain. IN SOA serial=1 |
|
|
||||||
| ftp.example.domain. IN A 10.0.1.1 |
|
|
||||||
| example.domain. IN SOA serial=2 |
|
|
||||||
| www.example.domain. IN A 10.0.1.2 |
|
|
||||||
| www.example.domain. IN A 10.0.2.1 |
|
|
||||||
| example.domain. IN SOA serial=2 |
|
|
||||||
| www.example.domain. IN A 10.0.1.2 |
|
|
||||||
| example.domain. IN SOA serial=3 |
|
|
||||||
| www.example.domain. IN A 10.0.3.1 |
|
|
||||||
| example.domain. IN SOA serial=3 |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Authority | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Additional | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
|
|
||||||
or with the following condensed incremental message:
|
|
||||||
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Header | OPCODE=SQUERY, RESPONSE |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 7]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
Answer | example.domain. IN SOA serial=3 |
|
|
||||||
| example.domain. IN SOA serial=1 |
|
|
||||||
| ftp.example.domain. IN A 10.0.1.1 |
|
|
||||||
| example.domain. IN SOA serial=3 |
|
|
||||||
| www.example.domain. IN A 10.0.3.1 |
|
|
||||||
| www.example.domain. IN A 10.0.2.1 |
|
|
||||||
| example.domain. IN SOA serial=3 |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Authority | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Additional | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
|
|
||||||
or, if UDP packet overflow occurs, with the following message:
|
|
||||||
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Header | OPCODE=SQUERY, RESPONSE |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Answer | example.domain. IN SOA serial=3 |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Authority | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
Additional | <empty> |
|
|
||||||
+---------------------------------------------------+
|
|
||||||
|
|
||||||
8. Acknowledgements
|
|
||||||
|
|
||||||
The original idea of IXFR was conceived by Anant Kumar, Steve Hotz
|
|
||||||
and Jon Postel.
|
|
||||||
|
|
||||||
For the refinement of the protocol and documentation, many people
|
|
||||||
have contributed including, but not limited to, Anant Kumar, Robert
|
|
||||||
Austein, Paul Vixie, Randy Bush, Mark Andrews, Robert Elz, Andreas
|
|
||||||
Gustafsson, Josh Littlefield, Olafur Gudmundsson, William King and
|
|
||||||
the members of the IETF DNSEXT working group.
|
|
||||||
|
|
||||||
9. References
|
|
||||||
|
|
||||||
[NOTIFY] Vixie, P., "A Mechanism for Prompt Notification of Zone
|
|
||||||
Changes (DNS NOTIFY)", RFC1996, August 1996.
|
|
||||||
|
|
||||||
[STD13] Mockapetris, P., "Domain Name System" (RFC1034 and RFC1035),
|
|
||||||
November 1987.
|
|
||||||
|
|
||||||
10. Appendix A Appendix A. Pseudocode for response classification
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 8]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
The following pseudocode outlines one possible algorithm for
|
|
||||||
classifying IXFR responses.
|
|
||||||
|
|
||||||
receive the first response message;
|
|
||||||
extract the first response RR, always an SOA;
|
|
||||||
if (the serial number of this SOA RR is less
|
|
||||||
than or equal to that of the request) {
|
|
||||||
the response is an up-to-date response;
|
|
||||||
} else {
|
|
||||||
if (the response message was received by UDP and
|
|
||||||
contains no more RRs after the initial SOA) {
|
|
||||||
the response is a UDP-overflow response;
|
|
||||||
} else {
|
|
||||||
extract the second response RR, waiting for a second TCP
|
|
||||||
response message if necessary;
|
|
||||||
if (this second RR is an SOA) {
|
|
||||||
the response is an incremental transfer;
|
|
||||||
} else {
|
|
||||||
the response is a nonincremental transfer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
11. Security Considerations
|
|
||||||
|
|
||||||
Though DNS is related to several security problems, no attempt is
|
|
||||||
made to fix them in this document.
|
|
||||||
|
|
||||||
This document is believed to introduce no additional security
|
|
||||||
problems to the current DNS protocol.
|
|
||||||
|
|
||||||
12. Author's Address
|
|
||||||
|
|
||||||
Masataka Ohta
|
|
||||||
Computer Center, Tokyo Institute of Technology
|
|
||||||
2-12-1, O-okayama, Meguro-ku, Tokyo 152-8550, JAPAN
|
|
||||||
|
|
||||||
Phone: +81-3-5734-3299, Fax: +81-3-5734-3415
|
|
||||||
EMail: mohta@necom830.hpcl.titech.ac.jp
|
|
||||||
|
|
||||||
Comments should be directed to DNSEXT WG <namedroppers@ops.ietf.org>.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 9]
|
|
||||||
|
|
||||||
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
|
|
||||||
|
|
||||||
|
|
||||||
13. Full Copyright Statement
|
|
||||||
|
|
||||||
"Copyright (C) The Internet Society (March/5/2000). All Rights
|
|
||||||
Reserved.
|
|
||||||
|
|
||||||
This document and translations of it may be copied and furnished to
|
|
||||||
others, and derivative works that comment on or otherwise explain it
|
|
||||||
or assist in its implementation may be prepared, copied, published
|
|
||||||
and distributed, in whole or in part, without restriction of any
|
|
||||||
kind, provided that the above copyright notice and this paragraph are
|
|
||||||
included on all such copies and derivative works. However, this
|
|
||||||
document itself may not be modified in any way, such as by removing
|
|
||||||
the copyright notice or references to the Internet Society or other
|
|
||||||
Internet organizations, except as needed for the purpose of
|
|
||||||
developing Internet standards in which case the procedures for
|
|
||||||
copyrights defined in the Internet Standards process must be
|
|
||||||
followed, or as required to translate it into languages other than
|
|
||||||
English.
|
|
||||||
|
|
||||||
The limited permissions granted above are perpetual and will not be
|
|
||||||
revoked by the Internet Society or its successors or assigns.
|
|
||||||
|
|
||||||
This document and the information contained herein is provided on an
|
|
||||||
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
|
||||||
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
|
||||||
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
|
||||||
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
|
||||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
M. Ohta Expires on December 5, 2000 [Page 10]
|
|
||||||
|
|
19
doc/draft/draft-ietf-dnsext-ixfr-02.txt
Normal file
19
doc/draft/draft-ietf-dnsext-ixfr-02.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
M. Ohta: mohta@necom830.hpcl.titech.ac.jp
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
19
doc/draft/draft-ietf-enum-e164s2-np-01.txt
Normal file
19
doc/draft/draft-ietf-enum-e164s2-np-01.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
A. Gallant: andrew.gallant@comsat.com
|
||||||
|
|
||||||
|
|
@@ -1,342 +0,0 @@
|
|||||||
|
|
||||||
Telephone Number Mapping A. Brown
|
|
||||||
Internet Draft Nortel Networks
|
|
||||||
Document: <draft-ietf-enum-rqmts-01.txt> June 2000
|
|
||||||
Category: Informational
|
|
||||||
|
|
||||||
|
|
||||||
ENUM Requirements
|
|
||||||
|
|
||||||
|
|
||||||
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 paper defines the requirements for a DNS-based architecture and
|
|
||||||
protocols for mapping a telephone number to a set of attributes
|
|
||||||
(e.g., URLs) that can be used to contact a resource associated with
|
|
||||||
that number. There are many possible protocols that can be
|
|
||||||
considered for a telephone number mapping service. The purpose of
|
|
||||||
this document is to focus discussion on a DNS-based solution. The
|
|
||||||
intention is to enumerate the expectations of such a solution and to
|
|
||||||
clarify the scope.
|
|
||||||
|
|
||||||
2. Conventions used in this document
|
|
||||||
|
|
||||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
||||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
|
|
||||||
this document are to be interpreted as described in RFC-2119 [2].
|
|
||||||
|
|
||||||
3. Requirements
|
|
||||||
|
|
||||||
3.1 Endpoint Address Lookup
|
|
||||||
|
|
||||||
The system SHALL provide a service for the retrieval of service
|
|
||||||
specific endpoint addresses (e.g., email address, IP address, SIP
|
|
||||||
address, URL, etc.) or the retrieval of the addresses of servers, if
|
|
||||||
available, which may contain this endpoint information.
|
|
||||||
|
|
||||||
|
|
||||||
ENUM Requirements June 2000
|
|
||||||
|
|
||||||
|
|
||||||
3.2 Capabilities Retrieval/Negotiation
|
|
||||||
|
|
||||||
The retrieval or negotiation of capabilities is beyond the scope of
|
|
||||||
the system.
|
|
||||||
|
|
||||||
3.3 Retrieval of Additional Information and Capabilities
|
|
||||||
|
|
||||||
The retrieval of additional, application-specific information (e.g.,
|
|
||||||
spoken name for verification purposes) is beyond the scope of the
|
|
||||||
system. The system MUST provide a service for the retrieval of
|
|
||||||
protocol and service information if available.
|
|
||||||
|
|
||||||
The system SHOULD provide access to capabilities relevant to the
|
|
||||||
telephone number in question. The retrieval or negotiation of
|
|
||||||
capabilities will depend on the outcome of the rescap work or work
|
|
||||||
done in other groups.
|
|
||||||
|
|
||||||
3.4 Qualification of the Request
|
|
||||||
|
|
||||||
The system is not required to enable the qualification of a request
|
|
||||||
by a user, for the purposes of filtering for reducing returned
|
|
||||||
information or for traffic reduction.
|
|
||||||
|
|
||||||
3.5 Provisioning
|
|
||||||
|
|
||||||
The architecture and protocol MAY support at least the existing
|
|
||||||
administrative model as the current E.164 telephone number
|
|
||||||
delegation system. The protocol SHOULD also provide the ability to
|
|
||||||
support corporate numbering plan or competitive directory service
|
|
||||||
providers under separate root domains. It SHOULD NOT require an
|
|
||||||
additional centralized administrator beyond that required for the
|
|
||||||
existing telephone number system.
|
|
||||||
|
|
||||||
The distribution of telephone numbers is a national affair by ITU
|
|
||||||
treaty and different telephone number distribution schemes may
|
|
||||||
require different delegation models. How nations choose to
|
|
||||||
administer the ENUM space within their borders is a national issue.
|
|
||||||
In any case, the subscriber or enterprise is the ultimate authority
|
|
||||||
for service provisioning.
|
|
||||||
|
|
||||||
Further, it must be possible for the authority to which a telephone
|
|
||||||
number has been delegated to redirect the query to a different
|
|
||||||
entity that provides service-specific information for that number.
|
|
||||||
|
|
||||||
3.6 Propagation of Changes
|
|
||||||
|
|
||||||
Propagation of Changes If multiple copies of the data are
|
|
||||||
distributed in different areas, their update should be incorporated
|
|
||||||
almost simultaneously depending on the application of DNS to
|
|
||||||
services.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ENUM Requirements June 2000
|
|
||||||
|
|
||||||
|
|
||||||
When a numbering plan change is made in a country or network, the
|
|
||||||
update of relevant E.164 number data in DNS needs to be coordinated
|
|
||||||
with the change.
|
|
||||||
|
|
||||||
3.7 Response Timeout
|
|
||||||
|
|
||||||
The system SHALL have a defined timeout mechanism.
|
|
||||||
|
|
||||||
3.8 Global Number Portability
|
|
||||||
|
|
||||||
The system MUST support existing local number portability
|
|
||||||
mechanisms, where applicable. It is RECOMMENDED that the system not
|
|
||||||
be designed in such as way as to impede future global number
|
|
||||||
portability.
|
|
||||||
|
|
||||||
3.9 Scalability
|
|
||||||
|
|
||||||
The system MUST scale to handle quantities of telephone numbers and
|
|
||||||
queries comparable to current and expected future PSTN usage.
|
|
||||||
|
|
||||||
It must be possible to operate the system based on telephone number
|
|
||||||
blocks defined at the digit boundaries as well as explicit per-
|
|
||||||
number configuration.
|
|
||||||
|
|
||||||
3.10 Query Performance
|
|
||||||
|
|
||||||
It SHOULD be possible to administer the ENUM service using the
|
|
||||||
selected protocols and structures such that the current user
|
|
||||||
expectations for latency in telecommunications services can be met.
|
|
||||||
In particular, it SHOULD be possible to operate the system in such a
|
|
||||||
manner that an ENUM query for a service-specific record can be
|
|
||||||
satisfied within one second 95% of the time and that within two
|
|
||||||
seconds, the query can be satisfied 99% of the time.
|
|
||||||
|
|
||||||
3.11 Other PSTN Numbering Services
|
|
||||||
|
|
||||||
E.164 numbers, short codes, service codes and prefixes are
|
|
||||||
categorized in dialing plans. A prefix is an indicator consisting
|
|
||||||
of one or more digits that allows the selection of different types
|
|
||||||
of number formats, networks and/or services. Prefixes are not part
|
|
||||||
of the number and are part of a dialing plan. The uses and the
|
|
||||||
formats of prefixes are a national matter. Short codes, e.g.
|
|
||||||
emergency, or service codes may be used based on the national
|
|
||||||
numbering plan. Those codes are not universal and typically valid
|
|
||||||
only within a numbering domain identified with the same country code
|
|
||||||
or country code + network identification code.
|
|
||||||
|
|
||||||
PSTN type numbering services such as Emergency 911, directory
|
|
||||||
assistance 411, and other carrier codes for services accessible via
|
|
||||||
non-E164 (or subset) telephone number service access codes are
|
|
||||||
outside the scope of ENUM.
|
|
||||||
|
|
||||||
3.12 Privacy
|
|
||||||
|
|
||||||
ENUM Requirements June 2000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
The system MUST allow the owner of the telephone number to control
|
|
||||||
the information which prospective callers may receive.
|
|
||||||
|
|
||||||
3.13 Competition
|
|
||||||
|
|
||||||
The solution MUST permit competing service providers to offer
|
|
||||||
telecommunications service for a given number. Competing
|
|
||||||
telecommunications services MUST be enabled where the ENUM entry is
|
|
||||||
administered by the single entity to which the number is delegated.
|
|
||||||
Who that single entity is, is beyond the scope of ENUM.
|
|
||||||
|
|
||||||
3.14 Authorization of Requests and Responses
|
|
||||||
|
|
||||||
The system SHALL enable the authorization of requests and responses.
|
|
||||||
|
|
||||||
3.15 Privacy and Integrity of Requests and Responses
|
|
||||||
|
|
||||||
The system SHALL enable the privacy and integrity of requests and
|
|
||||||
responses.
|
|
||||||
|
|
||||||
3.16 Call Routing
|
|
||||||
|
|
||||||
The system is not required to provide a service for routing calls or
|
|
||||||
locating gateways to a specific service.
|
|
||||||
|
|
||||||
3.17 Service Logic
|
|
||||||
|
|
||||||
The system is not responsible for employing service logic for the
|
|
||||||
intelligent retrieval of information.
|
|
||||||
|
|
||||||
3.18 E.164 Numbers
|
|
||||||
|
|
||||||
The system is not responsible for returning information on private
|
|
||||||
numbering plans and non-E.164 numbers. The system is responsible
|
|
||||||
for returning information on 1-800 and other legitimate E.164
|
|
||||||
numbers.
|
|
||||||
|
|
||||||
3.19 Application Specific Use of ENUM
|
|
||||||
|
|
||||||
The ENUM service MUST be application agnostic. It is expected that
|
|
||||||
various other IETF work groups will develop ENUM specific usage
|
|
||||||
profiles for their specific application. ENUM will not mandate the
|
|
||||||
use of any specific DNS Resource Record for any particular
|
|
||||||
application.
|
|
||||||
|
|
||||||
4. Security Considerations
|
|
||||||
|
|
||||||
This document specifies several security requirements including
|
|
||||||
privacy of information, and authorization, privacy and integrity or
|
|
||||||
requests and responses.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ENUM Requirements June 2000
|
|
||||||
|
|
||||||
|
|
||||||
The system will be designed to retrieve information required to
|
|
||||||
initiate an Internet telephony session. Each of these session types
|
|
||||||
will have their own security threats, which should be addressed in
|
|
||||||
the groups responsible for those services.
|
|
||||||
|
|
||||||
5. References
|
|
||||||
|
|
||||||
|
|
||||||
1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP
|
|
||||||
9, RFC 2026, October 1996.
|
|
||||||
|
|
||||||
2 Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
|
||||||
Levels", BCP 14, RFC 2119, March 1997
|
|
||||||
|
|
||||||
6. Acknowledgements
|
|
||||||
|
|
||||||
This document is based on discussions from the ENUM working group.
|
|
||||||
|
|
||||||
7. Author's Addresses
|
|
||||||
|
|
||||||
Anne Brown
|
|
||||||
Nortel Networks
|
|
||||||
P.O. Box 3511, Station C
|
|
||||||
K1Y 4H7
|
|
||||||
Phone: +1 613 765 5274
|
|
||||||
Email: arbrown@nortelnetworks.com
|
|
||||||
|
|
||||||
8. Changes From draft-enum-rqmts-00.txt
|
|
||||||
|
|
||||||
Based on WG discussions and input documents from the SG2 workshop,
|
|
||||||
the following changes have been made since the previous version of
|
|
||||||
this draft:
|
|
||||||
|
|
||||||
3.1 Endpoint Address Lookup
|
|
||||||
Major - URLs are not the only response
|
|
||||||
3.3 Retrieval of Additional Information and Capabilities
|
|
||||||
Renamed from "Retrieval of Additional Information"
|
|
||||||
Minor - Added paragraph on capabilities
|
|
||||||
3.5 Provisioning
|
|
||||||
Major - New text involving change of ENUM scope
|
|
||||||
3.6 Propagation of Changes
|
|
||||||
New section
|
|
||||||
Major - New section based on nnar-e164-dns-iw-info.txt
|
|
||||||
3.9 Scalability
|
|
||||||
Renumbered from 3.8
|
|
||||||
Major - New paragraph on handling of both blocks and
|
|
||||||
individual telephone numbers.
|
|
||||||
3.10 Query Performance
|
|
||||||
Renumbered from 3.9
|
|
||||||
Major - Upgraded to support PSTN performance
|
|
||||||
expectations
|
|
||||||
3.11 Other PSTN Numbering Services
|
|
||||||
Renumbered from 3.10
|
|
||||||
|
|
||||||
ENUM Requirements June 2000
|
|
||||||
|
|
||||||
|
|
||||||
Renamed from "Other PSTN Services"
|
|
||||||
Minor - Changes for clarification based on WG
|
|
||||||
discussions and nnar-e164-dns-iw-info.txt
|
|
||||||
|
|
||||||
3.13 Competition
|
|
||||||
Renumbered from 3.12
|
|
||||||
Major - Telephone number MUST be able to be
|
|
||||||
administered by a single entity
|
|
||||||
|
|
||||||
3.19 Application Specific Use of ENUM
|
|
||||||
New Section
|
|
||||||
Major - For clarification
|
|
||||||
|
|
||||||
Full Copyright Statement
|
|
||||||
|
|
||||||
"Copyright (C) The Internet Society (date). 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 implmentation 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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
19
doc/draft/draft-ietf-enum-rqmts-02.txt
Normal file
19
doc/draft/draft-ietf-enum-rqmts-02.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
A. Brown: arbrown@nortel.ca
|
||||||
|
|
||||||
|
|
@@ -1,7 +1,7 @@
|
|||||||
Internet Draft James SENG
|
<EFBFBD>©ÀInternet Draft James SENG
|
||||||
<draft-ietf-idn-cjk-00.txt> Yoshiro YONEYA
|
<draft-ietf-idn-cjk-01.txt> Yoshiro YONEYA
|
||||||
12th Sep 2000 Kenny HUANG
|
11th Apr 2001 Kenny HUANG
|
||||||
Expires 12 Mar 2001 KIM Kyongsok
|
Expires 11 Oct 2001 KIM Kyongsok
|
||||||
|
|
||||||
Han Ideograph (CJK) for Internationalized Domain Names
|
Han Ideograph (CJK) for Internationalized Domain Names
|
||||||
|
|
||||||
@@ -54,11 +54,6 @@ for reference for the ideograph described.
|
|||||||
|
|
||||||
Han ideographs are defined as the Chinese ideographs starting from
|
Han ideographs are defined as the Chinese ideographs starting from
|
||||||
U+3400 to U+9FFF or commonly known as CJK Unification Ideographs. This
|
U+3400 to U+9FFF or commonly known as CJK Unification Ideographs. This
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 1]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
covers Chinese 'hanzi' {U+6F22 U+5B57/U+6C49 U+5B57}, Japanese 'kanji'
|
covers Chinese 'hanzi' {U+6F22 U+5B57/U+6C49 U+5B57}, Japanese 'kanji'
|
||||||
(U+6F22 U+5B57) and Korean 'hanja' {U+6F22 U+5B57/U+D55C U+C790}.
|
(U+6F22 U+5B57) and Korean 'hanja' {U+6F22 U+5B57/U+D55C U+C790}.
|
||||||
Additional Han ideographs will appear in other location (not necessary
|
Additional Han ideographs will appear in other location (not necessary
|
||||||
@@ -113,11 +108,6 @@ points in Unicode.
|
|||||||
Chinese ideographs or hanzi {U+6F22 U+5B57/U+6C49 U+5B57} originated
|
Chinese ideographs or hanzi {U+6F22 U+5B57/U+6C49 U+5B57} originated
|
||||||
from pictograph. They are 'pictures' which evolved into ideographs
|
from pictograph. They are 'pictures' which evolved into ideographs
|
||||||
during several thousand years. For instance, the ideograph for "hill"
|
during several thousand years. For instance, the ideograph for "hill"
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 2]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
{U+5C71} still bears some resembles to 3 peaks of a hill.
|
{U+5C71} still bears some resembles to 3 peaks of a hill.
|
||||||
|
|
||||||
Not all ideographs are pictograph. There are other classifications such
|
Not all ideographs are pictograph. There are other classifications such
|
||||||
@@ -172,11 +162,6 @@ match with TC {U+81FA U+5F4E} or TC {U+53F0 U+5F4E}.
|
|||||||
The side effect of this method is that comparing SC {U+53D1} to TC
|
The side effect of this method is that comparing SC {U+53D1} to TC
|
||||||
{U+667C} or TC {U+9AEE} will both be positive. This implies that SC
|
{U+667C} or TC {U+9AEE} will both be positive. This implies that SC
|
||||||
'hair' SC …ñ³…Åæ {U+5934 U+53D1} will match TC
|
'hair' SC …ñ³…Åæ {U+5934 U+53D1} will match TC
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 3]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
(U+982D U+9AEE). It will also match TC {U+982D U+9AEE} that does not
|
(U+982D U+9AEE). It will also match TC {U+982D U+9AEE} that does not
|
||||||
have any meaning in Chinese.
|
have any meaning in Chinese.
|
||||||
|
|
||||||
@@ -231,11 +216,6 @@ the 5th century. Chinese ideographs in Japanese are known as 'kanji'
|
|||||||
{U+6F22 U+5B57}. They also developed their own syllabary hiragana
|
{U+6F22 U+5B57}. They also developed their own syllabary hiragana
|
||||||
{U+5E73 U+4EEE U+540D} (U+3040-U+309F) and katakana {U+7247 U+4EEE
|
{U+5E73 U+4EEE U+540D} (U+3040-U+309F) and katakana {U+7247 U+4EEE
|
||||||
U+540D} (U+30A0-U+30FF), both are derivative of kanji that has same
|
U+540D} (U+30A0-U+30FF), both are derivative of kanji that has same
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 4]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
pronunciation. Hiragana is a simplified cursive form, for example, 'a'
|
pronunciation. Hiragana is a simplified cursive form, for example, 'a'
|
||||||
{U+3042} was derived from 'an' {U+5B89}. Katakana is a simplified part
|
{U+3042} was derived from 'an' {U+5B89}. Katakana is a simplified part
|
||||||
form, for example, 'a' {U+30A2} was derived from 'a' {U+963F}. However,
|
form, for example, 'a' {U+30A2} was derived from 'a' {U+963F}. However,
|
||||||
@@ -290,11 +270,6 @@ Hence, Han folding here is not recommended.
|
|||||||
4. Vietnamese
|
4. Vietnamese
|
||||||
|
|
||||||
While Vietnamese also adopted Chinese ideographs ('chu han') and created
|
While Vietnamese also adopted Chinese ideographs ('chu han') and created
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 5]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
their own ideographs ('chu nom'), they were now replaced by romanized
|
their own ideographs ('chu nom'), they were now replaced by romanized
|
||||||
'quoc ngu' today. Hence, this document does not attempt to address any
|
'quoc ngu' today. Hence, this document does not attempt to address any
|
||||||
issues with 'chu han' or 'chu nom'.
|
issues with 'chu han' or 'chu nom'.
|
||||||
@@ -349,11 +324,6 @@ or removing radical from standard ideographs.
|
|||||||
|
|
||||||
7. Mechanism
|
7. Mechanism
|
||||||
|
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 6]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
The implicit proposal in this document is that CJKV ideographs may or
|
The implicit proposal in this document is that CJKV ideographs may or
|
||||||
may not be "folded" for the purposes of comparison of domain names.
|
may not be "folded" for the purposes of comparison of domain names.
|
||||||
|
|
||||||
@@ -405,14 +375,6 @@ If conservative safety is really required, then
|
|||||||
are made on x-axis characters, but the license of that domain name
|
are made on x-axis characters, but the license of that domain name
|
||||||
can pick which y or z variants they wish to use..
|
can pick which y or z variants they wish to use..
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 7]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
Acknowledgement
|
Acknowledgement
|
||||||
|
|
||||||
The editor gratefully acknowledge the contributions of:
|
The editor gratefully acknowledge the contributions of:
|
||||||
@@ -424,7 +386,7 @@ Karlsson Kent <keka@im.se>
|
|||||||
|
|
||||||
Author(s)
|
Author(s)
|
||||||
|
|
||||||
James SENG
|
James SENG ˆÄè†î¯…«Å
|
||||||
i-DNS.net International Pte Ltd.
|
i-DNS.net International Pte Ltd.
|
||||||
8 Temasek Boulevard
|
8 Temasek Boulevard
|
||||||
Suntec Tower 3 #24-02
|
Suntec Tower 3 #24-02
|
||||||
@@ -439,7 +401,7 @@ Shinagawa IntercityBldg., B-13F
|
|||||||
Email: yone@po.ntts.co.jp
|
Email: yone@po.ntts.co.jp
|
||||||
Tel: +81-3-5782-7291
|
Tel: +81-3-5782-7291
|
||||||
|
|
||||||
Kenny HUANG
|
Kenny HUANG ‰©â…雷¢ä
|
||||||
Geotempo International Ltd; TWNIC
|
Geotempo International Ltd; TWNIC
|
||||||
3F, No 16 Kang Hwa Street, Nei Hu
|
3F, No 16 Kang Hwa Street, Nei Hu
|
||||||
Taipei 114, Taiwan
|
Taipei 114, Taiwan
|
||||||
@@ -468,11 +430,6 @@ References
|
|||||||
[KANJIDIC] Sanseido‚ÇÖs Unicode Kanji Information Dictionary
|
[KANJIDIC] Sanseido‚ÇÖs Unicode Kanji Information Dictionary
|
||||||
ISBN 4-385-13690-4
|
ISBN 4-385-13690-4
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 8]
|
|
||||||
|
|
||||||
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|
||||||
|
|
||||||
|
|
||||||
[UNICHART] Unicode chart http://charts.unicode.org/
|
[UNICHART] Unicode chart http://charts.unicode.org/
|
||||||
|
|
||||||
[ZONGBIAO] Simplified Characters Standard Chart 2nd Edition, 1986
|
[ZONGBIAO] Simplified Characters Standard Chart 2nd Edition, 1986
|
||||||
@@ -494,37 +451,4 @@ Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
|
|||||||
Vol. 14, No. 4, pp. 297-325, Aug. 1992.
|
Vol. 14, No. 4, pp. 297-325, Aug. 1992.
|
||||||
|
|
||||||
[KimK 1999] A Hangeul story inside computers. KIM, Kyongsok. Busan
|
[KimK 1999] A Hangeul story inside computers. KIM, Kyongsok. Busan
|
||||||
National University Press. 1999. [in Hangeul]
|
National University Press. 1999. [in Hangeul]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires 12th March 2001 [Page 9]
|
|
@@ -1,687 +0,0 @@
|
|||||||
Internet Draft Paul Hoffman
|
|
||||||
draft-ietf-idn-compare-01.txt IMC & VPNC
|
|
||||||
July 11, 2000
|
|
||||||
Expires in six months
|
|
||||||
|
|
||||||
Comparison of Internationalized Domain Name Proposals
|
|
||||||
|
|
||||||
Status of this memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with all
|
|
||||||
provisions of Section 10 of RFC 2026.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
Abstract
|
|
||||||
|
|
||||||
The IDN Working Group is working on proposals for internationalized
|
|
||||||
domain names that might become a standard in the IETF. Before a single
|
|
||||||
full proposal can be made, competing proposals must be compared on a
|
|
||||||
wide range of requirements and desired features. This document compares
|
|
||||||
the many parts of a comprehensive protocol that have been proposed. It
|
|
||||||
is the companion document to "Requirements of Internationalized Domain
|
|
||||||
Names" [IDN-REQ], which lays out the requirements for the
|
|
||||||
internationalized domain name protocol.
|
|
||||||
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
|
|
||||||
As the IDN Working Group has discussed the requirements for IDN,
|
|
||||||
suggestions have been made for various candidate protocols that might
|
|
||||||
meet the requirements. These proposals have been somewhat helpful in
|
|
||||||
bringing up real-world needs for the requirements.
|
|
||||||
|
|
||||||
It became clear no single proposal had wide agreement from the working
|
|
||||||
group. In fact, the authors of various proposals found themselves taking
|
|
||||||
some features from other proposals as they revised their drafts. At the
|
|
||||||
same time, working group participants were making suggestions for
|
|
||||||
incremental changes that might affect more than one proposal.
|
|
||||||
|
|
||||||
Because of this mixing and matching, it was decided that this IDN
|
|
||||||
comparisons document should compare features that might end up in the
|
|
||||||
final protocol, not full protocol suggestions themselves. The features
|
|
||||||
that had been discussed in the working group were divided by function,
|
|
||||||
and appear in this document in separate sections. For each function,
|
|
||||||
there are multiple suggestions for protocol elements that might meet the
|
|
||||||
requirements that are described in [IDN-REQ].
|
|
||||||
|
|
||||||
This document is being discussed on the "idn" mailing list. To join the
|
|
||||||
list, send a message to <majordomo@ops.ietf.org> with the words
|
|
||||||
"subscribe idn" in the body of the message. Archives of the mailing list
|
|
||||||
can also be found at ftp://ops.ietf.org/pub/lists/idn*.
|
|
||||||
|
|
||||||
1.1 Format of this document
|
|
||||||
|
|
||||||
Each section covers one feature that has been discussed as being part of
|
|
||||||
the final IDN solution. Within each section, alternate proposals are
|
|
||||||
listed with the major perceived pros and cons of the proposal. Also,
|
|
||||||
each proposal is given a label to make discussion of this document (and
|
|
||||||
of the proposals themselves) easier.
|
|
||||||
|
|
||||||
References to the numbered requirements in [IDN-REQ] are from version
|
|
||||||
-02 of that document. These numbers are expected to change and the
|
|
||||||
requirements document evolves. In this draft, the requirements are show
|
|
||||||
as "[#n-02]", where "n" is the requirement number from draft -02 of
|
|
||||||
[IDN-REQ]. This document only lists where particular proposals don't
|
|
||||||
meet particular requirmenents from [IDN-REQ], not the ones that they
|
|
||||||
fulfill.
|
|
||||||
|
|
||||||
Note that this document is supposed to reflect the discussion of all
|
|
||||||
proposed alternatives, not just the ones that fully match the
|
|
||||||
requirements in [IDN-REQ]. It will serve as a summary of the discussion
|
|
||||||
in the IDN WG for readers in the future who may want to know why certain
|
|
||||||
alternatives were not chosen for the eventual protocol.
|
|
||||||
|
|
||||||
The proposal drafts covered in this document are:
|
|
||||||
|
|
||||||
[DUERST] Character Normalization in IETF Protocols,
|
|
||||||
draft-duerst-i18n-norm-03
|
|
||||||
|
|
||||||
[IDNE] Internationalized domain names using EDNS (IDNE),
|
|
||||||
draft-ietf-idn-idne-01
|
|
||||||
|
|
||||||
[KWAN] Using the UTF-8 Character Set in the Domain Name System,
|
|
||||||
draft-skwan-utf8-dns-03
|
|
||||||
|
|
||||||
[RACE] RACE: Row-based ASCII Compatible Encoding for IDN,
|
|
||||||
draft-ietf-idn-race-00
|
|
||||||
|
|
||||||
[SENG] UTF-5, a transformation format of Unicode and ISO 10646,
|
|
||||||
draft-jseng-utf5-01
|
|
||||||
|
|
||||||
[UDNS] Using the Universal Character Set in the Domain Name System
|
|
||||||
(UDNS), draft-ietf-idn-udns-00
|
|
||||||
|
|
||||||
|
|
||||||
2. Architecture
|
|
||||||
|
|
||||||
One of the biggest questions raised early in the IDN discussion was what
|
|
||||||
the format of internationalized name parts would be on the wire, that
|
|
||||||
is, between the user's computer and the DNS resolvers. It was agreed
|
|
||||||
that the DNS protocols certainly allow non-ASCII octets in domain name
|
|
||||||
parts and resource records, but there was also acknowledgement that many
|
|
||||||
protocols that rely on the DNS could not handle non-ASCII names due to
|
|
||||||
the design of the protocol. Section 3.1 of this document describes the
|
|
||||||
proposed encodings for the non-ASCII name parts.
|
|
||||||
|
|
||||||
Because of requirement [#2-02], there were proposals for
|
|
||||||
ASCII-compatible encodings (ACEs) of non-ASCII characters. Different
|
|
||||||
ACEs were proposed (and are discussed in Section 4 of this document),
|
|
||||||
but they all have the same goal: to allow non-ASCII characters to be
|
|
||||||
represented in host names that conform to RFC 1034 [RFC1034].
|
|
||||||
|
|
||||||
2.1 arch-1: Just send binary
|
|
||||||
|
|
||||||
[KWAN] proposes beginning to send characters outside the range allowed
|
|
||||||
in RFC 1034.
|
|
||||||
|
|
||||||
Pro: Easiest to describe. Only changes host name syntax, not any of the
|
|
||||||
related DNS protocols.
|
|
||||||
|
|
||||||
Con: Doesn't work with many exiting protocols that relies on DNS.
|
|
||||||
Violates requirement [#9-02].
|
|
||||||
|
|
||||||
2.2 arch-2: Send binary or ACE
|
|
||||||
|
|
||||||
[UDNS] (and, later, [IDNE]) proposes using both binary and ACE formats
|
|
||||||
on the wire.
|
|
||||||
|
|
||||||
Pro: Allows protocols that can handle binary name parts to use them
|
|
||||||
directly, while allowing protocols that cannot use binary name parts to
|
|
||||||
also handle names without conversion. Allows domain names in free text
|
|
||||||
to be displayed in binary even in systems that require ACE-formatted
|
|
||||||
names on the wire.
|
|
||||||
|
|
||||||
Con: Requires all software that uses domain names to handle both
|
|
||||||
formats. Requires processing time for conversion of ACE formats into the
|
|
||||||
format must likely used internally to the software.
|
|
||||||
|
|
||||||
2.3 arch-3: Just send ACE
|
|
||||||
|
|
||||||
[RACE] and [SENG] propose that host naming rules remain the same and
|
|
||||||
that all internationalize domain names be sent in ACE format.
|
|
||||||
|
|
||||||
Pro: No changes at all to current DNS protocols.
|
|
||||||
|
|
||||||
Con: Requires all software to recognize ACE domain names and convert
|
|
||||||
them to human-readable for display. This is true not only in domain
|
|
||||||
names used on the wire but also domain names used in free text.
|
|
||||||
|
|
||||||
|
|
||||||
3. Names in binary
|
|
||||||
|
|
||||||
Both arch-1 and arch-2 include domain name parts that are represented on
|
|
||||||
the wire in a binary format. This section describes some of the features
|
|
||||||
of such names.
|
|
||||||
|
|
||||||
3.1 bin-1: Format
|
|
||||||
|
|
||||||
There are many different charsets and encodings for the scripts of the
|
|
||||||
world. The WG has discussed which binary encoding should be used on the
|
|
||||||
wire.
|
|
||||||
|
|
||||||
3.1.1 bin-1.1: UTF-8
|
|
||||||
|
|
||||||
The IETF policy on character sets [RFC2277] states that UTF-8 [RFC2279]
|
|
||||||
is the preferred charset for IETF protocols. UTF-8 encodes all
|
|
||||||
characters in the ISO 10646 repertoire.
|
|
||||||
|
|
||||||
Pro: Well-supported in other IETF protocols. Compact for most scripts.
|
|
||||||
Wide implementation in programming languages. US-ASCII characters have
|
|
||||||
the same encoding in UTF-8 as they do in US-ASCII. Because it is based
|
|
||||||
on ISO 10646, expansion of the repertoire comes from respected
|
|
||||||
international standards bodies.
|
|
||||||
|
|
||||||
Con: Asian scripts require three octets per character.
|
|
||||||
|
|
||||||
3.1.2 bin-1.2: Labelled charsets
|
|
||||||
|
|
||||||
Mailing list discussion mentioned using multiple charsets for the binary
|
|
||||||
representation. Each name part would be labelled with the charset used.
|
|
||||||
|
|
||||||
Pro: Allows users to specify names in the charsets they are most
|
|
||||||
familiar with.
|
|
||||||
|
|
||||||
Con: All resolvers would have to know all charsets. Thus, the number of
|
|
||||||
charsets would probably have to be limited and never expand. Mapping of
|
|
||||||
characters between charsets would have to be exact and not change over
|
|
||||||
time.
|
|
||||||
|
|
||||||
3.2 bin-2: Distinguishing binary from current format
|
|
||||||
|
|
||||||
Software built for current domain names might give unexpected results
|
|
||||||
when dealing with non-ASCII characters in domain names. For example, it
|
|
||||||
was reported on the mailing list that some software crashes when a
|
|
||||||
non-ASCII domain name is returned for in-addr.arpa requests. Thus, there
|
|
||||||
may be a need for IDN to prevent software that is not binary-aware from
|
|
||||||
receiving domain names with binary parts. This would only apply to an
|
|
||||||
IDN that used arch-2, not arch-1.
|
|
||||||
|
|
||||||
3.2.1 bin-2.1: Don't mark binary
|
|
||||||
|
|
||||||
[KWAN] does not specify any way of changing requests to prevent binary
|
|
||||||
name parts from being transmitted.
|
|
||||||
|
|
||||||
Pro: No changes to current DNS requests and responses.
|
|
||||||
|
|
||||||
Con: Likely to cause disruption in software that is not binary-aware.
|
|
||||||
Likely to cause systems to misread names and possibly (and incorrectly)
|
|
||||||
convert them to ASCII names by stripping off the high bit in octets;
|
|
||||||
this in turn would lead to security problems due to mistaken identities.
|
|
||||||
Returning binary host names to DNS queries is known to break some
|
|
||||||
current software.
|
|
||||||
|
|
||||||
3.2.2 bin-2.2: Mark binary with IN bit
|
|
||||||
|
|
||||||
[UDNS] describes using a bit from the header of DNS queries to mark the
|
|
||||||
query as possibly containing a binary name part and indicating that the
|
|
||||||
response to the query can contain binary name parts.
|
|
||||||
|
|
||||||
Pro: This bit is currently unused and must be set to zero, so current
|
|
||||||
software won't use it accidentally. No changes to any other part of the
|
|
||||||
query or RRs.
|
|
||||||
|
|
||||||
Con: It's the last unused bit in the header and DNS folks have indicated
|
|
||||||
that they are very hesitant to give it up.
|
|
||||||
|
|
||||||
3.2.3 bin-2.3: Mark binary with new QTYPEs
|
|
||||||
|
|
||||||
[UDNS] using new QTYPEs to mark the query as possibly containing a
|
|
||||||
binary name part and indicating that the response to the query can
|
|
||||||
contain binary name parts. QTYPEs are two octets long, and no QTYPEs to
|
|
||||||
date use more than the lower eight bits, so one of the bits from the
|
|
||||||
upper octet could be used to indicate binary names.
|
|
||||||
|
|
||||||
Pro: These bits are currently unused and must be set to zero, so current
|
|
||||||
software won't use them accidentally. No changes to any other part of
|
|
||||||
the query or RRs. Uses a bit that isn't as prized as the IN bit.
|
|
||||||
|
|
||||||
Con: Software must pay more attention to the QTYPEs than it might have
|
|
||||||
previously.
|
|
||||||
|
|
||||||
3.2.4 bin-2.4: Mark binary with EDNS
|
|
||||||
|
|
||||||
[IDNE] uses EDNS [RFC2671] to mark the query and response as containing
|
|
||||||
a binary name part.
|
|
||||||
|
|
||||||
Pro: There is little use of EDNS at this point, so it is very unlikely
|
|
||||||
to have bad interactions with old software. EDNS allows longer name
|
|
||||||
parts, and allows additional information (such as IDN version number)
|
|
||||||
in each name part.
|
|
||||||
|
|
||||||
Con: There is little use of EDNS and this might make implementation
|
|
||||||
harder.
|
|
||||||
|
|
||||||
|
|
||||||
4. Names in ASCII-compatible encoding (ACE)
|
|
||||||
|
|
||||||
Both arch-2 and arch-3 include domain name parts that are represented on
|
|
||||||
the wire in an ASCII-compatible encoding (ACE). This section describes
|
|
||||||
some of the features of such names.
|
|
||||||
|
|
||||||
4.1 ace-1: Format
|
|
||||||
|
|
||||||
A variety of proposals for the format of ACE have been proposed. Each
|
|
||||||
proposal has different features, such as how many characters can be
|
|
||||||
encoded within the 63 octet limit for each name part. The length
|
|
||||||
descriptions in this section assume that there is no distinguishing of
|
|
||||||
ACE from current names; this is not a likely outcome of the WG work.
|
|
||||||
|
|
||||||
The descriptions of lengths is based on script block names from
|
|
||||||
[BLOCK-NAMES].
|
|
||||||
|
|
||||||
4.1.1 ace-1.1: UTF-5
|
|
||||||
|
|
||||||
[SENG] Describes UTF-5, which is a fairly direct encoding of ISO 10646
|
|
||||||
characters using a system similar to UTF-8. Characters from Basic Latin
|
|
||||||
and Latin-1 Supplement take 2 octets; Latin Extended-A through Tibetan
|
|
||||||
take 3 octets; Myanmar through the end of BMP take 4 octets; non-BMP
|
|
||||||
characters take 5 octets. This means that names using all characters
|
|
||||||
in the Myanmar through the end of BMP are limited to 15 characters.
|
|
||||||
|
|
||||||
Pro: Extremely simple.
|
|
||||||
|
|
||||||
Con: Poor compression, particularly for Asian scripts.
|
|
||||||
|
|
||||||
4.1.2 ace-1.2: RACE
|
|
||||||
|
|
||||||
[RACE] describes RACE, which is a two-step algorithm that first
|
|
||||||
compresses the name part, then converts the compressed string into and
|
|
||||||
ACE. Name parts in all scripts other than Han, Yi, Hangul syllables,
|
|
||||||
Ethiopic, and non-BMP take up ceil(1.6*(n+1)) octets; name parts in
|
|
||||||
those scripts and any name that mixes characters from different rows in
|
|
||||||
ISO 10646 take up ceil(3.2*(n+1)) octets. This means that names using
|
|
||||||
Han, Yi, Hangul syllables, or Ethiopic, are limited to 18 characters.
|
|
||||||
(Note: this document used to be called CIDNUC.)
|
|
||||||
|
|
||||||
Pro: Best compression for most scripts, and similar compression for the
|
|
||||||
scripts where it is not the best.
|
|
||||||
|
|
||||||
Con: More complicated than UTF-5. Not well optimized for names that have
|
|
||||||
mixed scripts, such as non-Latin names that use hyphen or ASCII digits.
|
|
||||||
|
|
||||||
4.1.3 ace-1.3: Hex of UTF-8
|
|
||||||
|
|
||||||
An early draft described "hex of UTF-8", which is a straight-forward
|
|
||||||
hexadecimal encoding of UTF-8. Characters in Basic Latin (other than
|
|
||||||
non-US-ASCII and hyphen) take 3 octets; Latin Extended-A through Tibetan
|
|
||||||
take 5 octets; Myanmar through end of BMP take 7 octets; non-BMP
|
|
||||||
characters take 9 octets. This means that names using all characters
|
|
||||||
in the Myanmar through the end of BMP are limited to 9 characters.
|
|
||||||
|
|
||||||
Pros: Very simple to describe.
|
|
||||||
|
|
||||||
Cons: Very poor compression for all scripts.
|
|
||||||
|
|
||||||
4.1.4 ace-1.5: SACE
|
|
||||||
|
|
||||||
A message on the mailing list pointed to code for SACE, an ASCII
|
|
||||||
encoding that purports to compact to about the same size as UTF-8.
|
|
||||||
|
|
||||||
Pros: Similar compression to UTF-8.
|
|
||||||
|
|
||||||
Cons: No description of how the algorithm works.
|
|
||||||
|
|
||||||
4.2 ace-2: Distinguishing ACE from current names
|
|
||||||
|
|
||||||
Software that finds ACE name parts in free text probably should
|
|
||||||
display the name part using the actual characters, not the ACE
|
|
||||||
equivalent. Thus, software must be able to identify which ASCII name
|
|
||||||
parts are ACE and which are non-ACE ASCII parts (such as current names).
|
|
||||||
This would only apply to an IDN proposal that used arch-2, not arch-3.
|
|
||||||
|
|
||||||
4.2.1 ace-2.1: Currently legal names
|
|
||||||
|
|
||||||
Name parts that are currently legal in RFC 1034 can be tagged to
|
|
||||||
indicate the part is encoded with ACE.
|
|
||||||
|
|
||||||
4.2.1.1 ace-2.1.1: Add hopefully-unique legal tag
|
|
||||||
|
|
||||||
[RACE] proposes adding a hopefully-unique legal tag to the beginning
|
|
||||||
of the name. The proposal would also work with such a tag at the end of
|
|
||||||
the name part, but it is easier for most people to recognize at the
|
|
||||||
beginning of name parts.
|
|
||||||
|
|
||||||
Pros: Easy for software (and humans) to recognize.
|
|
||||||
|
|
||||||
Cons: There is no way to prevent people from beginning non-ACE names
|
|
||||||
with the tag. Unless the tag is very unlikely to appear in any name in
|
|
||||||
any human language, non-ACE names that begin with the tag will display
|
|
||||||
oddly or be rejected by some systems.
|
|
||||||
|
|
||||||
4.2.1.2 ace-2.1.2: Add a checksum
|
|
||||||
|
|
||||||
Off-list discussion has mentioned the possibility of creating a checksum
|
|
||||||
mechanism where the checksum would be added to the beginning (or end) of
|
|
||||||
ACE name parts.
|
|
||||||
|
|
||||||
4.2.2 ace-2.2: Currently illegal names
|
|
||||||
|
|
||||||
Instead of creating names that are currently legal, another proposal is
|
|
||||||
to create names that use the current ASCII characters but are illegal.
|
|
||||||
|
|
||||||
4.2.2.1 ace-2.2.1: Add trailing hyphen
|
|
||||||
|
|
||||||
An earlier draft described using a trailing hyphen as a signifier of an
|
|
||||||
ACE name.
|
|
||||||
|
|
||||||
Pros: It is surmised that most current software does not reject names
|
|
||||||
that are illegal in this fashion. Thus, there would be little disruption
|
|
||||||
to current systems. This mechanism takes up fewer characters than any
|
|
||||||
proposed in ace-2.1.
|
|
||||||
|
|
||||||
Cons: Some current software is will probably break with this mechanism.
|
|
||||||
It goes against some current protocols that match the rules in RFC 1034.
|
|
||||||
|
|
||||||
5. Prohibited characters
|
|
||||||
|
|
||||||
There was a short but active discussion on the mailing list about which
|
|
||||||
characters from the ISO 10646 character set should never appear in host
|
|
||||||
names. To date, there are no Internet Drafts on the subject. This
|
|
||||||
section summarizes some of the suggestions.
|
|
||||||
|
|
||||||
5.1 prohib-1: Identical and near-identical characters
|
|
||||||
|
|
||||||
Some characters are visually identical or incredibly similar to other
|
|
||||||
characters, thus making it impossible to accurately enter host names
|
|
||||||
that are seen in print.
|
|
||||||
|
|
||||||
5.2 prohib-2: Separators
|
|
||||||
|
|
||||||
Horizontal and vertical spacing characters would make it unclear where a
|
|
||||||
host name begins and ends. Also, allowing periods and period-like
|
|
||||||
characters as characters within a name part would also cause similar
|
|
||||||
confusion.
|
|
||||||
|
|
||||||
5.3 prohib-3: Non-displaying and non-spacing characters
|
|
||||||
|
|
||||||
There are many characters that cannot be seen in the ISO 10646 character
|
|
||||||
set. These include control characters, non-breaking spaces, formatting
|
|
||||||
characters, and tagging characters. These characters would certainly
|
|
||||||
cause confusion if allowed in host names.
|
|
||||||
|
|
||||||
5.4 prohib-4: Private use characters
|
|
||||||
|
|
||||||
Private use characters from ISO 10646 inherently have no specified
|
|
||||||
visual form (and in fact can be used for non-displaying characters).
|
|
||||||
Thus, there could be no visual interoperability for characters in the
|
|
||||||
private use areas.
|
|
||||||
|
|
||||||
5.5 prohib-5: Punctuation
|
|
||||||
|
|
||||||
Some punctuation characters are disallowed in URLs because they are used
|
|
||||||
in URL syntax.
|
|
||||||
|
|
||||||
5.6 prohib-6: Symbols
|
|
||||||
|
|
||||||
Some mailing list discussion stated that characters that do not normally
|
|
||||||
appear in human or company names should not be allowed in host names.
|
|
||||||
This includes symbols and non-name punctuation.
|
|
||||||
|
|
||||||
|
|
||||||
6. Canonicalization
|
|
||||||
|
|
||||||
The working group has a spirited discussion on the need for
|
|
||||||
canonicalization. [IDN-REQ] describes many requirements for when and what
|
|
||||||
type of canonicalization might be performed.
|
|
||||||
|
|
||||||
6.1 canon-1: Type of canonicalization
|
|
||||||
|
|
||||||
The Unicode Consortium's recommendations and definitions of
|
|
||||||
canonicalization [UTR-15] describes many forms of canonicalization that
|
|
||||||
can be performed on character strings. [DUERST] covers much of the same
|
|
||||||
ground but makes more focused requirements for canonicalization on the
|
|
||||||
Internet.
|
|
||||||
|
|
||||||
6.1.1 canon-1.1: Normalization Form C
|
|
||||||
|
|
||||||
[DUERST] recommends Normalization Form C, as described in [UTR-15], for
|
|
||||||
use on the Internet. This form is a canonical decomposition, followed by
|
|
||||||
canonical composition.
|
|
||||||
|
|
||||||
6.1.2 canon-1.2: Normalization Form KC
|
|
||||||
|
|
||||||
Discussion on the mailing list recommended Normalization Form KC. This
|
|
||||||
form is a compatibility decomposition, followed by canonical
|
|
||||||
composition. Compatibility decomposition makes characters that have
|
|
||||||
compatibility equivalence the same after decomposing.
|
|
||||||
|
|
||||||
6.2 canon-2: Other canonicalization
|
|
||||||
|
|
||||||
Host names may have special canonicalization needs that can be added to
|
|
||||||
those given in canon-1.
|
|
||||||
|
|
||||||
6.2.1 canon-2.1: Case folding in ASCII
|
|
||||||
|
|
||||||
RFC 1034 specifies that there is no difference between host names that
|
|
||||||
have the same letters but the letters have different case. Thus, the
|
|
||||||
name part "example" is considered the same as "Example" and "EXamPLe".
|
|
||||||
Neither uppercase nor lowercase is specified as being canonical.
|
|
||||||
|
|
||||||
6.2.2 canon-2.2: Case folding in non-ASCII
|
|
||||||
|
|
||||||
Discussion on the mailing list has raised the issue of whether or not
|
|
||||||
non-ASCII Latin characters should have the same case-folding rules as
|
|
||||||
ASCII. Such rules would match the expectations of native speakers of
|
|
||||||
some languages, but would go counter to the expectations of native
|
|
||||||
speakers of other languages.
|
|
||||||
|
|
||||||
6.2.3 canon-2.3: Han folding
|
|
||||||
|
|
||||||
Discussion on the mailing list has raised the issue of equivalences in
|
|
||||||
some languages use of Han characters. For example, in Chinese, there are
|
|
||||||
many traditional characters that have equivalent simplified characters.
|
|
||||||
Similarly, there are some Han ideographs for which there are multiple
|
|
||||||
representations in ISO 10646. There are no well-established rules for
|
|
||||||
such folding, and some of the proposed folding would be locale-specific.
|
|
||||||
|
|
||||||
6.3 canon-3: Location of canonicalization
|
|
||||||
|
|
||||||
Canonicalization can be performed in any system in the DNS. Because it
|
|
||||||
is not a trivial operation and can require large tables, the location of
|
|
||||||
where canonicalization is performed is important.
|
|
||||||
|
|
||||||
6.3.1 canon-3.1: Canonicalize only in the application
|
|
||||||
|
|
||||||
Early canonicalization is a cleaner architecture design. Spending the
|
|
||||||
cycles on the end systems puts less burden on resolvers or servers in
|
|
||||||
the DNS service. When IDN is first adopted, the applications need to be
|
|
||||||
updated anyway to handle the new format for the names. It is easier for
|
|
||||||
people to upgrade their applications than their resolvers if they need a
|
|
||||||
new IDN feature.
|
|
||||||
|
|
||||||
6.3.2 canon-3.2: Canonicalize only in the resolver
|
|
||||||
|
|
||||||
Updating a single resolver provides new service to large number of
|
|
||||||
applications and (possibly) users. It is easier to find canonicalization
|
|
||||||
bugs in resolvers than in applications because the resolver has
|
|
||||||
predictable programmatic interfaces. IDN will probably be revised often
|
|
||||||
as new characters are added to ISO 10646, so updating smaller number of
|
|
||||||
resolvers is better than revising more applications. When an end user
|
|
||||||
has a problem with resolving an IDN name, it is much easier to test if
|
|
||||||
the problem is in the resolver than in the user's application.
|
|
||||||
|
|
||||||
6.3.3 canon-3.3: Canonicalize in the DNS service
|
|
||||||
|
|
||||||
Canonicalization should happen as late as possible so that changes in
|
|
||||||
the canonicalization algorithm don't orphan all applications and
|
|
||||||
resolvers. Some canonicalization discards information and so should be
|
|
||||||
delayed as long as possible. Canonicalization is practically free,
|
|
||||||
computationally (although it involves some large tables). Because adding
|
|
||||||
IDN to the DNS will happen over time, canonicalizing at the server will
|
|
||||||
minimize the number of things that need to be changed, and simplify and
|
|
||||||
centralize the process of change.
|
|
||||||
|
|
||||||
|
|
||||||
7. Transitions
|
|
||||||
|
|
||||||
Early in the working group discussion, there was active debate about how
|
|
||||||
the transition from the current host name rules to IDN would be handled.
|
|
||||||
Given requirement [#1-02], this transition is quite important to
|
|
||||||
deciding which proposals might be feasible.
|
|
||||||
|
|
||||||
7.1 trans-1: Always do current plus new architecture
|
|
||||||
|
|
||||||
In this proposal, IDN will be used at the same time as the current DNS
|
|
||||||
forever. That is, IDN will be in addition to the current DNS.
|
|
||||||
|
|
||||||
7.2 trans-2: Transition period
|
|
||||||
|
|
||||||
In this proposal, IDN will be used at the same time as the current DNS
|
|
||||||
for a specified period of time, after which only IDN will exist. That
|
|
||||||
is, IDN will replace the current DNS.
|
|
||||||
|
|
||||||
|
|
||||||
8. Root server considerations
|
|
||||||
|
|
||||||
DNS root servers receive all requests for top-level domains that are not
|
|
||||||
in the local DNS cache. They are critical to the Internet. Care must be
|
|
||||||
taken to ensure that root servers will not be affected by new mechanisms
|
|
||||||
introduced.
|
|
||||||
|
|
||||||
Any IDN proposal that includes a binary encoding will have an impact on
|
|
||||||
the root servers. The binary requests will affect the root servers
|
|
||||||
because the current root server software is designed to handle current
|
|
||||||
host names. Further, the root zone files which contain ccTLDs and gTLDs
|
|
||||||
would have to support binary domain names and possibly binary host names
|
|
||||||
for NS records. Because all the root servers are equivalent, they would
|
|
||||||
have to be synchronized to support the binary domain names at the same
|
|
||||||
time.
|
|
||||||
|
|
||||||
Proposals that only use ACE and use tagging with currently-legal names
|
|
||||||
would, by definition, not affect the root servers.
|
|
||||||
|
|
||||||
|
|
||||||
9. Security considerations
|
|
||||||
|
|
||||||
All security considerations listed in [IDN-REQ] apply to this document.
|
|
||||||
Further, all security considerations listed in each of the IDN proposals
|
|
||||||
must be considered when comparing the proposals.
|
|
||||||
|
|
||||||
Some proposals described in this document may create new security
|
|
||||||
considerations. However, these considerations will have to be addressed
|
|
||||||
in the eventual protocol document. All the proposals described here are
|
|
||||||
still incomplete and security considerations may be added to them as
|
|
||||||
they are revised. All the proposals listed in this document use the ISO
|
|
||||||
10646 character set, so the proposals inherit any security
|
|
||||||
characteristics of that character set.
|
|
||||||
|
|
||||||
Many protocols and applications rely on domain names to identify the
|
|
||||||
parties involved in a network transaction. For example, a user who
|
|
||||||
connects to a web site by entering or selecting a URL expects that their
|
|
||||||
software will select the web site named in the URL. The uniqueness of
|
|
||||||
domain names are crucial to ensure identification of Internet entities.
|
|
||||||
|
|
||||||
To make round-trip translation between local charsets and ISO 10646, the
|
|
||||||
ISO 10646 specification has assigned multiple code points to individual
|
|
||||||
glyphs. Moreover, some glyphs might look similar to some users, but look
|
|
||||||
clearly different by other users. This means that it would be simple for
|
|
||||||
an attacker to mimic a domain name by using similar-looking but
|
|
||||||
different glyphs and guessing that some users will not see the
|
|
||||||
difference in their user interface.
|
|
||||||
|
|
||||||
Some IDN protocols may have denial of service attacks, such as by using
|
|
||||||
non-identified chars, exception characters, or under-specified behavior
|
|
||||||
in using some special characters.
|
|
||||||
|
|
||||||
|
|
||||||
10. IANA considerations
|
|
||||||
|
|
||||||
This document does not create any new IANA registries. However, it is
|
|
||||||
possible that a character property registry may need to be set up when
|
|
||||||
the IDN protocol is created in order to list prohibited characters
|
|
||||||
(section 5) and canonicalization mappings (section 6).
|
|
||||||
|
|
||||||
|
|
||||||
11. Acknowledgements
|
|
||||||
|
|
||||||
James Seng and Marc Blanchet gave many helpful suggestions on the
|
|
||||||
pre-release versions of this document.
|
|
||||||
|
|
||||||
|
|
||||||
12. References
|
|
||||||
|
|
||||||
[BLOCK-NAMES] Unicode Consortium,
|
|
||||||
<ftp://ftp.unicode.org/Public/UNIDATA/Blocks.txt>.
|
|
||||||
|
|
||||||
[DUERST] Character Normalization in IETF Protocols,
|
|
||||||
draft-duerst-i18n-norm-03
|
|
||||||
|
|
||||||
[IDN-REQ] Requirements of Internationalized Domain Names,
|
|
||||||
draft-ietf-idn-requirements-02
|
|
||||||
|
|
||||||
[IDNE] Internationalized domain names using EDNS (IDNE),
|
|
||||||
draft-ietf-idn-idne-01
|
|
||||||
|
|
||||||
[KWAN] Using the UTF-8 Character Set in the Domain Name System,
|
|
||||||
draft-skwan-utf8-dns-03
|
|
||||||
|
|
||||||
[RACE] RACE: Row-based ASCII Compatible Encoding for IDN,
|
|
||||||
draft-ietf-idn-race-00
|
|
||||||
|
|
||||||
[RFC2277] IETF Policy on Character Sets and Languages, RFC 2277
|
|
||||||
|
|
||||||
[RFC2279] UTF-8, a transformation format of ISO 10646, RFC 2279
|
|
||||||
|
|
||||||
[RFC2671] Extension Mechanisms for DNS (EDNS0), RFC 2671
|
|
||||||
|
|
||||||
[SENG] UTF-5, a transformation format of Unicode and ISO 10646,
|
|
||||||
draft-jseng-utf5-01
|
|
||||||
|
|
||||||
[UDNS] Using the Universal Character Set in the Domain Name System
|
|
||||||
(UDNS), draft-ietf-idn-udns-00
|
|
||||||
|
|
||||||
[UTR15] Unicode Normalization Forms, Unicode Technical Report #15
|
|
||||||
|
|
||||||
|
|
||||||
A. Differences Between -00 and -01 Drafts
|
|
||||||
|
|
||||||
Throughout: Changed references from [HOFFMAN] to [RACE].
|
|
||||||
|
|
||||||
Throughout: Changed references from [OSCARSSON] to [UDNS].
|
|
||||||
|
|
||||||
Throughout: Added [IDNE].
|
|
||||||
|
|
||||||
Removed section 1.2.
|
|
||||||
|
|
||||||
3.2.3: Updated to mention [UDNS].
|
|
||||||
|
|
||||||
3.2.4: Updated with [IDNE], changed "EDNS0" to "EDNS", and reworded.
|
|
||||||
|
|
||||||
4.1.2: Added Ethiopic to the list of scripts that require two octets per
|
|
||||||
character.
|
|
||||||
|
|
||||||
4.1.3: Removed reference to [OSCARSSON] because that is no longer in the
|
|
||||||
[UDNS] draft.
|
|
||||||
|
|
||||||
4.2.2.1: Removed reference to [OSCARSSON] because that is no longer in
|
|
||||||
the [UDNS] draft.
|
|
||||||
|
|
||||||
6.1.1: Reworded first sentence.
|
|
||||||
|
|
||||||
6.3: Added entire section and subsections.
|
|
||||||
|
|
||||||
8: Fixed typo in first sentence.
|
|
||||||
|
|
||||||
|
|
||||||
B. Author Contact
|
|
||||||
|
|
||||||
Paul Hoffman
|
|
||||||
IMC & VPNC
|
|
||||||
127 Segre Place
|
|
||||||
Santa Cruz, CA 95060
|
|
||||||
phoffman@imc.org or paul.hoffman@vpnc.org
|
|
19
doc/draft/draft-ietf-idn-compare-02.txt
Normal file
19
doc/draft/draft-ietf-idn-compare-02.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
P. Hoffman: phoffman@imc.org
|
||||||
|
|
||||||
|
|
@@ -1,596 +0,0 @@
|
|||||||
Internet Engineering Task Force (IETF) Mark Welter
|
|
||||||
INTERNET-DRAFT Brian W. Spolarich
|
|
||||||
draft-ietf-idn-dude-00.txt WALID, Inc.
|
|
||||||
November 16, 2000 Expires May 16, 2001
|
|
||||||
|
|
||||||
|
|
||||||
DUDE: Differential Unicode Domain Encoding
|
|
||||||
|
|
||||||
|
|
||||||
Status of this memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with all
|
|
||||||
provisions of Section 10 of RFC2026.
|
|
||||||
|
|
||||||
Internet-Drafts are working documents of the Internet Engineering Task
|
|
||||||
Force (IETF), its areas, and its working groups. Note that other
|
|
||||||
groups may also distribute working documents as Internet-Drafts.
|
|
||||||
|
|
||||||
Internet-Drafts are draft documents valid for a maximum of six months
|
|
||||||
and may be updated, replaced, or obsoleted by other documents at any
|
|
||||||
time. It is inappropriate to use Internet-Drafts as reference
|
|
||||||
material or to cite them other than as "work in progress."
|
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
|
||||||
http://www.ietf.org/shadow.html.
|
|
||||||
|
|
||||||
The distribution of this document is unlimited.
|
|
||||||
|
|
||||||
Copyright (c) The Internet Society (2000). All Rights Reserved.
|
|
||||||
|
|
||||||
Abstract
|
|
||||||
|
|
||||||
This document describes a tranformation method for representing
|
|
||||||
Unicode character codepoints in host name parts in a fashion that is
|
|
||||||
completely compatible with the current Domain Name System. It provides
|
|
||||||
for very efficient representation of typical Unicode sequences as
|
|
||||||
host name parts, while preserving simplicity. It is proposed as a
|
|
||||||
potential candidate for an ASCII-Compatible Encoding (ACE) for supporting
|
|
||||||
the deployment of an internationalized Domain Name System.
|
|
||||||
|
|
||||||
|
|
||||||
Table of Contents
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
1.1 Terminology
|
|
||||||
2. Hostname Part Transformation
|
|
||||||
2.1 Post-Converted Name Prefix
|
|
||||||
2.2 Radix Selection
|
|
||||||
2.3 Hostname Prepartion
|
|
||||||
2.4 Definitions
|
|
||||||
2.5 DUDE Encoding
|
|
||||||
2.5.1 Extended Variable Length Hex Encoding
|
|
||||||
2.5.2 DUDE Compression Algorithm
|
|
||||||
2.5.3 Forward Transformation Algorithm
|
|
||||||
2.6 DUDE Decoding
|
|
||||||
2.6.1 Extended Variable Length Hex Decoding
|
|
||||||
2.6.2 DUDE Decompression Algorithm
|
|
||||||
2.6.3 Reverse Transformation Algorithm
|
|
||||||
3. Examples
|
|
||||||
3.1 'www.walid.com' (in Arabic)
|
|
||||||
4. DUDE Extensions
|
|
||||||
4.1 Extended DUDE Encoding
|
|
||||||
4.1.1 Modified Extended Variable Length Hex Encoding
|
|
||||||
4.1.2 Extended Compression Algorithm
|
|
||||||
4.1.3 Extended Forward Transformation Algorithm
|
|
||||||
4.2 Extended DUDE Decoding
|
|
||||||
4.2.1 Modified Extended Variable Length Hex Decoding
|
|
||||||
4.2.2 Extended Decompression Algorithm
|
|
||||||
4.2.3 Extended Reverse Transformation Algorithm
|
|
||||||
5. Security Considerations
|
|
||||||
6. References
|
|
||||||
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
|
|
||||||
DUDE describes an encoding scheme of the ISO/IEC 10646 [ISO10646]
|
|
||||||
character set (whose character code assignments are synchronized
|
|
||||||
with Unicode [UNICODE3]), and the procedures for using this scheme
|
|
||||||
to transform host name parts containing Unicode character sequences
|
|
||||||
into sequences that are compatible with the current DNS protocol
|
|
||||||
[STD13]. As such, it satisfies the definition of a 'charset' as
|
|
||||||
defined in [IDNREQ].
|
|
||||||
|
|
||||||
1.1 Terminology
|
|
||||||
|
|
||||||
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and
|
|
||||||
"MAY" in this document are to be interpreted as described in RFC 2119
|
|
||||||
[RFC2119].
|
|
||||||
|
|
||||||
Hexadecimal values are shown preceded with an "0x". For example,
|
|
||||||
"0xa1b5" indicates two octets, 0xa1 followed by 0xb5. Binary values are
|
|
||||||
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".
|
|
||||||
|
|
||||||
DUDE converts strings with internationalized characters into
|
|
||||||
strings of US-ASCII that are acceptable as host name parts in current
|
|
||||||
DNS host naming usage. The former are called "pre-converted" and the
|
|
||||||
latter are called "post-converted". This specification defines both
|
|
||||||
a forward and reverse transformation algorithm.
|
|
||||||
|
|
||||||
|
|
||||||
2. Hostname Part Transformation
|
|
||||||
|
|
||||||
According to [STD13], hostname parts must start and end with a letter
|
|
||||||
or digit, and contain only letters, digits, and the hyphen character
|
|
||||||
("-"). This, of course, excludes most characters used by non-English
|
|
||||||
speakers, characters, as well as many other characters in the ASCII
|
|
||||||
character repertoire. Further, domain name parts must be 63 octets or
|
|
||||||
shorter in length.
|
|
||||||
|
|
||||||
2.1 Post-Converted Name Prefix
|
|
||||||
|
|
||||||
This document defines the string 'dq--' as a prefix to identify
|
|
||||||
DUDE-encoded sequences. For the purposes of comparison in the IDN
|
|
||||||
Working Group activities, the 'dq--' prefix should be used solely to
|
|
||||||
identify DUDE sequences. However, should this document proceed beyond
|
|
||||||
draft status the prefix should be changed to whatever prefix, if any,
|
|
||||||
is the final consensus of the IDN working group.
|
|
||||||
|
|
||||||
Note that the prepending of a fixed identifier sequence is only one
|
|
||||||
mechanism for differentiating ASCII character encoded international
|
|
||||||
domain names from 'ordinary' domain names. One method, as proposed in
|
|
||||||
[IDNRACE], is to include a character prefix or suffix that does not
|
|
||||||
appear in any name in any zone file. A second method is to insert a
|
|
||||||
domain component which pushes off any international names one or more
|
|
||||||
levels deeper into the DNS hierarchy. There are trade-offs between
|
|
||||||
these two methods which are independent of the Unicode to ASCII
|
|
||||||
transcoding method finally chosen. We do not address the international
|
|
||||||
vs. 'ordinary' name differention issue in this paper.
|
|
||||||
|
|
||||||
2.2 Radix Selection
|
|
||||||
|
|
||||||
There are many proposed methods for representing Unicode characters
|
|
||||||
within the allowed target character set, which can be split into groups
|
|
||||||
on the basis of the underlying radix. We have chosen a method with
|
|
||||||
radix 16 because both UTF-16 and ASCII are represented by even multiples
|
|
||||||
of four bits. This allows a Unicode character to be encoded as a
|
|
||||||
whole number of ASCII characters, and permits easier manipulation of
|
|
||||||
the resulting encoded data by humans.
|
|
||||||
|
|
||||||
2.3 Hostname Prepartion
|
|
||||||
|
|
||||||
The hostname part is assumed to have at least one character disallowed
|
|
||||||
by [STD13], and that is has been processed for logically equivalent
|
|
||||||
character mapping, filtering of disallowed characters (if any), and
|
|
||||||
compatibility composition/decomposition before presentation to the DUDE
|
|
||||||
conversion algorithm.
|
|
||||||
|
|
||||||
While it is possible to invent a transcoding mechanism that relies
|
|
||||||
on certain Unicode characters being deemed illegal within domain names
|
|
||||||
and hence available to the transcoding mechanism for improving encoding
|
|
||||||
efficiency, we feel that such a proposal would complicate matters
|
|
||||||
excessively. We also believe that Unicode name preprocessing for
|
|
||||||
both name resolution and name registration should be considered as
|
|
||||||
separate, independent issues, which we will address in a separate
|
|
||||||
document.
|
|
||||||
|
|
||||||
2.4 Definitions
|
|
||||||
|
|
||||||
For clarity:
|
|
||||||
|
|
||||||
'integer' is an unsigned binary quantity;
|
|
||||||
'byte' is an 8-bit integer quantity;
|
|
||||||
'nibble' is a 4-bit integer quantity.
|
|
||||||
|
|
||||||
2.5 DUDE Encoding
|
|
||||||
|
|
||||||
The idea behind this scheme is to provide compression by encoding the
|
|
||||||
contiguous least significant nibbles of a character that differ from the
|
|
||||||
preceding character. Using a variant of the variable length hex encoding
|
|
||||||
desribed in [IDNDUERST] and elsewhere, by encoding leading zero nibbles
|
|
||||||
this technique allows recovery of the differential length. The encoding
|
|
||||||
is, with some practice, easy to perform manually.
|
|
||||||
|
|
||||||
There are two extensions to this basic idea: one enables encoding the
|
|
||||||
preferred case for each charcter (for reverse DNS resolution) and
|
|
||||||
another improves the worse case behaviour related to surrogates. The
|
|
||||||
basic algorithms will be formally described first and then the extended
|
|
||||||
algorithms will be described.
|
|
||||||
|
|
||||||
2.5.1 Extended Variable Length Hex Encoding
|
|
||||||
|
|
||||||
The variable length hex encoding algorithm was introduced by Duerst in
|
|
||||||
[IDNDUERST]. It encodes an integer value in a slight modification of
|
|
||||||
traditional hexadecimal notation, the difference being that the most
|
|
||||||
significant digit is represented with an alternate set of "digits"
|
|
||||||
- -- 'g through 'v' are used to represent 0 through 15. The result is a
|
|
||||||
variable length encoding which can efficiently represent integers of
|
|
||||||
arbitrary length.
|
|
||||||
|
|
||||||
This specification extends the variable length hex encoding algorithm
|
|
||||||
to support the compression scheme defined below by potentially not
|
|
||||||
supressing leading zero nibbles.
|
|
||||||
|
|
||||||
The extended variable length nibble encoding of an integer, C,
|
|
||||||
to length N, is defined as follows:
|
|
||||||
|
|
||||||
1. Start with I, the Nth least significant nibble from the least
|
|
||||||
significant nibble of C;
|
|
||||||
|
|
||||||
2. Emit the Ith character of the sequence [ghijklmnopqrstuv];
|
|
||||||
|
|
||||||
3. Continue from the most to least significant, encoding each
|
|
||||||
remaining nibble J by emitting the Jth character of the
|
|
||||||
sequence [0123456789abcdef].
|
|
||||||
|
|
||||||
2.5.2 DUDE Compression Algorithm
|
|
||||||
|
|
||||||
1. Let PREV = 0;
|
|
||||||
|
|
||||||
2. If there are no more characters in the input, terminate successfully;
|
|
||||||
|
|
||||||
4. Let C be the next character in the input;
|
|
||||||
|
|
||||||
5. If C != '-' , then go to step 5;
|
|
||||||
|
|
||||||
6. Consume the input character, emit '-', and go to step 2;
|
|
||||||
|
|
||||||
7. Let D be the result of PREV exclusive ORed with C;
|
|
||||||
|
|
||||||
8. Find the least positive value N such that
|
|
||||||
D bitwise ANDed with M is zero
|
|
||||||
where M = the bitwise complement of (16**N) - 1;
|
|
||||||
|
|
||||||
9. Let V be C ANDed with the bitwise complement of M;
|
|
||||||
|
|
||||||
10. Variable length hex encode V to length N and emit the result;
|
|
||||||
|
|
||||||
11. Let PREV = C and go to step 2.
|
|
||||||
|
|
||||||
|
|
||||||
2.5.3 Forward Transformation Algorithm
|
|
||||||
|
|
||||||
The DUDE transformation algorithm accepts a string in UTF-16
|
|
||||||
[ISO10646] format as input. The encoding algorithm is as follows:
|
|
||||||
|
|
||||||
1. Break the hostname string into dot-separated hostname parts.
|
|
||||||
For each hostname part which contains one or more characters
|
|
||||||
disallowed by [STD13], perform steps 2 and 3 below;
|
|
||||||
|
|
||||||
2. Compress the hostname part using the method described in section
|
|
||||||
2.5.2 above, and encode using the encoding described in section
|
|
||||||
2.5.1;
|
|
||||||
|
|
||||||
3. Prepend the post-converted name prefix 'dq--' (see section 2.1
|
|
||||||
above) to the resulting string.
|
|
||||||
|
|
||||||
|
|
||||||
2.6 DUDE Decoding
|
|
||||||
|
|
||||||
2.6.1 Extended Variable Length Hex Decoding
|
|
||||||
|
|
||||||
Decoding extended variable length hex encoded strings is identical
|
|
||||||
to the standard variable length hex encoding, and is defined as
|
|
||||||
follows:
|
|
||||||
|
|
||||||
1. Let CL be the lower case of the first input character,
|
|
||||||
|
|
||||||
If CL is not in set [ghijklmnopqrstuv],
|
|
||||||
return error,
|
|
||||||
else
|
|
||||||
consume the input character;
|
|
||||||
|
|
||||||
2. Let R = CL - 'g',
|
|
||||||
Let N = 1;
|
|
||||||
|
|
||||||
3. If no more input characters exist, go to step 9.
|
|
||||||
|
|
||||||
4. Let CL be the lower case of the next input character;
|
|
||||||
|
|
||||||
5. If CL is not in the set [0123456789abcdef], go to Step 9;
|
|
||||||
|
|
||||||
6. Consume the next input character,
|
|
||||||
Let N = N + 1;
|
|
||||||
Let R = R * 16;
|
|
||||||
|
|
||||||
7. If N is in set [0123456789],
|
|
||||||
then let R = R + (N - '0')
|
|
||||||
else let R = R + (N - 'a') + 10;
|
|
||||||
|
|
||||||
8. Go to step 3;
|
|
||||||
|
|
||||||
9. Let MASK be the bitwise complement of (16**N) - 1;
|
|
||||||
|
|
||||||
10. Return decoded result R as well as MASK.
|
|
||||||
|
|
||||||
2.6.2 DUDE Decompression Algorithm
|
|
||||||
|
|
||||||
1. Let PREV = 0;
|
|
||||||
|
|
||||||
2. If there are no more input characters then terminate successfully;
|
|
||||||
|
|
||||||
3. Let C be the next input character;
|
|
||||||
|
|
||||||
4. If C == '-', append '-' to the result string, consume the character,
|
|
||||||
and go to step 2,
|
|
||||||
|
|
||||||
5. Let VPART, MASK be the next variable length hex decoded
|
|
||||||
value and mask;
|
|
||||||
|
|
||||||
6. If VPART > 0xFFFF then return error status,
|
|
||||||
|
|
||||||
7. Let CU = ( PREV bitwise-AND MASK) + VPART,
|
|
||||||
Let PREV = CU;
|
|
||||||
|
|
||||||
8. Append the UTF-16 character CU to the result string;
|
|
||||||
|
|
||||||
9. Go to step 2.
|
|
||||||
|
|
||||||
|
|
||||||
2.6.3 Reverse Transformation Algorithm
|
|
||||||
|
|
||||||
1. Break the string into dot-separated components and apply Steps
|
|
||||||
2 through 4 to each component;
|
|
||||||
|
|
||||||
2. Remove the post converted name prefix 'dq--' (see Section 2.1);
|
|
||||||
|
|
||||||
3. Decompress the component using the decompression algorithm
|
|
||||||
described above;
|
|
||||||
|
|
||||||
4. Concatenate the decoded segments with dot separators and return.
|
|
||||||
|
|
||||||
3. Examples
|
|
||||||
|
|
||||||
The examples below illustrate the encoding algorithm and provide
|
|
||||||
comparisons to alternate encoding schemes. UTF-5 sequences are
|
|
||||||
prefixed with '----', as no ACE prefix was defined for that encoding.
|
|
||||||
|
|
||||||
3.1 'www.walid.com' (in Arabic):
|
|
||||||
|
|
||||||
UTF-16: U+0645 U+0648 U+0642 U+0639 . U+0648 U+0644 U+064A U+062F .
|
|
||||||
U+0634 U+0631 U+0643 U+0629
|
|
||||||
|
|
||||||
DUDE: dq--m45oij9.dq--m48kqif.dq--m34hk3i9
|
|
||||||
|
|
||||||
UTF-6: wq--ymk5k8k2j9.wq--ymk8k4kaif.wq--ymj4j1k3i9
|
|
||||||
|
|
||||||
UTF-5: ----m45m48m42m39.----m48m44m4am2f.----m34m31m43m29
|
|
||||||
|
|
||||||
RACE: bq--azcuqqrz.bq--azeeisrp.bq--ay2dcqzj
|
|
||||||
|
|
||||||
LACE: bq--aqdekscche.bq--aqdeqrckf5.bq--aqddimkdfe
|
|
||||||
|
|
||||||
(more examples to come)
|
|
||||||
|
|
||||||
4. DUDE Extensions
|
|
||||||
|
|
||||||
The first extension to the DUDE concept recognizes that the first
|
|
||||||
character emitted by the variable length hex encoding algorithm is
|
|
||||||
always alphabetic. We encode the case (if any) of the original Unicode
|
|
||||||
character in the case of the initial "hex" character. Because the DNS
|
|
||||||
performs case-insensitive comparisons, mixed case international domain
|
|
||||||
names behave in exactly the same way as traditional domain names.
|
|
||||||
In particular, this enables reverse lookups to return names in the
|
|
||||||
preferred case.
|
|
||||||
|
|
||||||
The second extension regards the treatment of Unicode surrogate
|
|
||||||
characters. If surrogates are not expanded, two 16-bit surrogates are
|
|
||||||
needed to represent a single codepoint in the range of 0x10000
|
|
||||||
through 0x10FFFF. This cuts the worse case limits in half for most
|
|
||||||
proposals. We will assume that our input and output Unicode are in
|
|
||||||
UTF-32 format -- that is, any surrogates are expanded to their UCS-4
|
|
||||||
equivalents. If the input codes all fall under 0x10000, then the
|
|
||||||
extended method will emit the same length string as the basic method.
|
|
||||||
One final modification takes note of the fact that the only only
|
|
||||||
codepoints forcing the use of six hex digits is for those with a "10"
|
|
||||||
as the fifth and sixth digits. We will encode the fifth digit using
|
|
||||||
a seventeenth digit as a special case to avoid this extra expansion.
|
|
||||||
|
|
||||||
4.1 Extended DUDE Encoding
|
|
||||||
|
|
||||||
4.1.1 Modified Extended Variable Length Hex Encoding
|
|
||||||
|
|
||||||
The modified extended variable length hex encoding of an integer C to
|
|
||||||
length N with case U is performed as follows:
|
|
||||||
|
|
||||||
1. If C > 0x10FFFF return error status;
|
|
||||||
|
|
||||||
2. If N < 6 go to step 5; (this is true for characters from
|
|
||||||
the first 16 Planes)
|
|
||||||
|
|
||||||
3. If U is 'Uppercase' then emit 'W'
|
|
||||||
else emit 'w'; (special case for the 17th Plane)
|
|
||||||
|
|
||||||
4. go to step 7;
|
|
||||||
|
|
||||||
5. Let I be the Nth nibble from the right of C;
|
|
||||||
|
|
||||||
6. If U is 'Uppercase'
|
|
||||||
then emit the Ith character of sequence [GHIJKLMNOPQRSTUV],
|
|
||||||
else emit the Ith character of sequence [ghijklmnopqrstuv];
|
|
||||||
|
|
||||||
7. Let N = N - 1;
|
|
||||||
|
|
||||||
8. Continue from N to 1, encoding each remaining nibble, J, by
|
|
||||||
emitting the Jth character of sequence [0123456789abcdef].
|
|
||||||
|
|
||||||
|
|
||||||
4.1.2 Extended Compression Algorithm
|
|
||||||
|
|
||||||
1. Let PREV = 0;
|
|
||||||
|
|
||||||
2. If there are no more characters in the input, terminate successfully;
|
|
||||||
|
|
||||||
4. Let U be the case of the next character in the input;
|
|
||||||
Let C be the lowercase value of the next input character;
|
|
||||||
|
|
||||||
5. If C != '-' , then go to step 7;
|
|
||||||
|
|
||||||
6. Consume the input character, emit '-', and go to step 2;
|
|
||||||
|
|
||||||
7. Let D be the result of PREV exclusive ORed with C;
|
|
||||||
|
|
||||||
8. Find the least positive value N such that
|
|
||||||
D bitwise ANDed with M is zero
|
|
||||||
where M = the bitwise complement of (16**N) - 1;
|
|
||||||
|
|
||||||
9. Let V = C ANDed with the bitwise complement of M;
|
|
||||||
|
|
||||||
10. Emit the modified variable length hex encoding of V to length
|
|
||||||
N with case U;
|
|
||||||
|
|
||||||
11. Let PREV = C and go to step 2.
|
|
||||||
|
|
||||||
4.1.3 Extended Forward Transformation Algorithm
|
|
||||||
|
|
||||||
The overall extended encoding algorithm is as follows:
|
|
||||||
|
|
||||||
1. Break the hostname string into dot-separated hostname parts.
|
|
||||||
For each hostname part, perform steps 2 and 3 below;
|
|
||||||
|
|
||||||
2. Compress the component using the method described in section
|
|
||||||
4.1.2 above, and encode using the encoding described in section
|
|
||||||
4.1.1;
|
|
||||||
|
|
||||||
3. Prepend the post-converted name prefix 'dq--' (see section 2.1
|
|
||||||
above) to the resulting string.
|
|
||||||
|
|
||||||
4.2 Extended DUDE Decoding
|
|
||||||
|
|
||||||
4.2.1 Modified Extended Variable Length Hex Decoding
|
|
||||||
|
|
||||||
1. Let U be the case of the next input character,
|
|
||||||
Let C0 be the lower case of the next input character;
|
|
||||||
|
|
||||||
2. If C0 is not in set [ghijklmnopqrstuw] then return error status,
|
|
||||||
else, consume the input character;
|
|
||||||
|
|
||||||
3. Let R = C0 - 'g'
|
|
||||||
Let N = 1;
|
|
||||||
|
|
||||||
4. If no more input characters exist then go to step 8;
|
|
||||||
|
|
||||||
5. Let CL be the lower case of the next input character,
|
|
||||||
If CL is not in set [0123456789abcdef] then go to step 8;
|
|
||||||
|
|
||||||
6. Consume the next input character,
|
|
||||||
Let N = N + 1,
|
|
||||||
Let R = R * 16,
|
|
||||||
If CL is in set [0-9]
|
|
||||||
then let R = R + (CL - '0')
|
|
||||||
else let R = R + (CL - 'a') + 10;
|
|
||||||
|
|
||||||
7. Go to step 4;
|
|
||||||
|
|
||||||
8. If R < 0x100000 then go to step 10;
|
|
||||||
|
|
||||||
9. Let N = N + 1,
|
|
||||||
If (N > 6) or (C0 != 'w')
|
|
||||||
then return error status;
|
|
||||||
|
|
||||||
10. Let MASK be the bitwise complement of (16**N) - 1. Return
|
|
||||||
result R, MASK, and U.
|
|
||||||
|
|
||||||
4.2.2 Extended Decompression Algorithm
|
|
||||||
|
|
||||||
1. Let PREV = 0;
|
|
||||||
|
|
||||||
2. If there are no more input characters then terminate successfully;
|
|
||||||
|
|
||||||
3. Let C be the next input character;
|
|
||||||
|
|
||||||
4. If C == '-', append '-' to the result
|
|
||||||
string, consume the character, and go to step 2;
|
|
||||||
|
|
||||||
5. Let VPART, MASK, and U be the result of the modified extended
|
|
||||||
variable length decoded value;
|
|
||||||
|
|
||||||
6. Let CU = (PREV 'bitwise AND' MASK) + VPART,
|
|
||||||
Let PREV = CU;
|
|
||||||
|
|
||||||
7. If U == 'Uppercase' then let CU = the corresponding upper case value
|
|
||||||
of CU;
|
|
||||||
|
|
||||||
8. Append CU to the result string and go to step 2.
|
|
||||||
|
|
||||||
4.2.3 Extended Reverse Transformation Algorithm
|
|
||||||
|
|
||||||
1. Break the string into dot-separated components and apply Steps
|
|
||||||
2 through 4 to each component;
|
|
||||||
|
|
||||||
2. Remove the post converted name prefix 'dq--' (see Section 2.1);
|
|
||||||
|
|
||||||
3. Decompress the component using the extended decompression
|
|
||||||
algorithm described in section 4.2.2 above;
|
|
||||||
|
|
||||||
4. Concatenate the decoded segments with dot separators and return.
|
|
||||||
|
|
||||||
Note that DUDE decoding will return error for input strings which do
|
|
||||||
not comply with RFC1035.
|
|
||||||
|
|
||||||
5. Security Considerations
|
|
||||||
|
|
||||||
Much of the security of the Internet relies on the DNS and any
|
|
||||||
change to the characteristics of the DNS may change the security of
|
|
||||||
much of the Internet. Therefore DUDE makes no changes to the DNS itself.
|
|
||||||
|
|
||||||
DUDE is designed so that distinct Unicode sequences map to distinct
|
|
||||||
domain name sequences (modulo the Unicode and DNS equivalence rules).
|
|
||||||
Therefore use of DUDE with DNS will not negatively affect security.
|
|
||||||
|
|
||||||
|
|
||||||
6. References
|
|
||||||
|
|
||||||
[IDNCOMP] Paul Hoffman, "Comparison of Internationalized Domain Name
|
|
||||||
Proposals", draft-ietf-idn-compare;
|
|
||||||
|
|
||||||
[IDNRACE] Paul Hoffman, "RACE: Row-Based ASCII Compatible Encoding for
|
|
||||||
IDN", draft-ietf-idn-race;
|
|
||||||
|
|
||||||
[IDNREQ] James Seng, "Requirements of Internationalized Domain Names",
|
|
||||||
draft-ietf-idn-requirement;
|
|
||||||
|
|
||||||
[IDNNAMEPREP] Paul Hoffman and Marc Blanchet, "Preparation of
|
|
||||||
Internationalized Host Names", draft-ietf-idn-nameprep;
|
|
||||||
|
|
||||||
[IDNDUERST] M. Duerst, "Internationalization of Domain Names",
|
|
||||||
draft-duerst-dns-i18n;
|
|
||||||
|
|
||||||
[ISO10646] ISO/IEC 10646-1:1993. International Standard -- Information
|
|
||||||
technology -- Universal Multiple-Octet Coded Character Set (UCS) --
|
|
||||||
Part 1: Architecture and Basic Multilingual Plane. Five amendments and
|
|
||||||
a technical corrigendum have been published up to now. UTF-16 is
|
|
||||||
described in Annex Q, published as Amendment 1. 17 other amendments are
|
|
||||||
currently at various stages of standardization;
|
|
||||||
|
|
||||||
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
|
|
||||||
Requirement Levels", March 1997, RFC 2119;
|
|
||||||
|
|
||||||
[STD13] Paul Mockapetris, "Domain names - implementation and
|
|
||||||
specification", November 1987, STD 13 (RFC 1035);
|
|
||||||
|
|
||||||
[UNICODE3] 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>.
|
|
||||||
|
|
||||||
|
|
||||||
A. Acknowledgements
|
|
||||||
|
|
||||||
The structure (and some of the structural text) of this document is
|
|
||||||
intentionally borrowed from the LACE IDN draft (draft-ietf-idn-lace-00)
|
|
||||||
by Mark Davis and Paul Hoffman.
|
|
||||||
|
|
||||||
B. IANA Considerations
|
|
||||||
|
|
||||||
There are no IANA considerations in this document.
|
|
||||||
|
|
||||||
|
|
||||||
C. Author Contact Information
|
|
||||||
|
|
||||||
Mark Welter
|
|
||||||
Brian W. Spolarich
|
|
||||||
WALID, Inc.
|
|
||||||
State Technology Park
|
|
||||||
2245 S. State St.
|
|
||||||
Ann Arbor, MI 48104
|
|
||||||
+1-734-822-2020
|
|
||||||
|
|
||||||
mwelter@walid.com
|
|
||||||
briansp@walid.com
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1.0.1 (GNU/Linux)
|
|
||||||
Comment: For info see http://www.gnupg.org
|
|
||||||
|
|
||||||
iD8DBQE6FZ/D/DkPcNgtD/0RAoswAKCUGBTSFJv96+Z+YnA8m47qrnheAgCeLQ6C
|
|
||||||
1+knyHluauC+66esCtPVoKU=
|
|
||||||
=hbT+
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
|
|
898
doc/draft/draft-ietf-idn-dude-01.txt
Normal file
898
doc/draft/draft-ietf-idn-dude-01.txt
Normal file
@@ -0,0 +1,898 @@
|
|||||||
|
Internet Engineering Task Force (IETF) Mark Welter
|
||||||
|
INTERNET-DRAFT Brian W. Spolarich
|
||||||
|
draft-ietf-idn-dude-01.txt WALID, Inc.
|
||||||
|
March 02, 2001 Expires September 02, 2001
|
||||||
|
|
||||||
|
|
||||||
|
DUDE: Differential Unicode Domain Encoding
|
||||||
|
|
||||||
|
|
||||||
|
Status of this memo
|
||||||
|
|
||||||
|
This document is an Internet-Draft and is in full conformance with all
|
||||||
|
provisions of Section 10 of RFC2026.
|
||||||
|
|
||||||
|
Internet-Drafts are working documents of the Internet Engineering Task
|
||||||
|
Force (IETF), its areas, and its working groups. Note that other
|
||||||
|
groups may also distribute working documents as Internet-Drafts.
|
||||||
|
|
||||||
|
Internet-Drafts are draft documents valid for a maximum of six months
|
||||||
|
and may be updated, replaced, or obsoleted by other documents at any
|
||||||
|
time. It is inappropriate to use Internet-Drafts as reference
|
||||||
|
material or to cite them other than as "work in progress."
|
||||||
|
|
||||||
|
The list of current Internet-Drafts can be accessed at
|
||||||
|
http://www.ietf.org/ietf/1id-abstracts.txt
|
||||||
|
|
||||||
|
The list of Internet-Draft Shadow Directories can be accessed at
|
||||||
|
http://www.ietf.org/shadow.html.
|
||||||
|
|
||||||
|
The distribution of this document is unlimited.
|
||||||
|
|
||||||
|
Copyright (c) The Internet Society (2000). All Rights Reserved.
|
||||||
|
|
||||||
|
Abstract
|
||||||
|
|
||||||
|
This document describes a tranformation method for representing
|
||||||
|
Unicode character codepoints in host name parts in a fashion that is
|
||||||
|
completely compatible with the current Domain Name System. It provides
|
||||||
|
for very efficient representation of typical Unicode sequences as
|
||||||
|
host name parts, while preserving simplicity. It is proposed as a
|
||||||
|
potential candidate for an ASCII-Compatible Encoding (ACE) for supporting
|
||||||
|
the deployment of an internationalized Domain Name System.
|
||||||
|
|
||||||
|
|
||||||
|
Table of Contents
|
||||||
|
|
||||||
|
1. Introduction
|
||||||
|
1.1 Terminology
|
||||||
|
2. Hostname Part Transformation
|
||||||
|
2.1 Post-Converted Name Prefix
|
||||||
|
2.2 Radix Selection
|
||||||
|
2.3 Hostname Prepartion
|
||||||
|
2.4 Definitions
|
||||||
|
2.5 DUDE Encoding
|
||||||
|
2.5.1 Extended Variable Length Hex Encoding
|
||||||
|
2.5.2 DUDE Compression Algorithm
|
||||||
|
2.5.3 Forward Transformation Algorithm
|
||||||
|
2.6 DUDE Decoding
|
||||||
|
2.6.1 Extended Variable Length Hex Decoding
|
||||||
|
2.6.2 DUDE Decompression Algorithm
|
||||||
|
2.6.3 Reverse Transformation Algorithm
|
||||||
|
3. Examples
|
||||||
|
4. Optional Case Preservation
|
||||||
|
5. Security Considerations
|
||||||
|
6. References
|
||||||
|
|
||||||
|
|
||||||
|
1. Introduction
|
||||||
|
|
||||||
|
DUDE describes an encoding scheme of the ISO/IEC 10646 [ISO10646]
|
||||||
|
character set (whose character code assignments are synchronized
|
||||||
|
with Unicode [UNICODE3]), and the procedures for using this scheme
|
||||||
|
to transform host name parts containing Unicode character sequences
|
||||||
|
into sequences that are compatible with the current DNS protocol
|
||||||
|
[STD13]. As such, it satisfies the definition of a 'charset' as
|
||||||
|
defined in [IDNREQ].
|
||||||
|
|
||||||
|
1.1 Terminology
|
||||||
|
|
||||||
|
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and
|
||||||
|
"MAY" in this document are to be interpreted as described in RFC 2119
|
||||||
|
[RFC2119].
|
||||||
|
|
||||||
|
Hexadecimal values are shown preceded with an "0x". For example,
|
||||||
|
"0xa1b5" indicates two octets, 0xa1 followed by 0xb5. Binary values are
|
||||||
|
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".
|
||||||
|
|
||||||
|
DUDE converts strings with internationalized characters into
|
||||||
|
strings of US-ASCII that are acceptable as host name parts in current
|
||||||
|
DNS host naming usage. The former are called "pre-converted" and the
|
||||||
|
latter are called "post-converted". This specification defines both
|
||||||
|
a forward and reverse transformation algorithm.
|
||||||
|
|
||||||
|
|
||||||
|
2. Hostname Part Transformation
|
||||||
|
|
||||||
|
According to [STD13], hostname parts must start and end with a letter
|
||||||
|
or digit, and contain only letters, digits, and the hyphen character
|
||||||
|
("-"). This, of course, excludes most characters used by non-English
|
||||||
|
speakers, characters, as well as many other characters in the ASCII
|
||||||
|
character repertoire. Further, domain name parts must be 63 octets or
|
||||||
|
shorter in length.
|
||||||
|
|
||||||
|
2.1 Post-Converted Name Prefix
|
||||||
|
|
||||||
|
This document defines the string 'dq--' as a prefix to identify
|
||||||
|
DUDE-encoded sequences. For the purposes of comparison in the IDN
|
||||||
|
Working Group activities, the 'dq--' prefix should be used solely to
|
||||||
|
identify DUDE sequences. However, should this document proceed beyond
|
||||||
|
draft status the prefix should be changed to whatever prefix, if any,
|
||||||
|
is the final consensus of the IDN working group.
|
||||||
|
|
||||||
|
Note that the prepending of a fixed identifier sequence is only one
|
||||||
|
mechanism for differentiating ASCII character encoded international
|
||||||
|
domain names from 'ordinary' domain names. One method, as proposed in
|
||||||
|
[IDNRACE], is to include a character prefix or suffix that does not
|
||||||
|
appear in any name in any zone file. A second method is to insert a
|
||||||
|
domain component which pushes off any international names one or more
|
||||||
|
levels deeper into the DNS hierarchy. There are trade-offs between
|
||||||
|
these two methods which are independent of the Unicode to ASCII
|
||||||
|
transcoding method finally chosen. We do not address the international
|
||||||
|
vs. 'ordinary' name differention issue in this paper.
|
||||||
|
|
||||||
|
2.2 Radix Selection
|
||||||
|
|
||||||
|
There are many proposed methods for representing Unicode characters
|
||||||
|
within the allowed target character set, which can be split into groups
|
||||||
|
on the basis of the underlying radix. We have chosen a method with
|
||||||
|
radix 16 because both UTF-32 and ASCII are represented by even multiples
|
||||||
|
of four bits. This allows a Unicode character to be encoded as a
|
||||||
|
whole number of ASCII characters, and permits easier manipulation of
|
||||||
|
the resulting encoded data by humans.
|
||||||
|
|
||||||
|
2.3 Hostname Preparation
|
||||||
|
|
||||||
|
The hostname part is assumed to have at least one character disallowed
|
||||||
|
by [STD13], and that is has been processed for logically equivalent
|
||||||
|
character mapping, filtering of disallowed characters (if any), and
|
||||||
|
compatibility composition/decomposition before presentation to the DUDE
|
||||||
|
conversion algorithm.
|
||||||
|
|
||||||
|
While it is possible to invent a transcoding mechanism that relies
|
||||||
|
on certain Unicode characters being deemed illegal within domain names
|
||||||
|
and hence available to the transcoding mechanism for improving encoding
|
||||||
|
efficiency, we feel that such a proposal would complicate matters
|
||||||
|
excessively.
|
||||||
|
|
||||||
|
2.4 Definitions
|
||||||
|
|
||||||
|
For clarity:
|
||||||
|
|
||||||
|
'integer' is an unsigned binary quantity;
|
||||||
|
'byte' is an 8-bit integer quantity;
|
||||||
|
'nibble' is a 4-bit integer quantity.
|
||||||
|
|
||||||
|
2.5 DUDE Encoding
|
||||||
|
|
||||||
|
The idea behind this scheme is to provide compression by encoding the
|
||||||
|
contiguous least significant nibbles of a character that differ from the
|
||||||
|
preceding character. Using a variant of the variable length hex encoding
|
||||||
|
desribed in [IDNDUERST] and elsewhere, by encoding leading zero nibbles
|
||||||
|
this technique allows recovery of the differential length. The encoding
|
||||||
|
is, with some practice, easy to perform manually.
|
||||||
|
|
||||||
|
2.5.1 Extended Variable Length Hex Encoding
|
||||||
|
|
||||||
|
The variable length hex encoding algorithm was introduced by Duerst in
|
||||||
|
[IDNDUERST]. It encodes an integer value in a slight modification of
|
||||||
|
traditional hexadecimal notation, the difference being that the most
|
||||||
|
significant digit is represented with an alternate set of "digits"
|
||||||
|
- -- 'g through 'v' are used to represent 0 through 15. The result is a
|
||||||
|
variable length encoding which can efficiently represent integers of
|
||||||
|
arbitrary length.
|
||||||
|
|
||||||
|
This specification extends the variable length hex encoding algorithm
|
||||||
|
to support the compression scheme defined below by potentially not
|
||||||
|
supressing leading zero nibbles.
|
||||||
|
|
||||||
|
The extended variable length nibble encoding of an integer, C,
|
||||||
|
to length N, is defined as follows:
|
||||||
|
|
||||||
|
1. Start with I, the Nth least significant nibble from the least
|
||||||
|
significant nibble of C;
|
||||||
|
|
||||||
|
2. Emit the Ith character of the sequence [ghijklmnopqrstuv];
|
||||||
|
|
||||||
|
3. Continue from the most to least significant, encoding each
|
||||||
|
remaining nibble J by emitting the Jth character of the
|
||||||
|
sequence [0123456789abcdef].
|
||||||
|
|
||||||
|
2.5.2 DUDE Compression Algorithm
|
||||||
|
|
||||||
|
1. Let PREV = 0;
|
||||||
|
|
||||||
|
2. If there are no more characters in the input, terminate successfully;
|
||||||
|
|
||||||
|
4. Let C be the next character in the input;
|
||||||
|
|
||||||
|
5. If C != '-' , then go to step 7;
|
||||||
|
|
||||||
|
6. Consume the input character, emit '-', and go to step 2;
|
||||||
|
|
||||||
|
7. Let D be the result of PREV exclusive ORed with C;
|
||||||
|
|
||||||
|
8. Find the least positive value N such that
|
||||||
|
D bitwise ANDed with M is zero
|
||||||
|
where M = the bitwise complement of (16**N) - 1;
|
||||||
|
|
||||||
|
9. Let V be C ANDed with the bitwise complement of M;
|
||||||
|
|
||||||
|
10. Variable length hex encode V to length N and emit the result;
|
||||||
|
|
||||||
|
11. Let PREV = C and go to step 2.
|
||||||
|
|
||||||
|
|
||||||
|
2.5.3 Forward Transformation Algorithm
|
||||||
|
|
||||||
|
The DUDE transformation algorithm accepts a string in UTF-32
|
||||||
|
[UNICODE3] format as input. It is assumed that prior nameprep
|
||||||
|
processing has disallowed the private use code points in
|
||||||
|
0X100000 throuh 0X10FFFF, so that we are left with the task of
|
||||||
|
encoding 20 bit integers. The encoding algorithm is as follows:
|
||||||
|
|
||||||
|
1. Break the hostname string into dot-separated hostname parts.
|
||||||
|
For each hostname part which contains one or more characters
|
||||||
|
disallowed by [STD13], perform steps 2 and 3 below;
|
||||||
|
|
||||||
|
2. Compress the hostname part using the method described in section
|
||||||
|
2.5.2 above, and encode using the encoding described in section
|
||||||
|
2.5.1;
|
||||||
|
|
||||||
|
3. Prepend the post-converted name prefix 'dq--' (see section 2.1
|
||||||
|
above) to the resulting string.
|
||||||
|
|
||||||
|
|
||||||
|
2.6 DUDE Decoding
|
||||||
|
|
||||||
|
2.6.1 Extended Variable Length Hex Decoding
|
||||||
|
|
||||||
|
Decoding extended variable length hex encoded strings is identical
|
||||||
|
to the standard variable length hex encoding, and is defined as
|
||||||
|
follows:
|
||||||
|
|
||||||
|
1. Let CL be the lower case of the first input character,
|
||||||
|
|
||||||
|
If CL is not in set [ghijklmnopqrstuv],
|
||||||
|
return error,
|
||||||
|
else
|
||||||
|
consume the input character;
|
||||||
|
|
||||||
|
2. Let R = CL - 'g',
|
||||||
|
Let N = 1;
|
||||||
|
|
||||||
|
3. If no more input characters exist, go to step 9.
|
||||||
|
|
||||||
|
4. Let CL be the lower case of the next input character;
|
||||||
|
|
||||||
|
5. If CL is not in the set [0123456789abcdef], go to Step 9;
|
||||||
|
|
||||||
|
6. Consume the next input character,
|
||||||
|
Let N = N + 1;
|
||||||
|
Let R = R * 16;
|
||||||
|
|
||||||
|
7. If N is in set [0123456789],
|
||||||
|
then let R = R + (N - '0')
|
||||||
|
else let R = R + (N - 'a') + 10;
|
||||||
|
|
||||||
|
8. Go to step 3;
|
||||||
|
|
||||||
|
9. Let MASK be the bitwise complement of (16**N) - 1;
|
||||||
|
|
||||||
|
10. Return decoded result R as well as MASK.
|
||||||
|
|
||||||
|
2.6.2 DUDE Decompression Algorithm
|
||||||
|
|
||||||
|
1. Let PREV = 0;
|
||||||
|
|
||||||
|
2. If there are no more input characters then terminate successfully;
|
||||||
|
|
||||||
|
3. Let C be the next input character;
|
||||||
|
|
||||||
|
4. If C == '-', append '-' to the result string, consume the character,
|
||||||
|
and go to step 2,
|
||||||
|
|
||||||
|
5. Let VPART, MASK be the next extended variable length hex decoded
|
||||||
|
value and mask;
|
||||||
|
|
||||||
|
6. If VPART > 0xFFFFF then return error status,
|
||||||
|
|
||||||
|
7. Let CU = ( PREV bitwise-AND MASK) + VPART,
|
||||||
|
Let PREV = CU;
|
||||||
|
|
||||||
|
8. Append the UTF-32 character CU to the result string;
|
||||||
|
|
||||||
|
9. Go to step 2.
|
||||||
|
|
||||||
|
|
||||||
|
2.6.3 Reverse Transformation Algorithm
|
||||||
|
|
||||||
|
1. Break the string into dot-separated components and apply Steps
|
||||||
|
2 through 4 to each component;
|
||||||
|
|
||||||
|
2. Remove the post converted name prefix 'dq--' (see Section 2.1);
|
||||||
|
|
||||||
|
3. Decompress the component using the decompression algorithm
|
||||||
|
described above (which in turn invokes the decoding algorithm
|
||||||
|
also described above);
|
||||||
|
|
||||||
|
4. Concatenate the decoded segments with dot separators and return.
|
||||||
|
|
||||||
|
3. Examples
|
||||||
|
|
||||||
|
The examples below illustrate the encoding algorithm. Allowed RFC1035
|
||||||
|
characters, including period [U+002E] and dash [U+002D] are shown as
|
||||||
|
literals in the UTF-16 version of the example. DUDE is compared to
|
||||||
|
LACE as proposed in [IDNLACE]. A comprehensive comparison of ACE
|
||||||
|
proposals is outside of the scope of this document. However we believe
|
||||||
|
that DUDE shows a good balance between efficiency (resulting in shorter
|
||||||
|
ACE sequences for typical names) and complexity.
|
||||||
|
|
||||||
|
|
||||||
|
3.1 'www.walid.com' [Arabic]:
|
||||||
|
|
||||||
|
UTF-16: U+0645 U+0648 U+0642 U+0639 . U+0648 U+0644 U+064A U+062F .
|
||||||
|
U+0634 U+0631 U+0643 U+0629
|
||||||
|
|
||||||
|
DUDE: dq--m45oij9.dq--m48kqif.dq--m34hk3i9
|
||||||
|
|
||||||
|
LACE: bq--aqdekscche.bq--aqdeqrckf5.bq--aqddimkdfe
|
||||||
|
|
||||||
|
3.2 'Abugazalah-Intellectual-Property.com' [Arabic]:
|
||||||
|
|
||||||
|
UTF-16: U+0623 U+0628 U+0648 U+063A U+0632 U+0627 U+0644 U+0629 -
|
||||||
|
U+0644 U+0644 U+0645 U+0644 U+0643 U+064A U+0629 - U+0627
|
||||||
|
U+0644 U+0641 U+0643 U+0631 U+064A U+0629 . U+0634 U+0631
|
||||||
|
U+0643 U+0629
|
||||||
|
|
||||||
|
DUDE: dq--m23ok8jaii7k4i9-m44klkjqi9-m27k4hjj1kai9.dq--m34hk3i9
|
||||||
|
|
||||||
|
LACE: bq--badcgkcihizcorbjaeac2bygircekrcdjiuqcabna4dcorcbimyuuki.
|
||||||
|
bq--aqddimkdfe
|
||||||
|
|
||||||
|
3.3 'King-Hussain.person.jr' [Arabic]
|
||||||
|
|
||||||
|
UTF-16: U+0627 U+0644 U+0645 U+0644 U+0643 - U+062D U+0633 U+064A
|
||||||
|
U+0646 . U+0634 U+062E U+0635 . U+0627 U+0644 U+0623 U+0631
|
||||||
|
U+062F U+0646
|
||||||
|
|
||||||
|
DUDE: dq--m27k4lkj-m2dj3kam.dq--m34iej5.dq--m27k4i3j1ifk6
|
||||||
|
|
||||||
|
LACE: bq--audcorcfirbqcabnaudegljtjjda.bq--amddilrv.
|
||||||
|
bq--aydcorbdgexum
|
||||||
|
|
||||||
|
3.4 'Jordanian-Dental-Center.com.jr' [Arabic]
|
||||||
|
|
||||||
|
UTF-16: U+0645 U+0631 U+0643 U+0632 - U+0627 U+0644 U+0623 U+0631 U+062F
|
||||||
|
U+0646 - U+0644 U+0644 U+0623 U+0633 U+0646 U+0627 U+0646 .
|
||||||
|
U+0634 U+0631 U+0643 U+0629 . U+0627 U+0644 U+0623 U+0631 U+062F
|
||||||
|
U+0646
|
||||||
|
|
||||||
|
DUDE: dq--m45j1k3j2-m27k4i3j1ifk6-m44ki3j3k6i7k6.dq--m34hk3i9.
|
||||||
|
dq--m27k4i3j1ifk6
|
||||||
|
|
||||||
|
LACE: bq--aqdekmkdgiaqaligaytuiizrf5dacabna4deirbdgndcorq.
|
||||||
|
bq--aqddimkdfe.bq--aydcorbdgexum
|
||||||
|
|
||||||
|
3.5 'Mahindra.com' [Hindi]:
|
||||||
|
|
||||||
|
UTF-16: U+092E U+0939 U+093F U+0928 U+094D U+0926 U+094D U+0930
|
||||||
|
U+093E . U+0935 U+094D U+092F U+093E U+092A U+093E U+0930
|
||||||
|
|
||||||
|
DUDE: dq--p2ej9vi8kdi6kdj0u.dq--p35kdifjeiajeg
|
||||||
|
|
||||||
|
LACE: bq--bees4oj7fbgsmtjqhy.bq--a4etktjphyvd4ma
|
||||||
|
|
||||||
|
3.6 'Webdunia.com' [Hindi]:
|
||||||
|
|
||||||
|
UTF-16: U+0935 U+0947 U+092C U+0926 U+0941 U+0928 U+093F U+092F
|
||||||
|
U+093E . U+0935 U+094D U+092F U+093E U+092A U+093E U+0930
|
||||||
|
|
||||||
|
DUDE: dq--p35k7icmk1i8jfifje.dq--p35kdifjeiajeg
|
||||||
|
|
||||||
|
LACE: bq--beetkrzmezasqpzphy.bq--a4etktjphyvd4ma
|
||||||
|
|
||||||
|
3.7 'Chinese Finance.com' [Traditional Chinese]
|
||||||
|
|
||||||
|
UTF-16: U+4E2D U+83EF U+8CA1 U+7D93 . c o m
|
||||||
|
|
||||||
|
DUDE: dq--ke2do3efsa1nd93.com
|
||||||
|
|
||||||
|
LACE: bq--75hc3a7prsqx3ey.com
|
||||||
|
|
||||||
|
3.8 'Chinese Readers.net' [Chinese]
|
||||||
|
|
||||||
|
UTF-16: U+842C U+7DAD U+8B80 U+8005 . U+7DB2 U+7D61
|
||||||
|
|
||||||
|
DUDE: dq--o42cndadob80g05.dq--ndb2m1
|
||||||
|
|
||||||
|
LACE: bq--76ccy7nnroaiabi.bq--aj63eyi
|
||||||
|
|
||||||
|
3.9 'Russian-Standard.com.ru' [Russian]
|
||||||
|
|
||||||
|
UTF-16: U+0440 U+0443 U+0441 U+0441 U+043A U+0438 U+0439 -
|
||||||
|
U+0441 U+0442 U+0430 U+043D U+0434 U+0430 U+0440 U+0442 .
|
||||||
|
U+043A U+043E U+043C . U+0440 U+0444
|
||||||
|
|
||||||
|
DUDE: dq--k40jhhjaop-k3ausk1ij0tkgk0i.dq--k3aus.dq--k40k
|
||||||
|
|
||||||
|
LACE: bq--a4ceaq2bie5dqoibaawqqbcbiiyd2nbqibba.bq--amcdupr4.
|
||||||
|
bq--aiceara
|
||||||
|
|
||||||
|
3.10 'Vladimir-Putin.person.ru' [Russian]
|
||||||
|
|
||||||
|
UTF-16: U+0432 U+043B U+0430 U+0434 U+0438 U+043C U+0438 U+0440 -
|
||||||
|
U+043F U+0443 U+0442 U+0438 U+043D . U+043B U+0438 U+0447
|
||||||
|
U+043D U+043E U+0441 U+0442 U+044C . U+0440 U+0444 U+0020
|
||||||
|
|
||||||
|
DUDE: dq--k32rgkosok0-k3fk3ij8t.dq--k3bok7jduk1is.dq--k40k
|
||||||
|
|
||||||
|
LACE: bq--bacdeozqgq4dyocaaeac2bieh5bueob5.
|
||||||
|
bq--bacdwochhu7ecqsm.bq--aiceara
|
||||||
|
|
||||||
|
|
||||||
|
4. Optional Case Preservation
|
||||||
|
|
||||||
|
An extension to the DUDE concept recognizes that the first
|
||||||
|
character emitted by the variable length hex encoding algorithm is
|
||||||
|
always alphabetic. We encode the case (if any) of the original Unicode
|
||||||
|
character in the case of the initial "hex" character. Because the DNS
|
||||||
|
performs case-insensitive comparisons, mixed case international domain
|
||||||
|
names behave in exactly the same way as traditional domain names.
|
||||||
|
In particular, this enables reverse lookups to return names in the
|
||||||
|
preferred case.
|
||||||
|
|
||||||
|
In contrast to other proposals as of this writing, such a case preserving
|
||||||
|
version of DUDE will interoperate with the non case preserving version.
|
||||||
|
|
||||||
|
Despite the foregoing, we feel that the additional complexity of tracking
|
||||||
|
character case through the nameprep processing is not warranted by the
|
||||||
|
marginal utility of the result.
|
||||||
|
|
||||||
|
5. Security Considerations
|
||||||
|
|
||||||
|
Much of the security of the Internet relies on the DNS and any
|
||||||
|
change to the characteristics of the DNS may change the security of
|
||||||
|
much of the Internet. Therefore DUDE makes no changes to the DNS itself.
|
||||||
|
|
||||||
|
DUDE is designed so that distinct Unicode sequences map to distinct
|
||||||
|
domain name sequences (modulo the Unicode and DNS equivalence rules).
|
||||||
|
Therefore use of DUDE with DNS will not negatively affect security below
|
||||||
|
the application level.
|
||||||
|
|
||||||
|
If an application has security reliance on the Unicode string S, produced
|
||||||
|
by an inverse ACE transformation of a name T, the application must verify
|
||||||
|
that the nameprepped and ACE encoded result of S is DNS-equivalent to T.
|
||||||
|
|
||||||
|
6. Change History
|
||||||
|
|
||||||
|
The statement that we intended to submit a Nameprep draft was removed in
|
||||||
|
light of the changes made between the frist and second nameprep drafts.
|
||||||
|
|
||||||
|
The details of DUDE extensions for case preservation etc. have been
|
||||||
|
removed. Basic DUDE was changed to operate over the relevant 20 bit
|
||||||
|
UTF32 code points.
|
||||||
|
|
||||||
|
Examples have been extended.
|
||||||
|
|
||||||
|
ACE security issues were clarified.
|
||||||
|
|
||||||
|
7. References
|
||||||
|
|
||||||
|
[IDNCOMP] Paul Hoffman, "Comparison of Internationalized Domain Name
|
||||||
|
Proposals", draft-ietf-idn-compare;
|
||||||
|
|
||||||
|
[IDNrACE] Paul Hoffman, "RACE: Row-Based ASCII Compatible Encoding for
|
||||||
|
IDN", draft-ietf-idn-race;
|
||||||
|
|
||||||
|
[IDNLACE] Mark Davis, "LACE: Length-Based ASCII Compatible Encoding for
|
||||||
|
IDN", draft-ietf-idn-lace;
|
||||||
|
|
||||||
|
[IDNREQ] James Seng, "Requirements of Internationalized Domain Names",
|
||||||
|
draft-ietf-idn-requirement;
|
||||||
|
|
||||||
|
[IDNNAMEPREP] Paul Hoffman and Marc Blanchet, "Preparation of
|
||||||
|
Internationalized Host Names", draft-ietf-idn-nameprep;
|
||||||
|
|
||||||
|
[IDNDUERST] M. Duerst, "Internationalization of Domain Names",
|
||||||
|
draft-duerst-dns-i18n;
|
||||||
|
|
||||||
|
[ISO10646] ISO/IEC 10646-1:1993. International Standard -- Information
|
||||||
|
technology -- Universal Multiple-Octet Coded Character Set (UCS) --
|
||||||
|
Part 1: Architecture and Basic Multilingual Plane. Five amendments and
|
||||||
|
a technical corrigendum have been published up to now. UTF-16 is
|
||||||
|
described in Annex Q, published as Amendment 1. 17 other amendments are
|
||||||
|
currently at various stages of standardization;
|
||||||
|
|
||||||
|
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
|
||||||
|
Requirement Levels", March 1997, RFC 2119;
|
||||||
|
|
||||||
|
[STD13] Paul Mockapetris, "Domain names - implementation and
|
||||||
|
specification", November 1987, STD 13 (RFC 1035);
|
||||||
|
|
||||||
|
[UNICODE3] 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>.
|
||||||
|
|
||||||
|
|
||||||
|
A. Acknowledgements
|
||||||
|
|
||||||
|
The structure (and some of the structural text) of this document is
|
||||||
|
intentionally borrowed from the LACE IDN draft (draft-ietf-idn-lace-00)
|
||||||
|
by Mark Davis and Paul Hoffman.
|
||||||
|
|
||||||
|
B. IANA Considerations
|
||||||
|
|
||||||
|
There are no IANA considerations in this document.
|
||||||
|
|
||||||
|
|
||||||
|
C. Author Contact Information
|
||||||
|
|
||||||
|
Mark Welter
|
||||||
|
Brian W. Spolarich
|
||||||
|
WALID, Inc.
|
||||||
|
State Technology Park
|
||||||
|
2245 S. State St.
|
||||||
|
Ann Arbor, MI 48104
|
||||||
|
+1-734-822-2020
|
||||||
|
|
||||||
|
mwelter@walid.com
|
||||||
|
briansp@walid.com
|
||||||
|
|
||||||
|
D. DUDE C++ Implementation
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
#define IDN_ERROR INT_MIN
|
||||||
|
|
||||||
|
#define DUDETAG "dq--"
|
||||||
|
|
||||||
|
typedef unsigned int uchar_t;
|
||||||
|
|
||||||
|
bool idn_isRFC1035(const uchar_t * in, int len)
|
||||||
|
{
|
||||||
|
const uchar_t * end = in + len;
|
||||||
|
|
||||||
|
while (in < end)
|
||||||
|
{
|
||||||
|
if ((*in > 127) ||
|
||||||
|
!strchr("abcdefghijklmnopqrstuvwxyz0123456789-.", tolower(*in)))
|
||||||
|
return false;
|
||||||
|
in++;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *hexchar = "0123456789abcdef";
|
||||||
|
static const char *leadchar = "ghijklmnopqrstuv";
|
||||||
|
|
||||||
|
/*
|
||||||
|
dudehex -- convert an integer, v, into n DUDE hex characters.
|
||||||
|
The result is placed in ostr. The buffer ends at the byte before
|
||||||
|
eop, and false is returned to indicate insufficient buffer space.
|
||||||
|
*/
|
||||||
|
static bool dudehex(char * & ostr, const char * eop,
|
||||||
|
unsigned int v, int n)
|
||||||
|
{
|
||||||
|
if ((ostr + n) >= eop)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
n--; // convert to zero origin
|
||||||
|
|
||||||
|
*ostr++ = leadchar[(v >> (n << 2)) & 0x0F];
|
||||||
|
|
||||||
|
while (n > 0)
|
||||||
|
{
|
||||||
|
n--;
|
||||||
|
*ostr++ = hexchar[(v >> (n << 2)) & 0x0F];
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
idn_dudeseg converts istr, a utf-32 domain name segment into DUDE.
|
||||||
|
eip points at the character after the input segment.
|
||||||
|
ostr points at an output buffer which ends just before eop.
|
||||||
|
If there is insufficient buffer space, the function return is false.
|
||||||
|
Invalid surrogate sequences will also cause a return of false.
|
||||||
|
*/
|
||||||
|
static bool idn_dudeseg(const uchar_t * istr, const uchar_t * eip,
|
||||||
|
char * & ostr, char * eop)
|
||||||
|
{
|
||||||
|
const uchar_t * ip = istr;
|
||||||
|
unsigned p = 0;
|
||||||
|
|
||||||
|
while (ip < eip)
|
||||||
|
{
|
||||||
|
if (*ip == '-')
|
||||||
|
*ostr++ = *ip;
|
||||||
|
else // if (validnc(*ip))
|
||||||
|
{
|
||||||
|
unsigned int c = *ip;
|
||||||
|
|
||||||
|
unsigned d = p ^ c; // d now has the difference (xor)
|
||||||
|
// between the current and previous char
|
||||||
|
|
||||||
|
int n = 1; // Count the number of significant nibbles
|
||||||
|
while (d >>= 4)
|
||||||
|
n++;
|
||||||
|
|
||||||
|
dudehex(ostr, eop, c, n);
|
||||||
|
p = c;
|
||||||
|
}
|
||||||
|
ip++;
|
||||||
|
}
|
||||||
|
*ostr = 0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
idn_UTF32toDUDE converts a UTF-32 domain name into DUDE.
|
||||||
|
in, a UTF-32 vector of length inlen is the input domain name.
|
||||||
|
outstr is a char output buffer of length outmax.
|
||||||
|
On success, the number of output characters is returned.
|
||||||
|
On failure, a negative number is returned.
|
||||||
|
|
||||||
|
It is assumed that the input has been nameprepped.
|
||||||
|
|
||||||
|
If this routine is used in a registration context, segment and
|
||||||
|
overall length restrictions must be checked by the user.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int idn_UTF32toDUDE(const uchar_t * in, int inlen, char *outstr, int outmax)
|
||||||
|
{
|
||||||
|
const uchar_t *ip = in;
|
||||||
|
const uchar_t *eip = in + inlen;
|
||||||
|
const uchar_t *ep = ip;
|
||||||
|
char *op = outstr;
|
||||||
|
char *eop = outstr + outmax - 1;
|
||||||
|
|
||||||
|
while (ip < eip)
|
||||||
|
{
|
||||||
|
ep = ip;
|
||||||
|
while ((ep < eip) && (*ep != '.'))
|
||||||
|
ep++;
|
||||||
|
|
||||||
|
const char * tagp = DUDETAG; // prefix the segment
|
||||||
|
while (*tagp) // with the tag (dq--)
|
||||||
|
{
|
||||||
|
if (op >= eop)
|
||||||
|
{
|
||||||
|
*outstr = '\0';
|
||||||
|
return IDN_ERROR;
|
||||||
|
}
|
||||||
|
*op++ = *tagp++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (idn_isRFC1035(ip, ep - ip))
|
||||||
|
{
|
||||||
|
if ((ep - ip) >= (eop - op))
|
||||||
|
{
|
||||||
|
*outstr = '\0';
|
||||||
|
return IDN_ERROR;
|
||||||
|
}
|
||||||
|
while (ip < ep)
|
||||||
|
*op++ = *ip++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!idn_dudeseg(ip, ep, op, eop))
|
||||||
|
{
|
||||||
|
*outstr = '\0';
|
||||||
|
return IDN_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (op >= eop) // check for output buffer overflow
|
||||||
|
{
|
||||||
|
*outstr = '\0';
|
||||||
|
return IDN_ERROR;
|
||||||
|
}
|
||||||
|
if (ep < eip)
|
||||||
|
*op++ = *ep; // copy '.'
|
||||||
|
|
||||||
|
ip = ep + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*op = '\0';
|
||||||
|
|
||||||
|
return (op - outstr) - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
idn_DUDEsegtoUTF32 converts instr, DUDE encoded domain name segment
|
||||||
|
into UTF32.
|
||||||
|
eip points at the character after the input segment.
|
||||||
|
ostr points at an output buffer which ends just before eop.
|
||||||
|
If there is insufficient buffer space, the function return is false.
|
||||||
|
*/
|
||||||
|
static int idn_DUDEsegtoUTF32(const char * instr, int inlen,
|
||||||
|
uchar_t * outstr, int maxlen)
|
||||||
|
{
|
||||||
|
const char * ip = instr;
|
||||||
|
const char * eip = instr + inlen;
|
||||||
|
uchar_t * op = outstr;
|
||||||
|
uchar_t * eop = op + maxlen - 1;
|
||||||
|
|
||||||
|
unsigned prev = 0;
|
||||||
|
|
||||||
|
while (ip < eip)
|
||||||
|
{
|
||||||
|
if (*ip == '-')
|
||||||
|
*op++ = '-';
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char c0 = tolower(*ip);
|
||||||
|
if ((c0 < 'g') || (c0 > 'v'))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ip++;
|
||||||
|
|
||||||
|
unsigned r = c0 - 'g';
|
||||||
|
int n = 1;
|
||||||
|
while (ip < eip)
|
||||||
|
{
|
||||||
|
char cl = tolower(*ip);
|
||||||
|
if ((cl >= '0') && (cl <= '9'))
|
||||||
|
{
|
||||||
|
r <<= 4;
|
||||||
|
r += cl - '0';
|
||||||
|
}
|
||||||
|
else if ((cl >= 'a') && (cl <= 'f'))
|
||||||
|
{
|
||||||
|
r <<= 4;
|
||||||
|
r += (cl - 'a') + 10;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
|
||||||
|
ip++;
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r >= 0x0fffff)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
unsigned mask = -1 << (n << 2);
|
||||||
|
|
||||||
|
unsigned cu = (prev & mask) + r;
|
||||||
|
prev = cu;
|
||||||
|
|
||||||
|
if (op >= eop)
|
||||||
|
return IDN_ERROR;
|
||||||
|
*op++ = cu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*op = '\0';
|
||||||
|
return (op - outstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
int idn_DUDEtoUTF32(const char * in, int inlen, uchar_t * outstr, int outmax)
|
||||||
|
{
|
||||||
|
const char *ip = in;
|
||||||
|
const char *eip = in + inlen;
|
||||||
|
const char *ep = ip;
|
||||||
|
uchar_t *op = outstr;
|
||||||
|
uchar_t *eop = outstr + outmax - 1;
|
||||||
|
|
||||||
|
while (ip < eip)
|
||||||
|
{
|
||||||
|
ep = ip;
|
||||||
|
while ((ep < eip) && (*ep != L'.'))
|
||||||
|
ep++;
|
||||||
|
|
||||||
|
const char * tip = ip;
|
||||||
|
const char * tagp = DUDETAG;
|
||||||
|
while (*tagp && (tip < ep) && (tolower(*tagp) == tolower(*tip)))
|
||||||
|
{
|
||||||
|
tip++;
|
||||||
|
tagp++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*tagp)
|
||||||
|
{ // tag doesn't match, copy segment verbatim
|
||||||
|
while (ip < ep)
|
||||||
|
{
|
||||||
|
if (op >= eop)
|
||||||
|
return IDN_ERROR;
|
||||||
|
*op++ = *ip++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ip = tip;
|
||||||
|
int rv = idn_DUDEsegtoUTF32(ip, ep - ip, op, eop - op);
|
||||||
|
|
||||||
|
if (rv < 0)
|
||||||
|
return IDN_ERROR;
|
||||||
|
|
||||||
|
op += rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
*op++ = *ep;
|
||||||
|
|
||||||
|
if (!*ep)
|
||||||
|
break;
|
||||||
|
|
||||||
|
ip = ep + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (op >= eop)
|
||||||
|
return IDN_ERROR;
|
||||||
|
|
||||||
|
*op = '\0';
|
||||||
|
|
||||||
|
return (op - outstr) - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
DUDE test driver
|
||||||
|
*/
|
||||||
|
|
||||||
|
void printres(char *title, int rv, char *buff);
|
||||||
|
void printres(char *title, int rv, uchar_t *buff);
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
char inbuff[512];
|
||||||
|
|
||||||
|
while (fgets(inbuff, sizeof(inbuff), stdin))
|
||||||
|
{
|
||||||
|
char cbuff[128];
|
||||||
|
uchar_t wbuff[128];
|
||||||
|
uchar_t iwbuff[128];
|
||||||
|
uchar_t *wsp = wbuff;
|
||||||
|
uchar_t wc;
|
||||||
|
int in;
|
||||||
|
int nr;
|
||||||
|
|
||||||
|
char * inp = inbuff;
|
||||||
|
wsp = wbuff;
|
||||||
|
while (sscanf(inp, "%x%n", &in, &nr) > 0)
|
||||||
|
{
|
||||||
|
inp += nr;
|
||||||
|
*wsp++ = in;
|
||||||
|
}
|
||||||
|
fprintf(stdout, "\n");
|
||||||
|
|
||||||
|
int rv;
|
||||||
|
rv = idn_UTF32toDUDE(wbuff, wsp - wbuff, cbuff, sizeof(cbuff));
|
||||||
|
printres("toDUDE", rv, cbuff);
|
||||||
|
|
||||||
|
if (rv >= 0)
|
||||||
|
{
|
||||||
|
rv = idn_DUDEtoUTF32(cbuff, rv, iwbuff, sizeof(iwbuff));
|
||||||
|
printres("toUTF32", rv, iwbuff);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void printres(char *title, int rv, char *buff)
|
||||||
|
{
|
||||||
|
fprintf(stdout, "%s (%d) : ", title, rv);
|
||||||
|
if (rv >= 0)
|
||||||
|
{
|
||||||
|
unsigned char *dp = (unsigned char *) buff;
|
||||||
|
while (*dp)
|
||||||
|
{
|
||||||
|
fprintf(stdout, "%c", *dp++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf(stdout, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void printres(char *title, int rv, uchar_t *buff)
|
||||||
|
{
|
||||||
|
fprintf(stdout, "%s (%d) : ", title, rv);
|
||||||
|
if (rv >= 0)
|
||||||
|
{
|
||||||
|
uchar_t *dp = buff;
|
||||||
|
while (*dp)
|
||||||
|
{
|
||||||
|
fprintf(stdout, " %05x", *dp++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf(stdout, "\n");
|
||||||
|
}
|
@@ -1,514 +0,0 @@
|
|||||||
IETF IDN Working Group Seungik Lee, Hyewon Shin, Dongman Lee
|
|
||||||
Internet Draft ICU
|
|
||||||
draft-ietf-idn-icu-00.txt Eunyong Park, Sungil Kim
|
|
||||||
Expires: 14 January 2001 KKU, Netpia.com
|
|
||||||
14 July 2000
|
|
||||||
|
|
||||||
Architecture of Internationalized Domain Name System
|
|
||||||
|
|
||||||
Status of this Memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with
|
|
||||||
all provisions of Section 10 of RFC2026.
|
|
||||||
|
|
||||||
Internet-Drafts are working documents of the Internet Engineering
|
|
||||||
Task Force (IETF), its areas, and its working groups. Note that other
|
|
||||||
groups may also distribute working documents as Internet-Drafts.
|
|
||||||
|
|
||||||
Internet-Drafts are draft documents valid for a maximum of six months
|
|
||||||
and may be updated, replaced, or obsoleted by other documents at any
|
|
||||||
time. It is inappropriate to use Internet-Drafts as reference
|
|
||||||
material or to cite them other than as "work in progress."
|
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
|
||||||
http://www.ietf.org/shadow.html.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1. Abstract
|
|
||||||
|
|
||||||
For restrict use of Domain Name System (DNS) for domain names with
|
|
||||||
alphanumeric characters only, there needs a way to find an Internet
|
|
||||||
host using multi-lingual domain names: Internationalized Domain Name
|
|
||||||
System (IDNS).
|
|
||||||
|
|
||||||
This document describes how multi-lingual domain names are handled in
|
|
||||||
a new protocol scheme for IDNS servers and resolvers in architectural
|
|
||||||
view and it updates the [RFC1035] but still preserves the backward
|
|
||||||
compatibility with the current DNS protocol.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2. Conventions used in this document
|
|
||||||
|
|
||||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
||||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
|
||||||
document are to be interpreted as described in [RFC2119].
|
|
||||||
|
|
||||||
"IDNS" (Internationalized Domain Name System) is used here to
|
|
||||||
indicate a new system designed for a domain name service, which
|
|
||||||
supports multi-lingual domain names.
|
|
||||||
|
|
||||||
"The current/conventional DNS" or "DNS" (Domain Name System) is used
|
|
||||||
here to indicate the domain name systems currently in use. It
|
|
||||||
fulfills the [RFC1034, RFC1035], but implementations and functional
|
|
||||||
operations may be different from each other.
|
|
||||||
|
|
||||||
The "alphanumeric" character data used here is the character set that
|
|
||||||
is allowed for a domain name in DNS query format, [a-zA-Z0-9-].
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3. Introduction
|
|
||||||
|
|
||||||
Domain Name System (DNS) has eliminated the difficulty of remembering
|
|
||||||
the IP addresses. As the Internet becomes spread over all the people,
|
|
||||||
the likelihood that the people who are not familiar with alphanumeric
|
|
||||||
characters use the Internet increases. The domain names in
|
|
||||||
alphanumeric characters are difficult to remember or use for the
|
|
||||||
people who is not educated English. Therefore, it needs a way to find
|
|
||||||
an Internet host using multi-lingual domain name: Internationalized
|
|
||||||
Domain Name System.
|
|
||||||
|
|
||||||
|
|
||||||
3.1 The current issues of IDNS
|
|
||||||
|
|
||||||
IDNS maps a name to an IP address as the typical DNS does, but it
|
|
||||||
allows domain names to contain multi-lingual characters. The multi-
|
|
||||||
lingual characters need to be encoded/decoded into one standardized
|
|
||||||
format, and it needs changes in the conventional DNS protocol
|
|
||||||
described in [RFC1034] and [RFC1035]. But it is required to minimize
|
|
||||||
the changes in the present DNS protocol so that it guarantees the
|
|
||||||
backward compatibility.
|
|
||||||
|
|
||||||
The IDNS issues have been discussed in IETF IDN Working Group. These
|
|
||||||
issues are well described in [IDN-REQ]. The main issues are:
|
|
||||||
|
|
||||||
- Compatibility and interoperability. The DNS protocol is in use
|
|
||||||
widely in the Internet. Although a new protocol is introduced for DNS,
|
|
||||||
the current protocol may be used with no changes. Therefore, a new
|
|
||||||
design for DNS protocol, IDNS must provide backward compatibility and
|
|
||||||
interoperability with the current DNS.
|
|
||||||
|
|
||||||
- Internationalization. IDNS is on the purpose of using multi-lingual
|
|
||||||
domain names. The international character data must be represented by
|
|
||||||
one standardized format in domain names.
|
|
||||||
|
|
||||||
- Canonicalization. DNS indexes and matches domain names to look up a
|
|
||||||
domain name from zone data. In the conventional DNS, canonicalization
|
|
||||||
is subjected to US-ASCII only. However, every multi-lingual character
|
|
||||||
data must be canonicalized in its own rules for a DNS standardized
|
|
||||||
matching policy, e.g. case-insensitive matching rule.
|
|
||||||
|
|
||||||
- Operational issues. IDNS uses international character data for
|
|
||||||
domain names. Normalization and canonicalization of domain names are
|
|
||||||
needed in addition to the current DNS operations. IDNS also needs an
|
|
||||||
operation for interoperability with the current DNS. Therefore, it is
|
|
||||||
needed to specify the operational guidelines for IDNS.
|
|
||||||
|
|
||||||
|
|
||||||
3.2 Overview of the proposed scheme
|
|
||||||
|
|
||||||
Our proposed scheme for IDNS is also subjected on the issues
|
|
||||||
described earlier to fulfill the requirements of IDN [IDN-REQ].
|
|
||||||
|
|
||||||
The proposed scheme can be summarized as following:
|
|
||||||
|
|
||||||
- The IN bit, which is reserved and currently unused in the DNS
|
|
||||||
query/response format header, is used to distinguish between the
|
|
||||||
queries generated by IDNS servers or resolvers and those of non-IDNS
|
|
||||||
ones [Oscarsson]. This mechanism is also needed to indicate whether
|
|
||||||
the query is generated by the appropriate IDNS operations for
|
|
||||||
canonicalization and normalization or not.
|
|
||||||
|
|
||||||
- The multi-lingual domain names are encoded into UTF-8 as a wire
|
|
||||||
format. UTF-8 is recommended as a default character encoding scheme
|
|
||||||
(CES) in the creation of new protocols which transmit text in
|
|
||||||
[RFC2130]. This scheme allows the IDNS server to handle the DNS query
|
|
||||||
from non-IDNS servers or resolvers because the ASCII code has no
|
|
||||||
changes in UTF-8.
|
|
||||||
|
|
||||||
- The UTF-8 domain names must be case-folded before transmission. It
|
|
||||||
minimizes the overhead on server's operations of matching names in
|
|
||||||
case-insensitive. It also guarantees that the result of caching
|
|
||||||
queries can be used without any further normalization and
|
|
||||||
canonicalization. If IDNS server gets non-IDNS query that is not
|
|
||||||
case-folded, it case-folds the query before transmitting to another
|
|
||||||
servers.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
4. Design considerations
|
|
||||||
|
|
||||||
Our proposed scheme is designed to fulfill the requirements of IETF
|
|
||||||
IDN WG [IDN-REQ]. All the methods for IDNS schemes must be approved
|
|
||||||
by the requirements documents. The design described in this document
|
|
||||||
is based on these requirements.
|
|
||||||
|
|
||||||
|
|
||||||
4.1 Protocol Extensions
|
|
||||||
|
|
||||||
To indicate an IDNS query format, we use an unallocated bit in the
|
|
||||||
current DNS query format header, named 'IN' bit [Oscarsson]. All IDNS
|
|
||||||
queries are set IN bit to 1. Without this bit set to 1, we cannot
|
|
||||||
guarantee that the query is in the appropriate format for IDNS.
|
|
||||||
|
|
||||||
'IN' bit is to indicate whether the query is from IDNS
|
|
||||||
resolvers/servers or not. It also reduces overhead on canonicalizing
|
|
||||||
operation at IDNS server. It will be described further in <4.4.
|
|
||||||
Canonicalization>.
|
|
||||||
|
|
||||||
We devise new operations and new structures of resolvers and name
|
|
||||||
servers to add the multi-lingual domain name handling features into
|
|
||||||
the DNS. This causes changes of all DNS servers and resolvers to use
|
|
||||||
multi-lingual domain names. The new architectures for resolvers and
|
|
||||||
servers will be described in <5. Architectures>
|
|
||||||
|
|
||||||
|
|
||||||
4.2 Compatibility and interoperability
|
|
||||||
|
|
||||||
The 'IN' bit is valid bit location of query for the conventional DNS
|
|
||||||
protocol to be set to zero [RFC1035]. And operations and structures
|
|
||||||
of IDNS preserve the conventional rules of DNS to guarantee the
|
|
||||||
interoperability with the conventional DNS servers or resolvers so
|
|
||||||
that the changes are optional. These make this scheme for IDNS
|
|
||||||
compatible with the current protocol.
|
|
||||||
|
|
||||||
Although the current DNS protocol uses 7-bit ASCII characters only,
|
|
||||||
the query format of the current DNS protocol set is 8 bit-clean.
|
|
||||||
Therefore, we can guarantee the backward compatibility and
|
|
||||||
interoperability with the current DNS using UTF-8 code because the
|
|
||||||
ASCII code is preserved with no changes in UTF-8.
|
|
||||||
|
|
||||||
Note: There are also in use implementations that are compatible with
|
|
||||||
the current DNS but extend their operations to use UTF-8 domain names.
|
|
||||||
The IDNS described here interoperates well with these implementations.
|
|
||||||
The interoperability with these implementations will be described in
|
|
||||||
<5.4 Interoperability with the current DNS>.
|
|
||||||
|
|
||||||
|
|
||||||
4.3 Internationalization
|
|
||||||
|
|
||||||
All international character data must be represented in one
|
|
||||||
standardized format and the standardized format must be compatible
|
|
||||||
with the current ASCII-based protocols. Therefore, the coded
|
|
||||||
character set (CCS) for IDNS protocol must be Unicode [Unicode], and
|
|
||||||
be encoded using the UTF-8 [RFC2279] character encoding scheme (CES).
|
|
||||||
|
|
||||||
The client-side interface may allow the domain names encoded in any
|
|
||||||
local character sets, Unicode, ASCII and so on. But they must be
|
|
||||||
encoded into Unicode before being used in IDNS resolver. The IDNS
|
|
||||||
resolver accepts Unicode character data only, and converts it to UTF-
|
|
||||||
8 finally for transmission.
|
|
||||||
|
|
||||||
|
|
||||||
4.4 Canonicalization
|
|
||||||
|
|
||||||
In the current DNS protocol, the domain names are matched in case-
|
|
||||||
insensitive. Therefore, the domain names in a query and zone file
|
|
||||||
must be case-folded before equivalence test.
|
|
||||||
|
|
||||||
The case-folding issue has been discussed for a long time in IETF IDN
|
|
||||||
WG. The main problem is for case folding in locale-dependent. Some
|
|
||||||
different local characters are overlapped within case-folded format.
|
|
||||||
For example, Latin capital letter I (U+0049) case-folded to lower
|
|
||||||
case in the Turkish context will become Latin small letter dotless i
|
|
||||||
(U+0131). But in the English context, it will become Latin small
|
|
||||||
letter i (U+0069)
|
|
||||||
|
|
||||||
Therefore, we case-fold the domain names in locale-independent in our
|
|
||||||
new IDNS design with a method defined in [UTR21].
|
|
||||||
|
|
||||||
Multi-lingual domain names should be case-folded in IDNS resolvers or
|
|
||||||
IDNS servers before transmitting to other IDNS/DNS servers. That is,
|
|
||||||
IDNS resolver should case-fold the domain name and converts it to
|
|
||||||
UTF-8 before transmission. In case of IDNS server, if it gets a query
|
|
||||||
with IN bit set to 1, then it needs not to make the multi-lingual
|
|
||||||
domain name canonicalized anymore. If the IDNS server gets a query
|
|
||||||
with IN bit set to 0, then it cannot determine the query is
|
|
||||||
appropriate canonicalized format for IDNS server, so that it case-
|
|
||||||
folds that multi-lingual domain name in the query, and set 'IN' bit
|
|
||||||
to 1.
|
|
||||||
|
|
||||||
The current DNS queries contain the original case of domain names to
|
|
||||||
preserve the original cases. To be consistent with this rule, all
|
|
||||||
case-folded multi-lingual domain names should be stored by IDNS
|
|
||||||
resolvers or servers before case-folding, and should be restored
|
|
||||||
before sending response.
|
|
||||||
|
|
||||||
In the case of case-folding UTF-8 code, using the case-folding method
|
|
||||||
in [UTR21], the UTF-8 should be converted to Unicode and it must be
|
|
||||||
mapped to the mapping table finally. Of course that if we could make
|
|
||||||
a case-folding mapping table of UTF-8 character data, this overhead
|
|
||||||
could be reduced.
|
|
||||||
|
|
||||||
However it cannot avoid an overhead in IDNS servers for
|
|
||||||
canonicalization, because the canonicalization of international
|
|
||||||
character data is complicated.
|
|
||||||
|
|
||||||
To minimize this overhead, we use 'IN' bit to indicate that the
|
|
||||||
canonicalization for the query has been already handled. That means
|
|
||||||
it needs not canonicalization operation anymore. The detailed
|
|
||||||
operations according to the 'IN' bit are described later in <5.
|
|
||||||
Architectures>.
|
|
||||||
|
|
||||||
With international character data, the canonicalization (e.g. case-
|
|
||||||
folding) is much more complicated than the one with US-ASCII, and is
|
|
||||||
different from each other's by their locale contexts.
|
|
||||||
|
|
||||||
But this document doesn't specify any method or recommendation more
|
|
||||||
than case-folding. For canonicalization of international character
|
|
||||||
data, [UTR15] is a good start. It must be discussed further and
|
|
||||||
specified in the IDNS protocol specification.
|
|
||||||
|
|
||||||
|
|
||||||
4.5 Operational issues
|
|
||||||
|
|
||||||
In the current DNS scheme, it uses only ASCII code for a wire format.
|
|
||||||
But our new IDNS scheme uses UTF-8 code for a wire format. All the
|
|
||||||
IDNS resolvers must transmit queries encoded in UTF-8 and case-folded.
|
|
||||||
This format can be guaranteed by checking the IN bit: if IN bit is
|
|
||||||
set to 1, the query is encoded in UTF-8 and case-folded. Otherwise
|
|
||||||
the IDNS server cannot assure that the query is encoded in UTF-8 and
|
|
||||||
case-folded. Therefore it needs additional operations for encoding to
|
|
||||||
UTF-8 and case-folding, etc in this case.
|
|
||||||
|
|
||||||
The current DNS resolvers transmit the queries in ASCII code. But
|
|
||||||
it's not considerable in IDNS servers because the ASCII code is
|
|
||||||
preserved with no changes in UTF-8.
|
|
||||||
|
|
||||||
Some applications and resolvers transmit the queries in UTF-8
|
|
||||||
although they don't fit on the new IDNS resolvers' structures, e.g.
|
|
||||||
Microsoft's DNS servers. We cannot guarantee that those queries are
|
|
||||||
case-folded correctly. Therefore, the IDNS servers should convert
|
|
||||||
them to appropriate IDNS queries instead of the IDNS resolver in that
|
|
||||||
case.
|
|
||||||
|
|
||||||
All detailed operations of IDNS servers and resolvers are described
|
|
||||||
in <5. Architectures>.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
5. Architectures
|
|
||||||
|
|
||||||
|
|
||||||
5.1 New header format
|
|
||||||
|
|
||||||
A new IDNS servers and resolvers must interoperate with the ones of
|
|
||||||
current DNS. Therefore, we need a way to determine whether the query
|
|
||||||
is for IDN or not. For this reason, we use a new header format as
|
|
||||||
proposed in [Oscarsson].
|
|
||||||
|
|
||||||
1 1 1 1 1 1
|
|
||||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
|
||||||
| ID |
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
|
||||||
|QR| Opcode |AA|TC|RD|RA|IN|AD|CD| RCODE |
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
|
||||||
| QDCOUNT |
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
|
||||||
| ANCOUNT |
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
|
||||||
| NSCOUNT |
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
|
||||||
| ARCOUNT |
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
|
||||||
|
|
||||||
|
|
||||||
The IDNS resolvers and servers identify themselves in a query or a
|
|
||||||
response by setting the 'IN' bit to 1 in the DNS query/response
|
|
||||||
format header. This bit is defined to be zero by default in the
|
|
||||||
current DNS servers and resolvers.
|
|
||||||
|
|
||||||
|
|
||||||
5.2 Structures of IDNS resolvers
|
|
||||||
|
|
||||||
To use multi-lingual domain names with IDNS servers, all the IDNS/DNS
|
|
||||||
resolvers must generate the query in a format of UTF-8 or ASCII. The
|
|
||||||
design of a resolver could be different with each other according to
|
|
||||||
the local operating systems or applications. We propose new design
|
|
||||||
guidelines of a resolver for a new standardization.
|
|
||||||
|
|
||||||
The IDNS resolver accepts Unicode from user interface for domain
|
|
||||||
names. The other character sets should be rejected. It encodes all
|
|
||||||
such character data into UTF-8 for transmission to name servers.
|
|
||||||
|
|
||||||
The procedures of the operation of an IDNS resolver are below:
|
|
||||||
|
|
||||||
<1>. If the resolver gets a domain name in Unicode or ASCII then it
|
|
||||||
stores the original domain name query. Otherwise the request for
|
|
||||||
lookup is rejected. In the current DNS protocol, the original case of
|
|
||||||
the domain name should be preserved. Therefore, the resolver must
|
|
||||||
store the original cases of the domain names before canonicalization
|
|
||||||
(e.g. case-folding).
|
|
||||||
|
|
||||||
<2>. Make the domain name case-folded with locale-independent case-
|
|
||||||
mapping table defined in [UTR21].
|
|
||||||
|
|
||||||
<3>. Convert it to UTF-8.
|
|
||||||
|
|
||||||
<4>. Set IN bit to 1. It indicates the query is from IDNS resolver
|
|
||||||
and the format is UTF-8, case-folded.
|
|
||||||
|
|
||||||
<5>. Send request query to name servers.
|
|
||||||
|
|
||||||
<6>. Restore the original domain name query into the response query
|
|
||||||
format.
|
|
||||||
|
|
||||||
<7>. Send response to the application.
|
|
||||||
|
|
||||||
|
|
||||||
5.3 Structures of IDNS servers
|
|
||||||
|
|
||||||
The operation of IDNS server is similar to the current one of DNS
|
|
||||||
server, but the IDNS server accepts UTF-8 queries and converts them
|
|
||||||
to the appropriate formats additionally.
|
|
||||||
|
|
||||||
The IDNS server distinguishes between the IDNS queries and DNS
|
|
||||||
queries by checking IN bit in the query/response format header.
|
|
||||||
According to the 'IN' bit, it operates differently.
|
|
||||||
|
|
||||||
The procedures of the operation of an IDNS server are below:
|
|
||||||
|
|
||||||
<1>. If the IN bit in the query/response format header is set to 1
|
|
||||||
then it matches the domain name within zone file data or forwards
|
|
||||||
request query to resolve. It operates as same as the operations of
|
|
||||||
the current DNS servers but retrieves UTF-8 code. In this case, it
|
|
||||||
needs not to make domain name canonicalized because the domain name
|
|
||||||
is already canonicalized in the previous procedures of IDNS resolvers
|
|
||||||
or IDNS servers. Go to step <7>.
|
|
||||||
|
|
||||||
<2>. Set IN bit to 1.
|
|
||||||
|
|
||||||
<3>. Store the original domain name query.
|
|
||||||
|
|
||||||
<4>. Make the domain name case-folded with locale-independent case-
|
|
||||||
mapping table defined in [UTR21].
|
|
||||||
|
|
||||||
<5>. Match the domain name within zone file data or send request
|
|
||||||
query to lookup.
|
|
||||||
|
|
||||||
<6>. Restore the original domain name query into the response query
|
|
||||||
format.
|
|
||||||
|
|
||||||
<7>. Send response for the query to the resolver or the other server
|
|
||||||
requested.
|
|
||||||
|
|
||||||
|
|
||||||
5.4 Interoperability with the current DNS
|
|
||||||
|
|
||||||
The DNS servers and resolvers accept domain names in ASCII only. But
|
|
||||||
IDNS servers and resolvers accept domain names in UTF-8. Therefore,
|
|
||||||
the queries from DNS ones to IDNS ones can be well handled because
|
|
||||||
the UTF-8 is a superset of ASCII code. But the queries from IDNS ones
|
|
||||||
to DNS ones will be rejected because the UTF-8 code is beyond the
|
|
||||||
range of ASCII code.
|
|
||||||
|
|
||||||
Note: There are some implementations which can handle UTF-8 domain
|
|
||||||
names although they don't fit on this specification of IDNS and fully
|
|
||||||
implemented with DNS protocol specification, e.g. Microsoft's DNS
|
|
||||||
server and resolvers. In this case, we cannot guarantee that the
|
|
||||||
queries from these 3rd-party implementations are encoded into UTF-8
|
|
||||||
and well canonicalized. But this queries are set 'IN' bit to 0, so
|
|
||||||
that the IDNS evaluates whether the domain name is the range of UTF-8
|
|
||||||
or not, and converts it into UTF-8 and makes it canonicalized finally.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
6. Security Considerations
|
|
||||||
|
|
||||||
This architecture of IDNS uses 8bit-clean queries for transmission
|
|
||||||
and the UTF-8 code is handled instead of ASCII. The DNS protocol has
|
|
||||||
already allocated 8bit query format for domain names Therefore, the
|
|
||||||
IDNS protocol inherits the security issues for the current DNS.
|
|
||||||
|
|
||||||
Canonicalization of IDNS is defined in [UTR15] and case folding in
|
|
||||||
[UTR21]. All security issues related with canonicalization or
|
|
||||||
normalization inherits ones described in [UTR15, UTR21].
|
|
||||||
|
|
||||||
As always with data, if software does not check for data that can be
|
|
||||||
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
|
|
||||||
|
|
||||||
[IDN-REQ] James Seng, "Requirements of Internationalized Domain
|
|
||||||
Names," Internet Draft, June 2000
|
|
||||||
|
|
||||||
[KWAN] Stuart Kwan, "Using the UTF-8 Character Set in the
|
|
||||||
Domain Name System," Internet Draft, February 2000
|
|
||||||
|
|
||||||
[Oscarsson] Dan Oscarsson, "Internationalisation of the Domain Name
|
|
||||||
Service," Internet Draft, February 2000
|
|
||||||
|
|
||||||
[RFC1034] Mockapetris, P., "Domain Names - Concepts and
|
|
||||||
Facilities," STD 13, RFC 1034, USC/ISI, November 1987
|
|
||||||
|
|
||||||
[RFC1035] Mockapetris, P., "Domain Names - Implementation and
|
|
||||||
Specification," STD 13, RFC 1035, USC/ISI, November
|
|
||||||
1987
|
|
||||||
|
|
||||||
[RFC2119] S. Bradner, "Key words for use in RFCs to Indicate
|
|
||||||
Requirement Levels," RFC 2119, March 1997
|
|
||||||
|
|
||||||
[RFC2130] C. Weider et. Al., "The Report of the IAB Character Set
|
|
||||||
Workshop held 29 February - 1 March 1996," RFC 2130,
|
|
||||||
Apr 1997.
|
|
||||||
|
|
||||||
[RFC2279] F. Yergeau, "UTF-8, a transformation format of ISO
|
|
||||||
10646," RFC 2279, January 1998
|
|
||||||
|
|
||||||
[RFC2535] D. Eastlake, "Domain Name System Security Extensions,"
|
|
||||||
RFC 2535, March 1999
|
|
||||||
|
|
||||||
[UNICODE] The Unicode Consortium, "The Unicode Standard - Version
|
|
||||||
3.0," http://www.unicode.org/unicode/
|
|
||||||
|
|
||||||
[UTR15] M. Davis and M. Duerst, "Unicode Normalization Forms",
|
|
||||||
Unicode Technical Report #15, Nov 1999,
|
|
||||||
http://www.unicode.org/unicode/reports/tr15/
|
|
||||||
|
|
||||||
[UTR21] Mark Davis, "Case Mappings," Unicode Technical Report
|
|
||||||
#21, May 2000,
|
|
||||||
http://www.unicode.org/unicode/reports/tr21
|
|
||||||
|
|
||||||
|
|
||||||
8. Acknowledgments
|
|
||||||
|
|
||||||
Kyoungseok Kim <gimgs@asadal.cs.pusan.ac.kr>
|
|
||||||
Chinhyun Bae <piano@netpia.com>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
9. Author's Addresses
|
|
||||||
|
|
||||||
Seungik Lee
|
|
||||||
Email: silee@icu.ac.kr
|
|
||||||
|
|
||||||
Hyewon Shin
|
|
||||||
Email: hwshin@icu.ac.kr
|
|
||||||
|
|
||||||
Dongman Lee
|
|
||||||
Email: dlee@icu.ac.kr
|
|
||||||
|
|
||||||
Information & Communications University
|
|
||||||
58-4 Whaam-dong Yuseong-gu Taejon, 305-348 Korea
|
|
||||||
|
|
||||||
|
|
||||||
Eunyong Park
|
|
||||||
Email: eunyong@eunyong.pe.kr
|
|
||||||
Konkuk University
|
|
||||||
93-1 Mojindong, Kwangjin-ku Seoul, 143-701 Korea
|
|
||||||
|
|
||||||
|
|
||||||
Sungil Kim
|
|
||||||
Email: clicky@netpia.com
|
|
||||||
Netpia.com
|
|
||||||
35-1 8-ga Youngdeungpo-dong Youngdeungpo-gu Seoul, 150-038 Korea
|
|
19
doc/draft/draft-ietf-idn-icu-01.txt
Normal file
19
doc/draft/draft-ietf-idn-icu-01.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
E. Park: eunyong@eunyong.pe.kr
|
||||||
|
|
||||||
|
|
@@ -1,9 +1,9 @@
|
|||||||
Internet Draft Marc Blanchet
|
Internet Draft Marc Blanchet
|
||||||
draft-ietf-idn-idne-01.txt Viagenie
|
draft-ietf-idn-idne-02.txt Viagenie
|
||||||
July 8, 2000 Paul Hoffman
|
March 19, 2001 Paul Hoffman
|
||||||
Expires in six months IMC & VPNC
|
Expires in six months IMC & VPNC
|
||||||
|
|
||||||
Internationalized domain names using EDNS (IDNE)
|
Internationalized domain names using EDNS (IDNE)
|
||||||
|
|
||||||
Status of this Memo
|
Status of this Memo
|
||||||
|
|
||||||
@@ -19,11 +19,11 @@ and may be updated, replaced, or obsoleted by other documents at any
|
|||||||
time. It is inappropriate to use Internet-Drafts as reference material
|
time. It is inappropriate to use Internet-Drafts as reference material
|
||||||
or to cite them other than as "work in progress."
|
or to cite them other than as "work in progress."
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
The list of current Internet-Drafts can be accessed at
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
http://www.ietf.org/ietf/1id-abstracts.txt
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
The list of Internet-Draft Shadow Directories can be accessed at
|
||||||
http://www.ietf.org/shadow.html.
|
http://www.ietf.org/shadow.html.
|
||||||
|
|
||||||
|
|
||||||
Abstract
|
Abstract
|
||||||
@@ -98,11 +98,11 @@ new extended label type for IDNE is used to identify an IDNE label. This
|
|||||||
document uses 0b000010 as the extended label type; however, the label
|
document uses 0b000010 as the extended label type; however, the label
|
||||||
type will be assigned by IANA and it may not be 0b000010.
|
type will be assigned by IANA and it may not be 0b000010.
|
||||||
|
|
||||||
0 1 2
|
0 1 2
|
||||||
bits 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 . . .
|
bits 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 . . .
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//+-+-+-+-+-+-+
|
||||||
|0 1| ELT | Size | IDN label ... |
|
|0 1| ELT | Size | IDN label ... |
|
||||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//-+-+-+-+-+-+-+
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//-+-+-+-+-+-+-+
|
||||||
|
|
||||||
|
|
||||||
ELT: The six-bit extended label type to be assigned by the IANA for an
|
ELT: The six-bit extended label type to be assigned by the IANA for an
|
||||||
@@ -134,20 +134,20 @@ then transformed using UTF-8 [RFC2279] to 0x6DC3A9.
|
|||||||
Ignoring the other fields of the message, the domain name portion of the
|
Ignoring the other fields of the message, the domain name portion of the
|
||||||
datagram could look like:
|
datagram could look like:
|
||||||
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
|
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
22 | 0x6D (m) | 0xC3 (e'(1)) |
|
22 | 0x6D (m) | 0xC3 (e'(1)) |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
24 | 0xA9 (e'(2)) | 3 |
|
24 | 0xA9 (e'(2)) | 3 |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
26 | 0x63 (c) | 0x6F (o) |
|
26 | 0x63 (c) | 0x6F (o) |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
28 | 0x6D (m) | 0x00 |
|
28 | 0x6D (m) | 0x00 |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
|
||||||
Octet 20 means EDNS extended label type (0b01) using the IDN label
|
Octet 20 means EDNS extended label type (0b01) using the IDN label
|
||||||
type (0b000010)
|
type (0b000010)
|
||||||
Octet 21 means size of label is 3 octets following
|
Octet 21 means size of label is 3 octets following
|
||||||
Octet 22-24 are the "m*" label encoded in UTF-8
|
Octet 22-24 are the "m*" label encoded in UTF-8
|
||||||
Octet 25-28 are "com" encoded as a STD13 label
|
Octet 25-28 are "com" encoded as a STD13 label
|
||||||
@@ -161,25 +161,25 @@ Using the previous labels, one datagram might contain "www.m*.com" and
|
|||||||
Ignoring the other fields of the message, the domain name portions of
|
Ignoring the other fields of the message, the domain name portions of
|
||||||
the datagram could look like:
|
the datagram could look like:
|
||||||
|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
|
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
22 | 0x6D (m) | 0xC3 (e'(1)) |
|
22 | 0x6D (m) | 0xC3 (e'(1)) |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
24 | 0xA9 (e'(2)) | 3 |
|
24 | 0xA9 (e'(2)) | 3 |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
26 | 0x63 (c) | 0x6F (o) |
|
26 | 0x63 (c) | 0x6F (o) |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
28 | 0x6D (m) | 0x00 |
|
28 | 0x6D (m) | 0x00 |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
. . .
|
. . .
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
40 | 3 | 0x77 (w) |
|
40 | 3 | 0x77 (w) |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
42 | 0x77 (w) | 0x77 (w) |
|
42 | 0x77 (w) | 0x77 (w) |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
44 | 1 1| 20 |
|
44 | 1 1| 20 |
|
||||||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
|
||||||
The domain name "m*.com" is shown at offset 20. The domain name
|
The domain name "m*.com" is shown at offset 20. The domain name
|
||||||
"www.m*.com" is shown at offset 40; this definition uses a pointer to
|
"www.m*.com" is shown at offset 40; this definition uses a pointer to
|
||||||
@@ -405,23 +405,9 @@ Bill Sommerfeld
|
|||||||
Francois Yergeau
|
Francois Yergeau
|
||||||
|
|
||||||
|
|
||||||
B. Changes from -00 to -01
|
B. Changes from -01 to -02
|
||||||
|
|
||||||
1.1: Added reference to Unicode names.
|
None.
|
||||||
|
|
||||||
3: Clarified that a size of zero is not allowed.
|
|
||||||
|
|
||||||
3.1.1 and 3.1.2: Fixed two very serious errors in the examples.
|
|
||||||
|
|
||||||
6: Removed second paragraph, which was redundant with 7.3.
|
|
||||||
|
|
||||||
12: Beefed up the security considerations.
|
|
||||||
|
|
||||||
13: Added [ISO10646] and [UNICODE3].
|
|
||||||
|
|
||||||
Added Appendix A.
|
|
||||||
|
|
||||||
Added Appendex B.
|
|
||||||
|
|
||||||
|
|
||||||
C. Authors' Addresses
|
C. Authors' Addresses
|
||||||
@@ -438,4 +424,3 @@ Internet Mail Consortium and VPN Consortium
|
|||||||
Santa Cruz, CA 95060 USA
|
Santa Cruz, CA 95060 USA
|
||||||
phoffman@imc.org
|
phoffman@imc.org
|
||||||
|
|
||||||
|
|
@@ -1,334 +0,0 @@
|
|||||||
Internet Draft Paul Hoffman
|
|
||||||
draft-ietf-idn-idnra-00.txt IMC & VPNC
|
|
||||||
August 17, 2000 Patrik Faltstrom
|
|
||||||
Expires in six months Cisco
|
|
||||||
|
|
||||||
Internationalized Host Names
|
|
||||||
Using Resolvers and Applications (IDNRA)
|
|
||||||
|
|
||||||
|
|
||||||
Status of this Memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with all
|
|
||||||
provisions of Section 10 of RFC2026.
|
|
||||||
|
|
||||||
Internet-Drafts are working documents of the Internet Engineering Task
|
|
||||||
Force (IETF), its areas, and its working groups. Note that other groups
|
|
||||||
may also distribute working documents as Internet-Drafts.
|
|
||||||
|
|
||||||
Internet-Drafts are draft documents valid for a maximum of six months
|
|
||||||
and may be updated, replaced, or obsoleted by other documents at any
|
|
||||||
time. It is inappropriate to use Internet-Drafts as reference material
|
|
||||||
or to cite them other than as "work in progress."
|
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
|
||||||
http://www.ietf.org/shadow.html.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Abstract
|
|
||||||
|
|
||||||
The current DNS infrastructure does not provide a way to use
|
|
||||||
internationalized host names (IDN). This document describes a mechanism
|
|
||||||
that requires no changes to any DNS server that will allow
|
|
||||||
internationalized host names to be used by end users with changes only
|
|
||||||
to resolvers and applications. It allows flexibility for user input and
|
|
||||||
display, and assures that host names that have non-ASCII characters are
|
|
||||||
not sent to servers.
|
|
||||||
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
|
|
||||||
In the discussion of IDN solutions, a great deal of discussion has
|
|
||||||
focused on transition issues and how IDN will work in a world where not
|
|
||||||
all of the components have been updated. Earlier proposed solutions
|
|
||||||
require that user applications, resolvers, and DNS servers to be updated
|
|
||||||
in order for a user to use an internationalized host name. Instead of
|
|
||||||
this requirement for widespread updating of all components, the current
|
|
||||||
proposal is that only user applications and the resolvers on user's
|
|
||||||
systems be updated; no changes are needed to the DNS protocol or any DNS
|
|
||||||
servers. We also show that it is enough to update only the application,
|
|
||||||
and at the same time an encoded version of the host name can be used
|
|
||||||
even in current existing applications.
|
|
||||||
|
|
||||||
The proposal is called IDNRA because it only requires changes to
|
|
||||||
resolvers and applications (the "R" and "A" in the name).
|
|
||||||
|
|
||||||
1.1 Design philosophy
|
|
||||||
|
|
||||||
To date, the proposals for IDN protocols have required that DNS servers
|
|
||||||
be updated to handle internationalized host names. Because of this, the
|
|
||||||
person who wanted to use an internationalized host name had to be sure
|
|
||||||
that their request went to a DNS server that was updated for IDN.
|
|
||||||
Further, that server could only send queries to other servers that had
|
|
||||||
been updated for IDN because the queries contain new protocol elements
|
|
||||||
to differentiate IDN name parts from current host parts. In addition,
|
|
||||||
these proposals require that resolvers must be updated to use the new
|
|
||||||
protocols, and in most cases the applications would need to be updated
|
|
||||||
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. IDNRA
|
|
||||||
still requires the updating of applications and resolvers, 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.
|
|
||||||
|
|
||||||
IDNRA also specifies how to use old applications and/or old resolvers in
|
|
||||||
parallel with updated ones.
|
|
||||||
|
|
||||||
1.2 Terminology
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
In IDNRA, users' applications and resolvers are updated to perform the
|
|
||||||
processing needed to input internationalized host names from users,
|
|
||||||
display internationalized host names that are returned from the DNS to
|
|
||||||
users, and process the inputs and outputs from the DNS.
|
|
||||||
|
|
||||||
2.1 Interfaces between DNS components in IDNRA
|
|
||||||
|
|
||||||
The interfaces in IDNRA can be represented pictorially as:
|
|
||||||
|
|
||||||
+------+
|
|
||||||
| User |
|
|
||||||
+------+
|
|
||||||
^
|
|
||||||
| Input and display: any charset
|
|
||||||
v
|
|
||||||
+-------------+
|
|
||||||
| Application |
|
|
||||||
+-------------+
|
|
||||||
^
|
|
||||||
| API call and return: UTF-8
|
|
||||||
v
|
|
||||||
+----------+
|
|
||||||
| Resolver |
|
|
||||||
+----------+
|
|
||||||
^
|
|
||||||
| DNS query and response: RACE
|
|
||||||
v
|
|
||||||
+-------------+
|
|
||||||
| DNS servers |
|
|
||||||
+-------------+
|
|
||||||
|
|
||||||
2.1.1 Users and applications
|
|
||||||
|
|
||||||
Applications can accept host names using any character set or sets
|
|
||||||
desired by the application developer, and can display host names in any
|
|
||||||
charset. That is, this protocol does not affect the interface between
|
|
||||||
users and applications.
|
|
||||||
|
|
||||||
An IDNRA-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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
This protocol specifies that host names SHOULD be passed to resolvers
|
|
||||||
using UTF-8 [RFC2279] because there are many libraries for converting
|
|
||||||
between arbitrary charsets and UTF-8. However, because the API is not
|
|
||||||
specified in this document, some resolvers may use different charsets
|
|
||||||
for input and output, and applications must, of course, use the same
|
|
||||||
charset as the resolver library they call.
|
|
||||||
|
|
||||||
IDNRA-aware applications MUST be able to work with both IDNRA-aware and
|
|
||||||
non-aware resolvers. An IDNRA-aware application that is resolving a
|
|
||||||
non-internationalized host name (one that conforms to RFC 1035[STD13])
|
|
||||||
MUST use non-aware APIs such as "gethostbyname" and "gethostbyaddr". An
|
|
||||||
IDNRA-aware application that is resolving a internationalized host name
|
|
||||||
(one that does not conform to RFC 1035) MUST use an API that is specific
|
|
||||||
to IDNRA.
|
|
||||||
|
|
||||||
2.1.3 Resolvers and DNS servers
|
|
||||||
|
|
||||||
Before converting the name parts into RACE, the resolver MUST prepare
|
|
||||||
each name part as specified in [NAMEPREP]. The resolver MUST use RACE
|
|
||||||
ASCII-compatible encoding for the name parts that are sent in the DNS
|
|
||||||
query, and will always get name parts encoded in RACE from the DNS
|
|
||||||
service. DNS servers MUST use the RACE 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
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
3. Combinations of Resolvers and Applications
|
|
||||||
|
|
||||||
IDNRA allows non-IDNRA applications to coexist with IDNRA-aware
|
|
||||||
resolvers, and non-IDNRA resolvers to coexist with IDNRA-aware
|
|
||||||
applications. This section describes the interactions between
|
|
||||||
applications and resolvers as users update each separately.
|
|
||||||
|
|
||||||
In this section, "old" means an application or resolver that has not bee
|
|
||||||
upgraded to be IDNRA-aware, and "new" means an IDNRA-aware application
|
|
||||||
or resolver. The two APIs are also called "old" and "new". "Binary"
|
|
||||||
means any host name that is not compatible with current DNS character
|
|
||||||
restrictions.
|
|
||||||
|
|
||||||
3.1 Old application, old resolver
|
|
||||||
|
|
||||||
Because it is an old resolver (and an old application), all host names
|
|
||||||
MUST (and will) be resolved using the old API. A user cannot enter
|
|
||||||
binary names in the application. A user MAY enter a name that uses RACE
|
|
||||||
encoding. Each RACE-encoded name part in such a name MUST already have
|
|
||||||
had all name preparation done on it and be correctly converted to RACE
|
|
||||||
encoding; otherwise, it will not be matched in the DNS.
|
|
||||||
|
|
||||||
When the resolver receives a RACE name in a response to a old API
|
|
||||||
gethostbyaddr-type query, the resolver will not convert the host name to
|
|
||||||
a binary form, and the application will thus display the name in RACE
|
|
||||||
format. Showing the results of a gethostbyaddr-type queries is rare in
|
|
||||||
typical Internet applications, so the display of RACE names is not
|
|
||||||
likely in typical environments.
|
|
||||||
|
|
||||||
3.2 Old application, new resolver
|
|
||||||
|
|
||||||
Because it is an old application, all host names MUST (and will) be
|
|
||||||
resolved using the old API. A user cannot enter binary names in the
|
|
||||||
application. A user MAY enter a name that uses RACE encoding. Each
|
|
||||||
RACE-encoded name part in such a name MUST already have had all name
|
|
||||||
preparation done on it and be correctly converted to RACE encoding;
|
|
||||||
otherwise, it will not be matched in the DNS. Note that, even though the
|
|
||||||
resolver is new, the resolver MUST NOT do further name preparation on
|
|
||||||
RACE-encoded name parts because the call was using the old API, which
|
|
||||||
tells the resolver that the resolver is dealing with an old application.
|
|
||||||
|
|
||||||
If the resolver receives a RACE name in a response to a old API
|
|
||||||
gethostbyaddr-type query, the resolver MUST NOT convert the host name to
|
|
||||||
a binary form, and the application will thus display the name in RACE
|
|
||||||
format. Showing the results of a gethostbyaddr-type queries is rare in
|
|
||||||
typical Internet applications, so the display of RACE names is not
|
|
||||||
likely in typical environments.
|
|
||||||
|
|
||||||
3.3 New application, old resolver
|
|
||||||
|
|
||||||
Because it is an old resolver, all host names MUST (and will) be
|
|
||||||
resolved using the old API. If the user enters a binary host name, the
|
|
||||||
application SHOULD reject the name as illegal. This is due to the fact
|
|
||||||
that, if the application did not reject the name as illegal, the
|
|
||||||
application would have to contain all of the name preparation logic and
|
|
||||||
RACE-encoding logic, but that logic would only be used in the rare case
|
|
||||||
where a user had updated applications but not the resolver. It is likely
|
|
||||||
that applications would not fully implement and rigorously test the name
|
|
||||||
preparation logic, and it is therefore likely that some applications in
|
|
||||||
this scenario would give incorrect information to the user, and would
|
|
||||||
possibly be susceptible to spoofing attacks. If an application is going
|
|
||||||
allow the input of binary names and convert them to their RACE-encoded
|
|
||||||
form for use on the old API, the application MUST do full name
|
|
||||||
preparation exactly as it would have been done in a new resolver.
|
|
||||||
|
|
||||||
If the application receives a RACE-encoded name part in a response to a
|
|
||||||
old API gethostbyaddr-type query, the application SHOULD convert the
|
|
||||||
host name to a binary form for display. However, the application MAY
|
|
||||||
have an interface that allows the display of RACE names that are
|
|
||||||
returned by gethostbyaddr-type queries, but the default setting of such
|
|
||||||
an interface SHOULD be to show the binary form, not the RACE form.
|
|
||||||
|
|
||||||
3.4 New application, new resolver
|
|
||||||
|
|
||||||
All host names MUST be resolved using the new API. A user MAY enter a
|
|
||||||
name that uses RACE encoding. Each RACE-encoded name part in such a name
|
|
||||||
MUST already have had all name preparation done on it and be correctly
|
|
||||||
converted to RACE encoding; otherwise, it will not be matched in the
|
|
||||||
DNS.
|
|
||||||
|
|
||||||
When the resolver receives a RACE name in a response to a
|
|
||||||
gethostbyaddr-type query, if the query was to the old API, the resolver
|
|
||||||
MUST NOT convert the host name and MUST pass the RACE-formatted name to
|
|
||||||
the application. If the query was to the new API, the resolver MUST
|
|
||||||
convert the host name part to the binary form. The application MAY have
|
|
||||||
an interface that allows the user to decide whether to use the old or
|
|
||||||
new API, and therefore to show the results in RACE or binary format, but
|
|
||||||
the default setting of such an interface SHOULD be to use the new API.
|
|
||||||
|
|
||||||
|
|
||||||
4. Root Server Considerations
|
|
||||||
|
|
||||||
Because there are no changes to the DNS protocols, adopting this
|
|
||||||
protocol has no effect on the root servers.
|
|
||||||
|
|
||||||
|
|
||||||
5. Security Considerations
|
|
||||||
|
|
||||||
Much of the security of the Internet relies on the DNS. Thus, any change
|
|
||||||
to the characteristics of the DNS can change the security of much of the
|
|
||||||
Internet.
|
|
||||||
|
|
||||||
Host names are used by users to connect to Internet servers. The
|
|
||||||
security of the Internet would be compromised if a user entering a
|
|
||||||
single internationalized name could be connected to different servers
|
|
||||||
based on different interpretations of the internationalized host name.
|
|
||||||
|
|
||||||
Because this document normatively refers to [NAMEPREP], it includes the
|
|
||||||
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).
|
|
||||||
|
|
||||||
|
|
||||||
A. Authors' Addresses
|
|
||||||
|
|
||||||
Paul Hoffman
|
|
||||||
Internet Mail Consortium and VPN Consortium
|
|
||||||
127 Segre Place
|
|
||||||
Santa Cruz, CA 95060 USA
|
|
||||||
phoffman@imc.org
|
|
||||||
|
|
||||||
Patrik Faltstrom
|
|
||||||
Cisco Systems
|
|
||||||
170 W Tasman Drive SJ-13/2
|
|
||||||
San Jose, CA 9 5134 USA
|
|
||||||
paf@cisco.com
|
|
20
doc/draft/draft-ietf-idn-idnra-01.txt
Normal file
20
doc/draft/draft-ietf-idn-idnra-01.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
P. Hoffman: phoffman@imc.org
|
||||||
|
P. Faltstrom: paf@cisco.com
|
||||||
|
|
||||||
|
|
@@ -1,276 +0,0 @@
|
|||||||
Internet Draft Dan Oscarsson
|
|
||||||
draft-ietf-idn-sace-00.txt Telia ProSoft
|
|
||||||
Expires: 27 February 2001 27 August 2000
|
|
||||||
|
|
||||||
Simple ASCII Compatible Encoding (SACE)
|
|
||||||
|
|
||||||
Status of this memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with
|
|
||||||
all provisions of Section 10 of RFC2026.
|
|
||||||
|
|
||||||
Internet-Drafts are working documents of the Internet Engineering
|
|
||||||
Task Force (IETF), its areas, and its working groups. Note that other
|
|
||||||
groups may also distribute working documents as Internet-Drafts.
|
|
||||||
|
|
||||||
Internet-Drafts are draft documents valid for a maximum of six months
|
|
||||||
and may be updated, replaced, or obsoleted by other documents at any
|
|
||||||
time. It is inappropriate to use Internet-Drafts as reference
|
|
||||||
material or to cite them other than as "work in progress."
|
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
|
||||||
http://www.ietf.org/shadow.html.
|
|
||||||
|
|
||||||
|
|
||||||
Abstract
|
|
||||||
|
|
||||||
This document describes a way to encode non-ASCII characters in host
|
|
||||||
names in a way that is completely compatible with the current ASCII
|
|
||||||
only host names that are used in DNS. It can be used both with DNS to
|
|
||||||
support software only handling ASCII host names and as a way to
|
|
||||||
downgrade from 8-bit text to ASCII in protocols.
|
|
||||||
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
|
|
||||||
This document defines an ASCII Compatible Encoding (ACE) of names
|
|
||||||
that can be used when communicating with DNS. It is needed during a
|
|
||||||
transition period when non-ASCII names are introduced in DNS to avoid
|
|
||||||
breaking programs expecting ASCII only.
|
|
||||||
|
|
||||||
The Simple ASCII Compatible Encoding (SACE) defined here can be
|
|
||||||
compared to [RACE]. The main differences are:
|
|
||||||
- RACE encodes by first compressing and the encoding the resulting
|
|
||||||
bit stream into ASCII. SACE encodes each character directly in one
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dan Oscarsson Expires: 27 Februray 2001 [Page 1]
|
|
||||||
|
|
||||||
Internet Draft SACE 27 August 2000
|
|
||||||
|
|
||||||
|
|
||||||
pass.
|
|
||||||
- SACE recognises that at lot of latin based names are mostly
|
|
||||||
composed of ASCII characters and gives a higher compression for
|
|
||||||
those. In the 63 byte limit of DNS RACE will allow 36 characters
|
|
||||||
for ISO 8859-1 and less if characters from the additional Latin
|
|
||||||
characters are needed. SACE will allow around 40 characters if
|
|
||||||
about 10 % of a Latin name is non-ASCII (in the UCS [ISO10646]
|
|
||||||
range 0-0x217). SACE is closer to the compression that UTF-8 have
|
|
||||||
than RACE.
|
|
||||||
- Most ASCII characters will not be encoded so Latin based names
|
|
||||||
composed of mostly ASCII characters will be somewhat readable.
|
|
||||||
|
|
||||||
|
|
||||||
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 [RFC2119].
|
|
||||||
|
|
||||||
2. Simple ASCII Compatible Encoding
|
|
||||||
|
|
||||||
The encoding encodes values using the available characters allowed in
|
|
||||||
a ASCII host name (a-z0-9 and hyphen).
|
|
||||||
|
|
||||||
Values are encoded as follows:
|
|
||||||
|
|
||||||
Character - value mapping
|
|
||||||
|
|
||||||
value character value character
|
|
||||||
0 a 18 s
|
|
||||||
1 b 19 t
|
|
||||||
2 c 20 u
|
|
||||||
3 d 21 v
|
|
||||||
4 e 22 w
|
|
||||||
5 f 23 x
|
|
||||||
6 g 24 y
|
|
||||||
7 h 25 z
|
|
||||||
8 i 26 1
|
|
||||||
9 j 27 2
|
|
||||||
10 k 28 3
|
|
||||||
11 l 29 4
|
|
||||||
12 m 30 7
|
|
||||||
13 n 31 9
|
|
||||||
14 o 32 0
|
|
||||||
15 p 33 8
|
|
||||||
16 q 34 5
|
|
||||||
17 r 35 6
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dan Oscarsson Expires: 27 Februray 2001 [Page 2]
|
|
||||||
|
|
||||||
Internet Draft SACE 27 August 2000
|
|
||||||
|
|
||||||
|
|
||||||
In the following description the following syntax will be used:
|
|
||||||
B => one value in the range 0-35 mapped to a character as above
|
|
||||||
X => one value in the range 0-31 mapped to a character as above
|
|
||||||
|
|
||||||
Each UCS character is identified as follows:
|
|
||||||
latin => a character in the range 0-0x217
|
|
||||||
10bit => a character in the range 0x218-0x2FFF
|
|
||||||
base36 => all other characters
|
|
||||||
|
|
||||||
During encoding/decoding a string a current mode is used. In each
|
|
||||||
mode characters are encoded like this:
|
|
||||||
latin => as themselves, 00 for 0, 88 for 8 or as 10 bit value
|
|
||||||
encoded as 0XX (two 5 bit values)
|
|
||||||
10bit => as 15 bits represented by its current prefix of 5 bits
|
|
||||||
followed by 10 bits encoded as XX
|
|
||||||
(the value is the 15 bits of prefix and
|
|
||||||
10 bits concatenated)
|
|
||||||
base36 => as a base 36 value represented by its current base 36
|
|
||||||
prefix followed by three base 36 digits encoded as BBB
|
|
||||||
(the value is prefix*36*36*36*36+B*36*36+B*36+B)
|
|
||||||
Before encoding the character value must first be
|
|
||||||
reduced:
|
|
||||||
if >= 0xd800 reduce by 8192 (private/surrogate start)
|
|
||||||
then reduce by 0x2FFF.
|
|
||||||
After decoding the character value need to be restored
|
|
||||||
as
|
|
||||||
add 0x2FFF
|
|
||||||
followed by adding 8192 if >= 0xd800
|
|
||||||
|
|
||||||
|
|
||||||
2.1 Decoding a string
|
|
||||||
|
|
||||||
During decode you start with:
|
|
||||||
Mode: latin
|
|
||||||
10bit prefix: 0
|
|
||||||
base36 prefix: 0
|
|
||||||
|
|
||||||
Then the characters in an encoded string are interpreted as follows
|
|
||||||
depending on current mode:
|
|
||||||
|
|
||||||
When in latin mode:
|
|
||||||
00 => the character 0
|
|
||||||
0XX => XX represents 10 bits which decodes to one character
|
|
||||||
88 => the character 8
|
|
||||||
85 => switch to 10bit mode with same prefix as last time
|
|
||||||
8X5 => switch 10 10bit mode setting X as current 10bit prefix
|
|
||||||
87 => switch to base36 mode with same prefix as last time
|
|
||||||
8X7 => switch to base36 mode setting X as current base36 prefix
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dan Oscarsson Expires: 27 Februray 2001 [Page 3]
|
|
||||||
|
|
||||||
Internet Draft SACE 27 August 2000
|
|
||||||
|
|
||||||
|
|
||||||
other => the characters represent itself
|
|
||||||
|
|
||||||
When in 10bit mode
|
|
||||||
- => the character -
|
|
||||||
0 => switch to latin mode
|
|
||||||
X5 => switch 10 10bit mode using X as current prefix
|
|
||||||
7 => switch to base36 mode with same prefix as last time
|
|
||||||
X7 => switch to base36 mode using X as current prefix
|
|
||||||
XX => current 10bit prefix plus XX gives the character
|
|
||||||
|
|
||||||
When in base36 mode
|
|
||||||
-- => the character -
|
|
||||||
-0 => switch to latin mode
|
|
||||||
-5 => switch to 10bit mode with same prefix as last time
|
|
||||||
-X5 => switch 10 10bit mode setting X as current prefix
|
|
||||||
-X7 => switch to base36 mode setting X as current prefix
|
|
||||||
XXX => current base36 prefix plus XXX as base 36 values gives
|
|
||||||
character
|
|
||||||
|
|
||||||
|
|
||||||
2.2 Encoding a string
|
|
||||||
|
|
||||||
To encode a string you start with the data as UCS characters and:
|
|
||||||
Mode: latin
|
|
||||||
10bit prefix: 0
|
|
||||||
base36 prefix: 0
|
|
||||||
|
|
||||||
Then for each UCS character, the mode and/or prefix is switched if
|
|
||||||
needed and then the character is encoded as defined above.
|
|
||||||
|
|
||||||
|
|
||||||
3. References
|
|
||||||
|
|
||||||
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
|
|
||||||
Requirement Levels", March 1997, RFC 2119.
|
|
||||||
|
|
||||||
[RFC2279] F. Yergeau, "UTF-8, a transformation format of ISO 10646",
|
|
||||||
RFC 2279, January 1998.
|
|
||||||
|
|
||||||
[ISO10646] ISO/IEC 10646-1:2000. International Standard --
|
|
||||||
Information technology -- Universal Multiple-Octet Coded
|
|
||||||
Character Set (UCS)
|
|
||||||
|
|
||||||
[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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dan Oscarsson Expires: 27 Februray 2001 [Page 4]
|
|
||||||
|
|
||||||
Internet Draft SACE 27 August 2000
|
|
||||||
|
|
||||||
|
|
||||||
[IDNREQ] James Seng, "Requirements of Internationalized Domain
|
|
||||||
Names", draft-ietf-idn-requirement.
|
|
||||||
|
|
||||||
[RACE] Paul Hoffman, "RACE: Row-based ASCII Compatible Encoding
|
|
||||||
for IDN", draft-ietf-idn-race.
|
|
||||||
|
|
||||||
4. Acknowledgements
|
|
||||||
|
|
||||||
Paul Hoffman for many good ideas.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Author's Address
|
|
||||||
|
|
||||||
Dan Oscarsson
|
|
||||||
Telia ProSoft AB
|
|
||||||
Box 85
|
|
||||||
201 20 Malmo
|
|
||||||
Sweden
|
|
||||||
|
|
||||||
E-mail: Dan.Oscarsson@trab.se
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dan Oscarsson Expires: 27 Februray 2001 [Page 5]
|
|
||||||
|
|
19
doc/draft/draft-ietf-idn-sace-01.txt
Normal file
19
doc/draft/draft-ietf-idn-sace-01.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
D. Oscarsson: dan.oscarsson@trab.se
|
||||||
|
|
||||||
|
|
@@ -1,537 +0,0 @@
|
|||||||
|
|
||||||
IETF IDN Working Group Sung Jae Shim
|
|
||||||
Internet Draft DualName, Inc.
|
|
||||||
Document: draft-ietf-idn-vidn-00.txt 14 November 2000
|
|
||||||
Expires: 14 May 2001
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names (VIDN)
|
|
||||||
|
|
||||||
|
|
||||||
Status of this Memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with
|
|
||||||
all provisions of Section 10 of RFC2026.
|
|
||||||
|
|
||||||
Internet-Drafts are working documents of the Internet Engineering
|
|
||||||
Task Force (IETF), its areas, and its working groups. Note that other
|
|
||||||
groups may also distribute working documents as Internet-Drafts.
|
|
||||||
|
|
||||||
Internet-Drafts are draft documents valid for a maximum of six months
|
|
||||||
and may be updated, replaced, or obsoleted by other documents at any
|
|
||||||
time. It is inappropriate to use Internet-Drafts as reference
|
|
||||||
material or to cite them other than as "work in progress."
|
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
|
||||||
http://www.ietf.org/shadow.html.
|
|
||||||
|
|
||||||
|
|
||||||
1. Abstract
|
|
||||||
|
|
||||||
This document describes a method that internationalizes existing as
|
|
||||||
well as future domain names in English, not making any change to the
|
|
||||||
current DNS, not requiring separate name server or resolver, and not
|
|
||||||
creating domain names in non-English languages. Based upon the
|
|
||||||
knowledge of transliteration between a local language and English,
|
|
||||||
the method allows a user to use virtual domain names in the user's
|
|
||||||
preferred local language by converting them into the corresponding
|
|
||||||
actual domain names in English that comply with the current DNS. The
|
|
||||||
conversion takes place automatically and transparently in the user's
|
|
||||||
applications before DNS queries are sent. The method uses the current
|
|
||||||
DNS as it is and meets all the requirements of internationalized
|
|
||||||
domain names as described in Wenzel and Seng [2].
|
|
||||||
|
|
||||||
|
|
||||||
2. Conventions and definitions used in this document
|
|
||||||
|
|
||||||
The key words "REQUIRED" and "MAY" in this document are to be
|
|
||||||
interpreted as described in RFC-2119 [1].
|
|
||||||
|
|
||||||
A "host" is a computer or device attached to the Internet. A "user
|
|
||||||
host" is a computer or device with which a user is connected to the
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
Internet, and a "user" is a person who uses a user host. A "server
|
|
||||||
host" is a computer or device that provides services to user hosts.
|
|
||||||
|
|
||||||
An "entity" is an organization or individual that has a domain name
|
|
||||||
registered with the DNS.
|
|
||||||
|
|
||||||
A "local language" is a language other than English that a user
|
|
||||||
prefers to use in a local context.
|
|
||||||
|
|
||||||
A "virtual domain name" is a domain name in a local language, and it
|
|
||||||
is not registered with the DNS but used for the convenience of a
|
|
||||||
user. An "actual domain name" is a domain name in English, and it is
|
|
||||||
actually used in the DNS. A "domain name" refers to an actual domain
|
|
||||||
name in English that complies with the DNS, unless specified
|
|
||||||
otherwise.
|
|
||||||
|
|
||||||
A "coded portion" is a pre-coded portion of a domain name (e.g.,
|
|
||||||
generic organization codes including `com', `edu', `gov', `int',
|
|
||||||
`mil', `net', `org', and country codes such as `kr', `jp', and so
|
|
||||||
on). An "entity-defined portion" is a portion of a domain name, which
|
|
||||||
is defined by the entity that holds the domain name (e.g.,
|
|
||||||
organization name, server name, and so on).
|
|
||||||
|
|
||||||
The method proposed in this document is called "virtually
|
|
||||||
internationalized domain names (VIDN)" because it uses virtual domain
|
|
||||||
names in local languages to internationalize actual domain names in
|
|
||||||
English that comply with the DNS.
|
|
||||||
|
|
||||||
A number of Korean-language characters are used in the original of
|
|
||||||
this document for examples, which is available from the author upon
|
|
||||||
request. The software used for Internet-Drafts does not allow using
|
|
||||||
multilingual characters other than ASCII characters. Thus, this
|
|
||||||
document may not display Korean-language characters properly,
|
|
||||||
although it may be comprehensible without the examples using Korean-
|
|
||||||
language characters. Also, when you open the original of this
|
|
||||||
document, please select your view encoding type to Korean for Korean-
|
|
||||||
language characters to be displayed properly.
|
|
||||||
|
|
||||||
|
|
||||||
3. Introduction
|
|
||||||
|
|
||||||
Domain names are valuable to Internet users as a main identifier of
|
|
||||||
hosts on the Internet. The current DNS allows using only English
|
|
||||||
characters in naming hosts or clusters of hosts on the Internet. More
|
|
||||||
specifically, the DNS uses only the basic Latin alphabets (case-
|
|
||||||
insensitive), the decimal digits (0-9) and the hyphen (-) in domain
|
|
||||||
names. But there is a growing need for internationalized or non-
|
|
||||||
English domain names. Recognizing this need, various methods have
|
|
||||||
been proposed to use non-English characters in domain names. But to
|
|
||||||
date, it seems that no method has met all the requirements of
|
|
||||||
internationalized domain names as described in Wenzel and Seng [2].
|
|
||||||
|
|
||||||
A group of earlier methods has tried to put internationalized domain
|
|
||||||
names inside some parts of the overall DNS system, using UCS encoding
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
schemes. But these methods put too much of a burden on the DNS,
|
|
||||||
requiring a great deal of work for transition and update of the DNS
|
|
||||||
components. Another group of earlier methods has tried to build
|
|
||||||
separate directory services for internationalized domain names or
|
|
||||||
internationalized keywords. But these methods also require complex
|
|
||||||
implementation efforts, duplicating much of the work already done for
|
|
||||||
the DNS. Both the groups of earlier methods have tried to build some
|
|
||||||
mechanisms inside or outside the DNS and put internationalized domain
|
|
||||||
names or internationalized keywords there in addition to existing
|
|
||||||
domain names in English.
|
|
||||||
|
|
||||||
Unlike earlier methods that involve a lengthy and costly process of
|
|
||||||
implementation, VIDN provides a more immediate and less costly
|
|
||||||
solution to internationalized domain names by focusing on
|
|
||||||
internationalizing existing as well as future domain names in English
|
|
||||||
that comply with the current DNS, without actually creating domain
|
|
||||||
names in local languages. VIDN takes notice of the fact that most
|
|
||||||
domain names used in regions where English is not widely spoken, have
|
|
||||||
their entity-defined portions consisting of characters or words in
|
|
||||||
English as transliterated from characters and words in the respective
|
|
||||||
local languages. Based upon the knowledge of transliteration between
|
|
||||||
a local language and English, VIDN allows using virtual domain names
|
|
||||||
in a local language by converting them into the corresponding actual
|
|
||||||
domain names in English that comply with the current DNS. VIDN allows
|
|
||||||
the same domain names to be used not only in English as usual but
|
|
||||||
also in local languages, without creating additional domain names in
|
|
||||||
local languages.
|
|
||||||
|
|
||||||
|
|
||||||
4. VIDN method
|
|
||||||
|
|
||||||
4.1. Objectives
|
|
||||||
|
|
||||||
To date, the methods for internationalized domain names have tried to
|
|
||||||
create domain names or keywords in local languages one way or another
|
|
||||||
in addition to existing domain names in English, and put them inside
|
|
||||||
or outside the DNS, using special encoding schemes or lookup
|
|
||||||
services. These methods require a lengthy and costly process of
|
|
||||||
implementation. Even when they are successfully implemented, these
|
|
||||||
methods may localize the Internet by separating it into groups of
|
|
||||||
local languages that are less universal than English. Further, these
|
|
||||||
methods may cause disputes on copyrights, trademarks, and so on in
|
|
||||||
local contexts, in addition to all those disputes we observe with
|
|
||||||
current domain names in English. VIDN intends to provide a solution
|
|
||||||
to the problems of earlier methods, by (1) allowing the same domain
|
|
||||||
names to be used both in English and local languages, without
|
|
||||||
creating domain names in local languages, (2) working in applications
|
|
||||||
at user hosts automatically and transparently before DNS requests are
|
|
||||||
sent, (3) using the current DNS as it is, without requiring any
|
|
||||||
additional name server or resolver, and (4) being implemented
|
|
||||||
immediately with little cost.
|
|
||||||
|
|
||||||
|
|
||||||
4.2. Description
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
|
|
||||||
It is important to note that most domain names used in regions where
|
|
||||||
English is not widely spoken have their entity-defined portions
|
|
||||||
consisting of characters or words in English as transliterated from
|
|
||||||
characters or words in local languages. These transliterated
|
|
||||||
characters or words in English do not have any meanings in English,
|
|
||||||
but their originals in local languages before the transliteration
|
|
||||||
into English have some meanings in local contexts, usually indicating
|
|
||||||
organization names, brand names, trademarks, and so on. VIDN allows
|
|
||||||
using these original characters or words in local languages as the
|
|
||||||
entity-defined portions of virtual domain names in local languages,
|
|
||||||
by transliterating them into the corresponding entity-defined
|
|
||||||
portions of actual domain names in English. In this way, VIDN allows
|
|
||||||
the same domain names in English to be also used virtually in local
|
|
||||||
languages without actually creating domain names in local languages.
|
|
||||||
|
|
||||||
As domain names overlay IP addresses, so virtual domain names in
|
|
||||||
local languages do actual domain names in English. The relationship
|
|
||||||
between virtual domain names in a local language and actual domain
|
|
||||||
names in English can be depicted as:
|
|
||||||
|
|
||||||
+---------------------------------+
|
|
||||||
| User |
|
|
||||||
+---------------------------------+
|
|
||||||
| |
|
|
||||||
+----------------|-----------------------|------------------+
|
|
||||||
| v (Transliteration) v |
|
|
||||||
| +---------------------+ | +-----------------------+ |
|
|
||||||
| | Virtual domain name | | | Actual domain name | |
|
|
||||||
| | in a local language |--+->| in English | |
|
|
||||||
| +---------------------+ +-----------------------+ |
|
|
||||||
| User application | |
|
|
||||||
+----------------------------------------|------------------+
|
|
||||||
v
|
|
||||||
DNS request
|
|
||||||
|
|
||||||
VIDN uses the phonemes of a local language and English as a medium in
|
|
||||||
transliterating the entity-defined portions of virtual domain names
|
|
||||||
in the local language into those of actual domain names in English.
|
|
||||||
This process of transliteration can be depicted as:
|
|
||||||
|
|
||||||
Local language English
|
|
||||||
+----------------------------+ +-----------------------------+
|
|
||||||
| Characters ----> Phonemes -----------> Phonemes ----> Characters |
|
|
||||||
| | | | | | |
|
|
||||||
| | | | | | |
|
|
||||||
| (Inverse of transcription) | Match | (Transcription) |
|
|
||||||
+----------------------------+ +-----------------------------+
|
|
||||||
| ^
|
|
||||||
| (Transliteration) |
|
|
||||||
+------------------------------------+
|
|
||||||
|
|
||||||
First, each entity-defined portion of a virtual domain name in the
|
|
||||||
local language is decomposed into individual characters or sets of
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
characters so that each individual character or set of characters can
|
|
||||||
represent an individual phoneme of the local language, which is the
|
|
||||||
inverse of transcription of phonemes into characters. Second, each
|
|
||||||
individual phoneme of the local language is matched with an
|
|
||||||
equivalent phoneme of English that has the same or most proximate
|
|
||||||
sound. Third, each phoneme of English is transcribed into the
|
|
||||||
corresponding character or set of characters in English. Finally, all
|
|
||||||
the characters or sets of characters converted into English are
|
|
||||||
united to compose the corresponding entity-defined portion of an
|
|
||||||
actual domain name in English.
|
|
||||||
|
|
||||||
For example, a word in Korean, `??' that means `century' in English,
|
|
||||||
is transliterated into `segi' in English, and so, the entity whose
|
|
||||||
name contains `??' in Korean may have an entity-defined portion of
|
|
||||||
its domain name as `segi' in English. VIDN allows using `??' in
|
|
||||||
Korean as an entity-defined portion of a virtual domain name in
|
|
||||||
Korean, which is converted into `segi' in English, the corresponding
|
|
||||||
entity-defined portion of an actual domain name in English. More
|
|
||||||
specifically, the phonemes represented by the characters consisting
|
|
||||||
of `??' in Korean have the same sounds as the phonemes represented
|
|
||||||
by the characters consisting of `segi' in English. In the local
|
|
||||||
context, `??' in Korean is clearly easier to remember and type and
|
|
||||||
more intuitive and meaningful than `segi' in English.
|
|
||||||
|
|
||||||
An entity-defined portion of a virtual domain name in Korean, `??',
|
|
||||||
is transliterated into `yahoo' in English, since the phonemes
|
|
||||||
represented by the characters consisting of `??' in Korean have the
|
|
||||||
same sounds as the phonemes represented by the characters consisting
|
|
||||||
of `yahoo' in English. That is, `??' in Korean is pronounced as the
|
|
||||||
same as `yahoo' in English, and so, it is easy for Korean-speaking
|
|
||||||
people to deduce `??' in Korean as the virtual equivalent of
|
|
||||||
`yahoo' in English. VIDN allows using virtual domain names in a local
|
|
||||||
language for domain names whose originals are in the local language,
|
|
||||||
e.g., `??' in Korean, as well as domain names whose originals are
|
|
||||||
in English, e.g., `??' in Korean. In this way, VIDN can make domain
|
|
||||||
names truly international, allowing the same domain names to be used
|
|
||||||
both in English and local languages.
|
|
||||||
|
|
||||||
The coded portions of domain names such as organization codes,
|
|
||||||
geographic codes and country codes, can also be transliterated from a
|
|
||||||
local language into English, using the phonemes of the two languages
|
|
||||||
as a medium. For example, seven generic organization codes in English,
|
|
||||||
`com', `edu', `gov', `int', `mil', `net', and `org', can be
|
|
||||||
transliterated from `?', `??', `??', `??', `?', `??', `??' in
|
|
||||||
Korean, respectively, which can be used as the corresponding
|
|
||||||
organization codes of virtual domain names in Korean. Based upon its
|
|
||||||
meaning in English, each coded portion of actual domain names also
|
|
||||||
can be pre-assigned a virtual equivalent word or code in a local
|
|
||||||
language. For example, seven generic organization codes in English,
|
|
||||||
`com', `edu', `gov', `int', `mil', `net', and `org', can be pre-
|
|
||||||
assigned `??' (meaning `commercial' in Korean), `??' (meaning
|
|
||||||
`education' in Korean), `??' (meaning `government' in Korean),
|
|
||||||
`??' (meaning `international' in Korean), `??' (meaning `military'
|
|
||||||
in Korean), `??' (meaning `network' in Korean), and `??' (meaning
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
`organization' in Korean), respectively, which can be used as the
|
|
||||||
corresponding organization codes of virtual domain names in Korean.
|
|
||||||
|
|
||||||
Since VIDN uses the phonemes of a local language and English as a
|
|
||||||
medium of the transliteration, it does not create such complexities
|
|
||||||
as other conversion methods based upon semantics do. Further, most
|
|
||||||
languages have a small number of phonemes. For example, Korean
|
|
||||||
language has nineteen consonant phonemes and twenty-one vowel
|
|
||||||
phonemes, and English language has twenty-four consonant phonemes and
|
|
||||||
twenty vowel phonemes. Each phoneme of Korean language can be matched
|
|
||||||
with a phoneme of English language that has the same or proximate
|
|
||||||
sound, and vice versa.
|
|
||||||
|
|
||||||
Some characters or sets of characters of a language may represent
|
|
||||||
more than one phoneme. Also, some phonemes of a language may be
|
|
||||||
represented by more than one character or set of characters. But
|
|
||||||
these variations usually occur in particular situations, and so, VIDN
|
|
||||||
incorporates the special provisions to deal with such variations. In
|
|
||||||
addition, not every character or set of characters in a local
|
|
||||||
language may be neatly transliterated into only one character or set
|
|
||||||
of characters in English. In practice, people often transliterate the
|
|
||||||
same word in a local language differently into English or vice versa.
|
|
||||||
VIDN also incorporates the provisions to deal with such variations
|
|
||||||
caused by common usages or idiomatic expressions. Because of these
|
|
||||||
variations, however, it is probable for one virtual domain name
|
|
||||||
entered in a local language to result in more than one actual domain
|
|
||||||
name in English.
|
|
||||||
|
|
||||||
VIDN includes a coding scheme in order to make each virtual domain
|
|
||||||
name entered in a local language correspond to exactly one actual
|
|
||||||
domain name in English. In this coding scheme, a unique code is pre-
|
|
||||||
assigned to one of the corresponding actual domain names in English
|
|
||||||
for each virtual domain name to be entered in a local language. The
|
|
||||||
code is kept somewhere at the server host that has the actual domain
|
|
||||||
name in English, for example, in the main HTML document at the server
|
|
||||||
host, so that VIDN can check the code. VIDN also generates the same
|
|
||||||
unique code whenever the corresponding virtual domain name is entered
|
|
||||||
in user applications. Then, VIDN checks whether the code at each
|
|
||||||
server host matches with the code generated in user applications. If
|
|
||||||
one of the server hosts has the code that matches with the code
|
|
||||||
generated in user applications, VIDN recognizes that the virtual
|
|
||||||
domain name entered by the user corresponds only to the actual domain
|
|
||||||
name of that server host, and connects the user host to the server
|
|
||||||
host. The domain names of the remaining server hosts that do not have
|
|
||||||
the matching code may be listed to the user as alternative sites. For
|
|
||||||
security purpose, this coding scheme may use an encryption technique.
|
|
||||||
|
|
||||||
For example, `??.?', a virtual domain name entered in Korean, may
|
|
||||||
result in four corresponding domain names in English including
|
|
||||||
`jungang.com', `joongang.com,' `chungang.com', and `choongang.com',
|
|
||||||
since the phonemes represented by characters consisting of `??.?'
|
|
||||||
in Korean can have the same or almost the same sounds as the phonemes
|
|
||||||
represented by characters consisting of `jungang.com',
|
|
||||||
`joongang.com,' `chungang.com', or `choongang.com' in English. In
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
this case, we assume that the server host with its domain name
|
|
||||||
`jungang.com' has the pre-assigned code that matches with the code
|
|
||||||
generated when `??.?' in Korean is entered in user applications.
|
|
||||||
Then, the user host is connected to this server host, and the other
|
|
||||||
server hosts may be listed to the user as alternative sites so that
|
|
||||||
the user can try them.
|
|
||||||
|
|
||||||
The process of this coding scheme that makes each virtual domain name
|
|
||||||
in a local language correspond to only one actual domain name in
|
|
||||||
English, can be depicted as:
|
|
||||||
|
|
||||||
+---------------------------------+
|
|
||||||
| User |
|
|
||||||
+---------------------------------+
|
|
||||||
| |
|
|
||||||
+----------------|-----------------------|------------------+
|
|
||||||
| v v |
|
|
||||||
| +---------------------+ +-----------------------+ |
|
|
||||||
| | Virtual domain name | | Potential domain names| |
|
|
||||||
| | in a local language |---->| in English | |
|
|
||||||
| | e.g., `??.?' | | e.g., `jungang.com' | |
|
|
||||||
| | (code: 297437)| | `joongang.com' | |
|
|
||||||
| | | | `chungang.com' | |
|
|
||||||
| | | | `choongang.com' | |
|
|
||||||
| +---------------------+ +-----------------------+ |
|
|
||||||
| User application | |
|
|
||||||
+----------------------------------------|------------------+
|
|
||||||
^ |
|
|
||||||
| | Code check by VIDN
|
|
||||||
Connection to | | +-- `jungang.com'
|
|
||||||
the server host | | | (code: 297437)
|
|
||||||
`jungang.com' | | |-- `joongang.com'
|
|
||||||
| |----+ (not active)
|
|
||||||
| | |-- `chungang.com'
|
|
||||||
| | | (code: 381274)
|
|
||||||
| DNS request and | +-- `choongang.com'
|
|
||||||
| response | (not active)
|
|
||||||
+-----------------------+
|
|
||||||
|
|
||||||
Since VIDN converts separately the entity-defined portions and the
|
|
||||||
coded portions of a virtual domain name, it preserves the current
|
|
||||||
syntax of domain names, that is, the hierarchical dotted notation,
|
|
||||||
which Internet users are familiar with. Also, VIDN allows using a
|
|
||||||
virtual domain name mixed with characters in a local language and
|
|
||||||
English as the user wishes to, since the conversion takes place on
|
|
||||||
each individual portion of the domain name and each individual
|
|
||||||
character or set of characters of the portion.
|
|
||||||
|
|
||||||
While VIDN preserves the hierarchical dotted notation of current
|
|
||||||
domain names, the principles of VIDN are also applicable to domain
|
|
||||||
names in other possible notations such as those in a natural language
|
|
||||||
(e.g., `microsoft windows' rather than `windows.microsoft.com'). Also,
|
|
||||||
the principles of VIDN can be applied into other identifiers used on
|
|
||||||
the Internet, such as user IDs of e-mail addresses, names of
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
directories and folders, names of web pages and files, keywords used
|
|
||||||
in search engines and directory services, and so on, allowing them to
|
|
||||||
be used interchangeably in a local language and English, without
|
|
||||||
creating additional identifiers in the local language. The conversion
|
|
||||||
of VIDN can be done between any two languages interchangeably. Thus,
|
|
||||||
even when the DNS accepts and registers domain names in other
|
|
||||||
languages in addition to English, VIDN can allow using the same
|
|
||||||
domain names in any two languages by converting virtual domain names
|
|
||||||
in one language into actual domain names in another language.
|
|
||||||
|
|
||||||
|
|
||||||
4.3. Implementation
|
|
||||||
|
|
||||||
In a preferred arrangement, VIDN is implemented in applications at
|
|
||||||
the user host. That is, the conversion of virtual domain names in a
|
|
||||||
local language into the corresponding actual domain names in English
|
|
||||||
takes place at the user host before DNS requests are sent. Thus,
|
|
||||||
neither a special encoding nor a separate lookup service is needed to
|
|
||||||
implement VIDN. VIDN is also modularized with each module being used
|
|
||||||
for conversion of virtual domain names in one local language into the
|
|
||||||
corresponding actual domain names in English. A user needs only the
|
|
||||||
module for conversion of his or her preferred local language into
|
|
||||||
English. Also, VIDN can be implemented at a central server host or a
|
|
||||||
cluster of local server hosts. A central server with all the language
|
|
||||||
modules of VIDN can provide the conversion service for all local
|
|
||||||
languages, or a cluster of local server hosts can share the
|
|
||||||
conversion service. In the latter case, each local server host with a
|
|
||||||
language module or a set of language modules can provide the
|
|
||||||
conversion service for the respective local language or set of local
|
|
||||||
languages used in a certain region.
|
|
||||||
|
|
||||||
Because of its small size, VIDN can be easily embedded into
|
|
||||||
applications software such as web browser, e-mail software, ftp
|
|
||||||
system, and so on at the user host, or it can work as an add-on
|
|
||||||
program to such software. In either case, the only requirement on the
|
|
||||||
part of the user is to install VIDN or software embedding VIDN at the
|
|
||||||
user host. Using virtual domain names in a local language in
|
|
||||||
accordance with the principles of VIDN is very intuitive to those who
|
|
||||||
speak the local language. The only requirement on the part of the
|
|
||||||
entity whose server host provides Internet services to user hosts is
|
|
||||||
to have an actual domain name in English into which a virtual domain
|
|
||||||
name in a local language is neatly transliterated in accordance with
|
|
||||||
the principles of VIDN, and to have a pre-assigned code kept at its
|
|
||||||
server host for one-to-one matching of its actual domain name and a
|
|
||||||
virtual domain name to be used by users. Most entities in regions
|
|
||||||
where English is not widely spoken already have such domain names in
|
|
||||||
English. Finally, there is nothing to change on the part of the DNS,
|
|
||||||
since VIDN uses the current DNS as it is.
|
|
||||||
|
|
||||||
Taken together, the features of VIDN can meet all the requirement of
|
|
||||||
internationalized domain names as described in Wenzel and Seng [2],
|
|
||||||
with respect to compatibility and interoperability,
|
|
||||||
internationalization, canonicalization, and operating issues. Given
|
|
||||||
the fact that different methods toward internationalized domain names
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
confuse users, as already observed in some regions where some of
|
|
||||||
these methods have already been commercialized, e.g., Korea, it is
|
|
||||||
important to find and implement the most effective solution to
|
|
||||||
internationalized domain names as soon as possible.
|
|
||||||
|
|
||||||
|
|
||||||
4.4. Testing results
|
|
||||||
|
|
||||||
A testing version of VIDN has been developed for Korean-English
|
|
||||||
conversion as a web browser add-on program. The program contains all
|
|
||||||
the features described in this document except the coding scheme.
|
|
||||||
While the final version of the program is planned to include the
|
|
||||||
coding scheme, the testing version lists all the domain names in
|
|
||||||
English that correspond to a virtual domain name entered in Korean so
|
|
||||||
that a user can choose one. The testing results of a sample of
|
|
||||||
randomly selected domain names used in Korea show that the program
|
|
||||||
can cover more than ninety percent of the sample. The results
|
|
||||||
indicate that more than ninety percent of web sites in Korea can be
|
|
||||||
accessed using virtual domain names in Korean without creating
|
|
||||||
additional domain names in Korean. The remaining ten percent of
|
|
||||||
domain names are mostly those that contain acronyms, abbreviations or
|
|
||||||
initials. With improvement of its knowledge of transliteration, the
|
|
||||||
final version of the program is expected to cover most domain names
|
|
||||||
used in Korea.
|
|
||||||
|
|
||||||
|
|
||||||
5. Security considerations
|
|
||||||
|
|
||||||
Because VIDN uses the DNS as it is, it inherits the same security
|
|
||||||
considerations as the DNS.
|
|
||||||
|
|
||||||
|
|
||||||
6. Intellectual property considerations
|
|
||||||
|
|
||||||
It is the intention of DualName, Inc. to submit the VIDN method and
|
|
||||||
other elements of VIDN software to IETF for review, comment or
|
|
||||||
standardization.
|
|
||||||
|
|
||||||
DualName has applied for one or more patents on the technology
|
|
||||||
related to virtual domain name software and virtual email software.
|
|
||||||
If a standard is adopted by IETF and any patents are issued to
|
|
||||||
DualName with claims that are necessary for practicing the standard,
|
|
||||||
DualName is prepared to make available, upon written request, a non-
|
|
||||||
exclusive license under fair, reasonable and non-discriminatory terms
|
|
||||||
and condition, based on the principle of reciprocity, consistent with
|
|
||||||
established practice.
|
|
||||||
|
|
||||||
|
|
||||||
7. References
|
|
||||||
|
|
||||||
1 Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
|
||||||
Levels", BCP 14, RFC 2119, March 1997
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Virtually Internationalized Domain Names November 2000
|
|
||||||
|
|
||||||
2 Wenzel, Z. and Seng, J. (Editors), "Requirements of
|
|
||||||
Internationalized Domain Names," draft-ietf-idn-requirements-
|
|
||||||
03.txt, August 2000
|
|
||||||
|
|
||||||
|
|
||||||
8. Author's address
|
|
||||||
|
|
||||||
Sung Jae Shim
|
|
||||||
DualName, Inc.
|
|
||||||
3600 Wilshire Boulevard, Suite 1814
|
|
||||||
Los Angeles, California 90010
|
|
||||||
USA
|
|
||||||
Email: shimsungjae@dualname.com
|
|
||||||
|
|
505
doc/draft/draft-ietf-idn-vidn-01.txt
Normal file
505
doc/draft/draft-ietf-idn-vidn-01.txt
Normal file
@@ -0,0 +1,505 @@
|
|||||||
|
IETF IDN Working Group Sung Jae Shim
|
||||||
|
Internet Draft DualName, Inc.
|
||||||
|
Document: draft-ietf-idn-vidn-01.txt 2 March 2001
|
||||||
|
Expires: 2 September 2001
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Virtually Internationalized Domain Names (VIDN)
|
||||||
|
|
||||||
|
|
||||||
|
Status of this Memo
|
||||||
|
|
||||||
|
This document is an Internet-Draft and is in full conformance with all
|
||||||
|
provisions of Section 10 of RFC2026.
|
||||||
|
|
||||||
|
Internet-Drafts are working documents of the Internet Engineering Task Force
|
||||||
|
(IETF), its areas, and its working groups. Note that other groups may also
|
||||||
|
distribute working documents as Internet-Drafts.
|
||||||
|
|
||||||
|
Internet-Drafts are draft documents valid for a maximum of six months and may be
|
||||||
|
updated, replaced, or obsoleted by other documents at any time. It is
|
||||||
|
inappropriate to use Internet-Drafts as reference material or to cite them other
|
||||||
|
than as "work in progress."
|
||||||
|
|
||||||
|
The list of current Internet-Drafts can be accessed at
|
||||||
|
http://www.ietf.org/ietf/1id-abstracts.txt
|
||||||
|
|
||||||
|
The list of Internet-Draft Shadow Directories can be accessed at
|
||||||
|
http://www.ietf.org/shadow.html.
|
||||||
|
|
||||||
|
|
||||||
|
1. Abstract
|
||||||
|
|
||||||
|
This document proposes a method that enables domain names to be used in both
|
||||||
|
local and English scripts, as a directory-search solution at an upper layer
|
||||||
|
above the DNS. The method first converts virtual domain names typed in local
|
||||||
|
scripts into the corresponding domain names in English scripts that comply with
|
||||||
|
the DNS, using the knowledge of transliteration between local and English
|
||||||
|
scripts. Then, the method searches for and displays domain names in English
|
||||||
|
scripts that are active on the Internet so that the user can choose any of them.
|
||||||
|
The conversion takes place automatically and transparently in the user's
|
||||||
|
applications before DNS queries are sent, and so, the method does not make any
|
||||||
|
change to the DNS nor require separate name servers.
|
||||||
|
|
||||||
|
|
||||||
|
2. Conventions and definitions used in this document
|
||||||
|
|
||||||
|
The key words "REQUIRED" and "MAY" in this document are to be interpreted as
|
||||||
|
described in RFC-2119 [1].
|
||||||
|
|
||||||
|
A "host" is a computer or device attached to the Internet. A "user host" is a
|
||||||
|
computer or device with which a user is connected to the Internet, and a "user"
|
||||||
|
is a person who uses a user host. A "server host" is a computer or device that
|
||||||
|
provides services to user hosts.
|
||||||
|
|
||||||
|
An "entity" is an organization or individual that has a domain name registered
|
||||||
|
with the DNS.
|
||||||
|
|
||||||
|
A "local language" is a language other than English language that a user prefers
|
||||||
|
to use in a local context. "Local scripts" are scripts of a local language and
|
||||||
|
"English scripts" are scripts of English language.
|
||||||
|
|
||||||
|
A "virtual domain name" is a domain name in local scripts, and it is not
|
||||||
|
registered with the DNS but used for the convenience of users. An "English
|
||||||
|
domain name" is a domain name in English scripts. A "domain name" refers to an
|
||||||
|
English domain name that complies with the DNS, unless specified otherwise.
|
||||||
|
|
||||||
|
A "coded portion" is a pre-coded portion of a domain name (e.g., generic codes
|
||||||
|
including 'com', 'edu', 'gov', 'int', 'mil', 'net', 'org', and country codes
|
||||||
|
such as 'kr', 'jp', 'cn', and so on). An "entity-defined portion" is a portion
|
||||||
|
of a domain name, which is defined by the entity that holds the domain name
|
||||||
|
(e.g., host name, organization name, server name, and so on).
|
||||||
|
|
||||||
|
The method proposed in this document is called "virtually internationalized
|
||||||
|
domain names (VIDN)," as it enables domain names in English scripts to be used
|
||||||
|
virtually in local scripts.
|
||||||
|
|
||||||
|
A number of Korean-language characters are used in the original of this document
|
||||||
|
for examples, which is available from the author upon request. The software used
|
||||||
|
for Internet-Drafts does not allow using multilingual characters other than
|
||||||
|
ASCII characters. Thus, this document may not display Korean-language characters
|
||||||
|
properly, although it may be comprehensible without the examples using Korean-
|
||||||
|
language characters. Also, when you open the original of this document, please
|
||||||
|
select your view encoding type to Korean for Korean-language characters to be
|
||||||
|
displayed properly.
|
||||||
|
|
||||||
|
|
||||||
|
3. Introduction
|
||||||
|
|
||||||
|
Domain names are valuable to Internet users as a main identifier of entities and
|
||||||
|
resources on the Internet. The DNS allows using only English scripts in naming
|
||||||
|
hosts or clusters of hosts on the Internet. More specifically, the DNS uses only
|
||||||
|
the basic Latin alphabets (case-insensitive), the decimal digits (0-9) and the
|
||||||
|
hyphen (-) in domain names. But there is a growing need for internationalized
|
||||||
|
domain names in local scripts. Recognizing this need, various methods have been
|
||||||
|
proposed to use local scripts in domain names. But to date, no method appears to
|
||||||
|
meet all the requirements of internationalized domain names as described in
|
||||||
|
Wenzel and Seng [2].
|
||||||
|
|
||||||
|
A group of earlier methods tries to put internationalized domain names in local
|
||||||
|
scripts inside some parts of the overall DNS, using special encoding schemes of
|
||||||
|
Universal Character Set (UCS). But these methods put too much of a burden on the
|
||||||
|
DNS, requiring a great deal of work for transition and update of the DNS
|
||||||
|
components and the applications working with the DNS. Another group of earlier
|
||||||
|
methods tries to build separate directory services for internationalized domain
|
||||||
|
names or keywords in local scripts. But these methods also require complex
|
||||||
|
implementation efforts, duplicating much of the work already done for the DNS.
|
||||||
|
Both the groups of earlier methods require creating internationalized domain
|
||||||
|
names or keywords in local scripts from scratch, which is a costly and lengthy
|
||||||
|
process on the parts of the DNS and Internet users. Further, domain names or
|
||||||
|
keywords created in local scripts are usable only by those who know the local
|
||||||
|
scripts, and so, they may segregate the Internet into many groups of different
|
||||||
|
sets of local scripts that are less universal than English scripts.
|
||||||
|
|
||||||
|
VIDN intends to provide a more immediate and less costly solution to
|
||||||
|
internationalized domain names than earlier methods. VIDN does not make any
|
||||||
|
change to the DNS nor require creating additional domain names in local scripts.
|
||||||
|
VIDN takes notice of the fact that many domain names currently used in regions
|
||||||
|
where English scripts are not widely used have their entity-defined portions
|
||||||
|
consisting of English scripts as transliterated from the respective local
|
||||||
|
scripts. Using this knowledge of transliteration between local and English
|
||||||
|
scripts, VIDN converts virtual domain names typed in local scripts into the
|
||||||
|
corresponding domain names in English scripts that comply with the DNS. In this
|
||||||
|
way, VIDN enables the same domain names to be used not only in English scripts
|
||||||
|
as usual but also in local scripts, without creating additional domain names in
|
||||||
|
local scripts.
|
||||||
|
|
||||||
|
|
||||||
|
4. VIDN method
|
||||||
|
|
||||||
|
4.1. Objectives
|
||||||
|
|
||||||
|
Earlier methods of internationalized domain names try to create domain names or
|
||||||
|
keywords in local scripts one way or another in addition to existing domain
|
||||||
|
names in English scripts, and put them inside or outside the DNS, using special
|
||||||
|
encoding schemes or lookup services. These methods require a lengthy and costly
|
||||||
|
process of creating domain names in local scripts and updating the DNS
|
||||||
|
components and applications. Even when they are successfully implemented, these
|
||||||
|
methods have a risk of localizing the Internet by segregating it into groups of
|
||||||
|
different sets of local scripts that are less universal than English scripts and
|
||||||
|
so diminishing the international scope of the Internet. Further, these methods
|
||||||
|
may cause more problems and disputes on copyrights, trademarks, and so on, in
|
||||||
|
local contexts than those that we experience with current domain names in
|
||||||
|
English scripts.
|
||||||
|
|
||||||
|
VIDN intends to provide a solution to the problems of earlier methods of
|
||||||
|
internationalized domain names. VIDN enables the same domain names to be used in
|
||||||
|
both English scripts as usual and local scripts, and so, there is no need to
|
||||||
|
create domain names in local scripts in addition to domain names in English
|
||||||
|
scripts. VIDN works automatically and transparently in applications at user
|
||||||
|
hosts before DNS requests are sent, and so, there is no need to make any change
|
||||||
|
to the DNS or to have additional name servers. For these reasons as well as
|
||||||
|
others, VIDN can be implemented more immediately with less cost than other
|
||||||
|
methods of internationalized domain names.
|
||||||
|
|
||||||
|
4.2. Description
|
||||||
|
|
||||||
|
It is important to note that most domain names used in regions where English
|
||||||
|
scripts are not widely used have their entity-defined portions consisting of
|
||||||
|
English scripts as transliterated from local scripts. Of course, there are many
|
||||||
|
domain names in those regions that do not follow this kind of transliteration
|
||||||
|
between local and English scripts. In such case, new domain names in English
|
||||||
|
scripts need to be created following this transliteration, but the number would
|
||||||
|
be minimal, compared to the number of internationalized domain names in local
|
||||||
|
scripts to be created and registered under other methods.
|
||||||
|
|
||||||
|
The English scripts transliterated from local scripts do not have any meanings
|
||||||
|
in English language, but their originals in local scripts before the
|
||||||
|
transliteration have some meanings in the respective local language, usually
|
||||||
|
indicating organization names, brand names, trademarks, and so on. VIDN enables
|
||||||
|
to use these original local scripts as the entity-defined portions of virtual
|
||||||
|
domain names in local scripts, by transliterating them into the corresponding
|
||||||
|
entity-defined portions of actual domain names in English scripts. In this way,
|
||||||
|
VIDN enables the same domain names in English scripts to be used virtually in
|
||||||
|
local scripts without actually creating domain names in local scripts.
|
||||||
|
|
||||||
|
As domain names in English scripts overlay IP addresses, so virtual domain names
|
||||||
|
in local scripts do actual domain names in English scripts. The relationship
|
||||||
|
between virtual domain names in local scripts and actual domain names in English
|
||||||
|
scripts can be depicted as:
|
||||||
|
|
||||||
|
+---------------------------------+
|
||||||
|
| User |
|
||||||
|
+---------------------------------+
|
||||||
|
| |
|
||||||
|
+----------------|-----------------------|------------------+
|
||||||
|
| v (Transliteration) v |
|
||||||
|
| +---------------------+ | +-----------------------+ |
|
||||||
|
| | Virtual domain name | | | Actual domain name | |
|
||||||
|
| | in local scripts |--+->| in English scripts | |
|
||||||
|
| +---------------------+ +-----------------------+ |
|
||||||
|
| User application | |
|
||||||
|
+----------------------------------------|------------------+
|
||||||
|
v
|
||||||
|
DNS requests
|
||||||
|
|
||||||
|
VIDN uses the phonemes of local and English scripts as a medium in
|
||||||
|
transliterating the entity-defined portions of virtual domain names in local
|
||||||
|
scripts into those of actual domain names in English scripts. This process of
|
||||||
|
transliteration can be depicted as:
|
||||||
|
|
||||||
|
Local scripts English scripts
|
||||||
|
+----------------------------+ +-----------------------------+
|
||||||
|
| Characters ----> Phonemes -----------> Phonemes ----> Characters |
|
||||||
|
| | | | | | |
|
||||||
|
| | | | | | |
|
||||||
|
| (Inverse of transcription) | Match | (Transcription) |
|
||||||
|
+----------------------------+ +-----------------------------+
|
||||||
|
| ^
|
||||||
|
| (Transliteration) |
|
||||||
|
+------------------------------------+
|
||||||
|
|
||||||
|
First, each entity-defined portion of a virtual domain name typed in local
|
||||||
|
scripts is decomposed into individual characters or sets of characters so that
|
||||||
|
each individual character or set of characters can represent an individual
|
||||||
|
phoneme of the local language. This is the inverse of transcription of phonemes
|
||||||
|
into characters. Second, each individual phoneme of the local language is
|
||||||
|
matched with an equivalent phoneme of English language that has the same or most
|
||||||
|
proximate sound. Third, each phoneme of English language is transcribed into the
|
||||||
|
corresponding character or set of characters in English language. Finally, all
|
||||||
|
the characters or sets of characters converted into English scripts are united
|
||||||
|
to compose the corresponding entity-defined portion of an actual domain name in
|
||||||
|
English scripts.
|
||||||
|
|
||||||
|
For example, a word in Korean language, '<27><><EFBFBD><EFBFBD>' that means 'century' in English
|
||||||
|
language, is transliterated into 'segi' in English scripts, and so, the entity
|
||||||
|
whose name contains '<27><><EFBFBD><EFBFBD>' in Korean language may have an entity-defined portion
|
||||||
|
of its domain name as 'segi' in English scripts. VIDN enables to use '<27><><EFBFBD><EFBFBD>' as
|
||||||
|
an entity-defined portion of a virtual domain name in Korean scripts, which is
|
||||||
|
converted into 'segi,' the corresponding entity-defined portion of an actual
|
||||||
|
domain name in English scripts. In other words, the phonemes represented by the
|
||||||
|
characters consisting of '<27><><EFBFBD><EFBFBD>' in Korean scripts have the same sounds as the
|
||||||
|
phonemes represented by the characters consisting of 'segi' in English scripts.
|
||||||
|
In the local context, '<27><><EFBFBD><EFBFBD>' in Korean scripts is clearly easier to remember and
|
||||||
|
type and more intuitive and meaningful than 'segi' in English scripts.
|
||||||
|
|
||||||
|
An entity-defined portion of a virtual domain name in Korean scripts, '<27><><EFBFBD><EFBFBD>', is
|
||||||
|
transliterated into 'yahoo' in English scripts, since the phonemes represented
|
||||||
|
by the characters consisting of '<27><><EFBFBD><EFBFBD>' in Korean scripts have the same sounds as
|
||||||
|
the phonemes represented by the characters consisting of 'yahoo' in English
|
||||||
|
scripts. That is, '<27><><EFBFBD><EFBFBD>' in Korean scripts is pronounced as the same as 'yahoo'
|
||||||
|
in English scripts, and so, it is easy for Korean-speaking people to deduce '<27><>
|
||||||
|
<EFBFBD><EFBFBD>' in Korean scripts as the virtual equivalent of 'yahoo' in English scripts.
|
||||||
|
VIDN enables to use virtual domain names in local scripts for domain names whose
|
||||||
|
originals are in local scripts, e.g., '<27><><EFBFBD><EFBFBD>' in Korean scripts, as well as
|
||||||
|
domain names whose originals are in English scripts, e.g., '<27><><EFBFBD><EFBFBD>' in Korean
|
||||||
|
scripts. In this way, VIDN is able to make domain names truly international,
|
||||||
|
allowing the same domain names to be used both in English and local scripts.
|
||||||
|
|
||||||
|
The coded portions of domain names such as generic codes and country codes can
|
||||||
|
also be transliterated from local scripts into English scripts, using their
|
||||||
|
phonemes as a medium. For example, seven generic codes in English scripts, 'com',
|
||||||
|
'edu', 'gov', 'int', 'mil', 'net', and 'org', can be transliterated from '<27><>', '
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD>', '<27><>˫', '<27><>', '<27><>˫', '<27><><EFBFBD><EFBFBD>' in Korean scripts, respectively,
|
||||||
|
which can be used as the corresponding generic codes of virtual domain names in
|
||||||
|
Korean scripts. Based upon its meaning in English language, each coded portion
|
||||||
|
of actual domain names also can be pre-assigned a virtual equivalent word or
|
||||||
|
code in local scripts. For example, seven generic codes in English scripts,
|
||||||
|
'com', 'edu', 'gov', 'int', 'mil', 'net', and 'org', can be pre-assigned '<27><><EFBFBD><EFBFBD>'
|
||||||
|
(meaning 'commercial' in Korean language), '<27>Ϙ<EFBFBD>' (meaning 'education' in Korean
|
||||||
|
language), '<27><><EFBFBD><EFBFBD>' (meaning 'government' in Korean language), '<27><>ª' (meaning
|
||||||
|
'international' in Korean language), '<27><><EFBFBD><EFBFBD>' (meaning 'military' in Korean
|
||||||
|
language), '<27><>˫' (meaning 'network' in Korean language), and '<27><>ȭ' (meaning
|
||||||
|
'organization' in Korean language), respectively, which can be used as the
|
||||||
|
corresponding generic codes of virtual domain names in Korean scripts.
|
||||||
|
|
||||||
|
VIDN does not create such complexities as other conversion methods based upon
|
||||||
|
semantics do, since it uses phonemes as a medium of transliteration between
|
||||||
|
local and English scripts. Further, most languages have a small number of
|
||||||
|
phonemes. For example, Korean language has nineteen consonant phonemes and
|
||||||
|
twenty-one vowel phonemes, and English language has twenty-four consonant
|
||||||
|
phonemes and twenty vowel phonemes. Each phoneme of Korean language can be
|
||||||
|
matched with a phoneme of English language that has the same or proximate sound,
|
||||||
|
and vice versa.
|
||||||
|
|
||||||
|
Some characters or sets of characters may represent more than one phoneme. Some
|
||||||
|
phonemes may be represented by more than one character or set of characters.
|
||||||
|
Also, not every character or set of characters in local scripts may be neatly
|
||||||
|
transliterated into only one character or set of characters in English scripts.
|
||||||
|
In practice, people often transliterate the same local scripts differently into
|
||||||
|
English scripts or vice versa. VIDN incorporates the provisions to deal with
|
||||||
|
those variations that usually occur in particular situations as well as those
|
||||||
|
variations that are caused by common usage or idiomatic expressions. More
|
||||||
|
fundamentally, VIDN uses phonemes, which are very universal across different
|
||||||
|
languages, as a medium of transliteration rather than following a certain set of
|
||||||
|
transliteration rules that does not exist in many non-English-speaking countries
|
||||||
|
nor is followed by many non-English-speaking people.
|
||||||
|
|
||||||
|
One virtual domain name typed in local scripts may be converted into more than
|
||||||
|
one possible domain name in English scripts. In such case, VIDN can search for
|
||||||
|
and displays only those domain names in English scripts that are active on the
|
||||||
|
Internet, so that the user can choose any of them. Further, VIDN can be used as
|
||||||
|
a directory-search solution at an upper layer above the DNS. That is, the user
|
||||||
|
can use VIDN to query a phoneme-based domain name request in local scripts,
|
||||||
|
receive one or more corresponding domain names in English or ASCII-compatible
|
||||||
|
scripts preferably, choose one based upon the results of that search, and make
|
||||||
|
the final DNS request using any protocol or method to be chosen for
|
||||||
|
internationalized domain names. In this regard of directory search, VIDN uses
|
||||||
|
one-to-many map between virtual domain names in local scripts and actual domain
|
||||||
|
names in English scripts.
|
||||||
|
|
||||||
|
VIDN needs the one-to-many mapping and subsequent multiple DNS lookups only at
|
||||||
|
the first query of each virtual domain name typed in local scripts at the user
|
||||||
|
host. After the first query, the virtual domain name is set to the domain name
|
||||||
|
in English scripts that has been chosen at the first query. Any subsequent
|
||||||
|
queries with the same virtual domain name generate only one query with the
|
||||||
|
selected domain name in English scripts. Once the use selects one possible
|
||||||
|
domain name in English scripts from the list, VIDN remembers the user's
|
||||||
|
selection and directs the user to the same domain name at his or her subsequent
|
||||||
|
queries with that virtual domain name. In this way, VIDN can generate less
|
||||||
|
traffic on the DNS, while providing faster, easier, and simpler navigation on
|
||||||
|
the Internet to the user, using local scripts.
|
||||||
|
|
||||||
|
Utilizing a coding scheme, VIDN is also capable of making each virtual domain
|
||||||
|
name typed in local scripts correspond to exactly one actual domain name in
|
||||||
|
English scripts. In this coding scheme, a unique code such as the Unicode or
|
||||||
|
hexadecimal code represented by the virtual domain name, is pre-assigned to one
|
||||||
|
of the corresponding domain names in English scripts and stored in the
|
||||||
|
respective server host, so that both the user host and the server host can
|
||||||
|
support and understand the code. Then, VIDN checks whether the code at each
|
||||||
|
server host matches with the code generated at the user host. If one of the
|
||||||
|
servers stores the code that matches with the code generated at the user host,
|
||||||
|
the virtual domain name typed at the user host is recognized as corresponding
|
||||||
|
only to the domain name of that server host, and the user host is connected to
|
||||||
|
the server host. The domain names of the remaining server hosts that do not have
|
||||||
|
the matching code are also displayed at the user host as alternative sites.
|
||||||
|
|
||||||
|
Because a unique code is assigned to only one of the domain names in English
|
||||||
|
scripts, it does not cause any domain name squatting problem beyond what we
|
||||||
|
experience with current domain names in English scripts. Unique codes do not
|
||||||
|
need to be stored in any specific format, that is, they can be embedded in HTML,
|
||||||
|
XML, WML, and so on, so that the user host can interpret the retrieved code
|
||||||
|
correctly. Likewise, unique codes do not require any specific intermediate
|
||||||
|
transport protocol such as TCP/IP. The only requirement is that the protocol
|
||||||
|
must be understood among all participating user hosts and server hosts. For
|
||||||
|
security purpose, this coding scheme may use an encryption technique.
|
||||||
|
|
||||||
|
For example, '<><C29E>.<2E><>', a virtual domain name typed in Korean scripts, may
|
||||||
|
result in four corresponding domain names in English scripts, including
|
||||||
|
'jungang.com', 'joongang.com,' 'chungang.com', and 'choongang.com', since the
|
||||||
|
phonemes represented by characters consisting of '<><C29E>.<2E><>' in Korean scripts can
|
||||||
|
have the same or almost the same sounds as the phonemes represented by
|
||||||
|
characters consisting of 'jungang.com', 'joongang.com,' 'chungang.com', or
|
||||||
|
'choongang.com' in English scripts. In this case, we assume that the server host
|
||||||
|
with its domain name 'jungang.com' has the pre-assigned code that matches with
|
||||||
|
the code generated when '<><C29E>.<2E><>' in Korean scripts is entered in user
|
||||||
|
applications. Then, the user host is connected to this server host, and the
|
||||||
|
other server hosts may be listed to the user as alternative sites so that the
|
||||||
|
user can try them.
|
||||||
|
|
||||||
|
The process of this coding scheme that makes each virtual domain name in local
|
||||||
|
scripts correspond to only one actual domain name in English scripts, can be
|
||||||
|
depicted as:
|
||||||
|
|
||||||
|
+---------------------------------+
|
||||||
|
| User |
|
||||||
|
+---------------------------------+
|
||||||
|
| |
|
||||||
|
+----------------|-----------------------|------------------+
|
||||||
|
| v v |
|
||||||
|
| +---------------------+ +-----------------------+ |
|
||||||
|
| | Virtual domain name | | Potential domain names| |
|
||||||
|
| | in a local language |---->| in English | |
|
||||||
|
| | e.g., '<><C29E>.<2E><>' | | e.g., 'jungang.com' | |
|
||||||
|
| | (code: 297437)| | 'joongang.com' | |
|
||||||
|
| | | | 'chungang.com' | |
|
||||||
|
| | | | 'choongang.com' | |
|
||||||
|
| +---------------------+ +-----------------------+ |
|
||||||
|
| User application | |
|
||||||
|
+----------------------------------------|------------------+
|
||||||
|
^ |
|
||||||
|
| | Code check by VIDN
|
||||||
|
Connection to | | +-- 'jungang.com'
|
||||||
|
the server host | | | (code: 297437)
|
||||||
|
'jungang.com' | | |-- 'joongang.com'
|
||||||
|
| |----+ (not active)
|
||||||
|
| | |-- 'chungang.com'
|
||||||
|
| | | (code: 381274)
|
||||||
|
| DNS request and | +-- 'choongang.com'
|
||||||
|
| response | (not active)
|
||||||
|
+-----------------------+
|
||||||
|
|
||||||
|
Since VIDN converts separately the entity-defined portions and the coded
|
||||||
|
portions of a virtual domain name, it preserves the current syntax of domain
|
||||||
|
names, that is, the hierarchical dotted notation, which Internet users are
|
||||||
|
familiar with. Also, VIDN allows using a virtual domain name mixed with local
|
||||||
|
and English scripts as the user wishes to, since the conversion takes place on
|
||||||
|
each individual portion of the domain name and each individual character or set
|
||||||
|
of characters of the portion.
|
||||||
|
|
||||||
|
While VIDN preserves the hierarchical dotted notation of current domain names,
|
||||||
|
the principles of VIDN are applicable to domain names in other possible
|
||||||
|
notations such as those in a natural language (e.g., 'microsoft windows' rather
|
||||||
|
than 'windows.microsoft.com'). Also, the principles of VIDN can be applied into
|
||||||
|
other identifiers used on the Internet, such as user IDs of e-mail addresses,
|
||||||
|
names of directories and folders, names of web pages and files, keywords used in
|
||||||
|
search engines and directory services, and so on, allowing them to be used
|
||||||
|
interchangeably in local and English scripts, without creating additional
|
||||||
|
identifiers in local scripts. The conversion of VIDN can be done between any two
|
||||||
|
sets of scripts interchangeably. Thus, even when the DNS accepts and registers
|
||||||
|
domain names in other local scripts in addition to English, VIDN can allow using
|
||||||
|
the same domain names in any two sets of scripts by converting virtual domain
|
||||||
|
names in one set of scripts into actual domain names in another set of scripts.
|
||||||
|
|
||||||
|
4.3. Development and implementation
|
||||||
|
|
||||||
|
In a preferred arrangement, the development of VIDN for each set of local
|
||||||
|
scripts may be administered by one or more local standard bodies in regions
|
||||||
|
where the local scripts are widely used, for example, Korean Network Information
|
||||||
|
Center for Korean scripts, Japan Network Information Center for Japanese scripts,
|
||||||
|
and China, Hong Kong and Taiwan Network Information Centers for Chinese scripts,
|
||||||
|
with consultation with experts on phonemics and linguistics of the respective
|
||||||
|
local language and English language. Also, the unique codes for one-to-one
|
||||||
|
mapping between virtual domain names in local scripts and actual domain names in
|
||||||
|
English scripts can be administered by a central standard body like IANA.
|
||||||
|
Alternatively, the unique codes for each set of local scripts may be
|
||||||
|
administered by one or more local standard bodies in regions where the local
|
||||||
|
scripts are widely used, as with the development of VIDN.
|
||||||
|
|
||||||
|
VIDN is implemented in applications at the user host. That is, the conversion of
|
||||||
|
virtual domain names in local scripts into the corresponding actual domain names
|
||||||
|
in English scripts takes place at the user host before DNS requests are sent.
|
||||||
|
Thus, neither a special encoding nor a separate lookup service is needed to
|
||||||
|
implement VIDN. VIDN is also modularized with each module being used for
|
||||||
|
conversion of virtual domain names in one set of local scripts into the
|
||||||
|
corresponding actual domain names in English scripts. A user needs only the
|
||||||
|
module for conversion of his or her preferred set of local scripts into English
|
||||||
|
scripts. Alternatively, VIDN can be implemented at a central server host or a
|
||||||
|
cluster of local server hosts. A central server can provide the conversion
|
||||||
|
service for all sets of local scripts, or a cluster of local server hosts can
|
||||||
|
share the conversion service. In the latter case, each local server host can
|
||||||
|
provide the conversion service for one or more sets of local scripts used in a
|
||||||
|
certain region.
|
||||||
|
|
||||||
|
Because of its small size, VIDN can be easily embedded into applications
|
||||||
|
software such as web browser, e-mail software, ftp system, and so on at the user
|
||||||
|
host, or it can work as an add-on program to such software. In either case, the
|
||||||
|
only requirement on the part of the user is to install VIDN or software
|
||||||
|
embedding VIDN at the user host. Using virtual domain names in local scripts in
|
||||||
|
accordance with the principles of VIDN is very intuitive to those who use the
|
||||||
|
local scripts. The only requirement on the part of the entity whose server host
|
||||||
|
provides Internet services to user hosts is to have an actual domain name in
|
||||||
|
English scripts into which virtual domain names in local scripts are neatly
|
||||||
|
transliterated in accordance with the principles of VIDN. Most entities in
|
||||||
|
regions where English scripts are not widely used already have such domain names
|
||||||
|
in English scripts. Finally, there is nothing to change on the part of the DNS,
|
||||||
|
since VIDN uses the current DNS as it is.
|
||||||
|
|
||||||
|
Taken together, the features of VIDN can meet all the requirement of
|
||||||
|
internationalized domain names as described in Wenzel and Seng [2], with respect
|
||||||
|
to compatibility and interoperability, internationalization, canonicalization,
|
||||||
|
and operating issues. Given the fact that different methods toward
|
||||||
|
internationalized domain names confuse users, as already observed in some
|
||||||
|
regions where some of these methods have already been commercialized, e.g.,
|
||||||
|
Korea, Japan and China, it is important to find and implement the most effective
|
||||||
|
solution to internationalized domain names as soon as possible.
|
||||||
|
|
||||||
|
4.4. Current status
|
||||||
|
|
||||||
|
VIDN has been developed for Korean-English conversion as a web browser add-on
|
||||||
|
program. The program contains all the features described in this document and is
|
||||||
|
capable of listing all the domain names in English scripts that correspond to a
|
||||||
|
virtual domain name typed in Korean scripts so that a user can choose any of
|
||||||
|
them. The program can cover more than ninety percent of the sample. That is, the
|
||||||
|
results of testing indicate that more than ninety percent of web sites in Korea
|
||||||
|
can be accessed using virtual domain names in Korean scripts without creating
|
||||||
|
additional domain names in Korean scripts. The remaining ten percent of domain
|
||||||
|
names are mostly those that contain acronyms, abbreviations or initials. With
|
||||||
|
improvement of its knowledge of transliteration, the program is expected to
|
||||||
|
cover more domain names used in Korea.
|
||||||
|
|
||||||
|
5. Security considerations
|
||||||
|
|
||||||
|
Because VIDN uses the DNS as it is, it inherits the same security considerations
|
||||||
|
as the DNS.
|
||||||
|
|
||||||
|
6. Intellectual property considerations
|
||||||
|
|
||||||
|
It is the intention of DualName, Inc. to submit the VIDN method and other
|
||||||
|
elements of VIDN software to IETF for review, comment or standardization.
|
||||||
|
|
||||||
|
DualName has applied for one or more patents on the technology related to
|
||||||
|
virtual domain name software and virtual email software. If a standard is
|
||||||
|
adopted by IETF and any patents are issued to DualName with claims that are
|
||||||
|
necessary for practicing the standard, DualName is prepared to make available,
|
||||||
|
upon written request, a non-exclusive license under fair, reasonable and non-
|
||||||
|
discriminatory terms and condition, based on the principle of reciprocity,
|
||||||
|
consistent with established practice.
|
||||||
|
|
||||||
|
|
||||||
|
7. References
|
||||||
|
|
||||||
|
1 Wenzel, Z. and Seng, J. (Editors), "Requirements of Internationalized Domain
|
||||||
|
Names," draft-ietf-idn-requirements-03.txt, August 2000
|
||||||
|
|
||||||
|
|
||||||
|
8. Author's address
|
||||||
|
|
||||||
|
Sung Jae Shim
|
||||||
|
DualName, Inc.
|
||||||
|
3600 Wilshire Boulevard, Suite 1814
|
||||||
|
Los Angeles, California 90010
|
||||||
|
USA
|
||||||
|
Email: shimsungjae@dualname.com
|
||||||
|
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
IPng Working Group Richard Draves
|
IPng Working Group Richard Draves
|
||||||
Internet Draft Microsoft Research
|
Internet Draft Microsoft Research
|
||||||
Document: draft-ietf-ipngwg-default-addr-select-02.txt November 24, 2000
|
Document: draft-ietf-ipngwg-default-addr-select-03.txt March 3, 2001
|
||||||
Category: Standards Track
|
Category: Standards Track
|
||||||
|
|
||||||
Default Address Selection for IPv6
|
Default Address Selection for IPv6
|
||||||
@@ -54,8 +54,8 @@ Abstract
|
|||||||
These addresses may also be "preferred" or "deprecated" [3]. Privacy
|
These addresses may also be "preferred" or "deprecated" [3]. Privacy
|
||||||
considerations have introduced the concepts of "public addresses"
|
considerations have introduced the concepts of "public addresses"
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 1
|
Draves Standards Track - Expires September 2001 1
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
and "temporary addresses" [4]. The mobility architecture introduces
|
and "temporary addresses" [4]. The mobility architecture introduces
|
||||||
@@ -112,8 +112,8 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 2
|
Draves Standards Track - Expires September 2001 2
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
1.1. Conventions used in this document
|
1.1. Conventions used in this document
|
||||||
@@ -163,17 +163,21 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
address pairs having the longest possible common prefix. For source
|
address pairs having the longest possible common prefix. For source
|
||||||
address selection, temporary addresses [4] are preferred over public
|
address selection, temporary addresses [4] are preferred over public
|
||||||
addresses. In mobile situations [5], home addresses are preferred
|
addresses. In mobile situations [5], home addresses are preferred
|
||||||
over care-of addresses.
|
over care-of addresses. If an address is simultaneously a home
|
||||||
|
address and a care-of address (indicating the mobile node is "at
|
||||||
|
home" for that address), then the home/care-of address is preferred
|
||||||
|
over addresses that are solely a home address or solely a care-of
|
||||||
|
address.
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 3
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
The framework optionally allows for the possibility of
|
The framework optionally allows for the possibility of
|
||||||
administrative configuration of policy that can override the default
|
administrative configuration of policy that can override the default
|
||||||
behavior of the algorithms. The policy override takes the form of a
|
behavior of the algorithms. The policy override takes the form of a
|
||||||
configurable table that specifies precedence values and preferred
|
configurable table that specifies precedence values and preferred
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 3
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
source prefixes for destination prefixes. If an implementation is
|
source prefixes for destination prefixes. If an implementation is
|
||||||
not configurable, or if an implementation has not been configured,
|
not configurable, or if an implementation has not been configured,
|
||||||
then the default policy table specified in this document SHOULD be
|
then the default policy table specified in this document SHOULD be
|
||||||
@@ -222,38 +226,36 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
IPv4 addresses should be treated as having "preferred" configuration
|
IPv4 addresses should be treated as having "preferred" configuration
|
||||||
status.
|
status.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 4
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
2.3. IPv6 Addresses with Embedded IPv4 Addresses
|
2.3. IPv6 Addresses with Embedded IPv4 Addresses
|
||||||
|
|
||||||
IPv4-compatible addresses [2] and 6to4 addresses [12] contain an
|
IPv4-compatible addresses [2] and 6to4 addresses [12] contain an
|
||||||
embedded IPv4 address. For the purposes of this document, these
|
embedded IPv4 address. For the purposes of this document, these
|
||||||
addresses should be treated as having the scope of the embedded IPv4
|
addresses should be treated as having global scope.
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 4
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
address. For example, the IPv6 address ::169.254.3.18 has link-local
|
|
||||||
scope and the address 2002:0a01:0203::1 has site-local scope.
|
|
||||||
|
|
||||||
IPv4-compatible addresses should be treated as having "preferred"
|
IPv4-compatible addresses should be treated as having "preferred"
|
||||||
configuration status.
|
configuration status.
|
||||||
|
|
||||||
2.4. Loopback Address and Other Format Prefixes
|
2.4. Loopback Address and Other Format Prefixes
|
||||||
|
|
||||||
The loopback address should be treated as having link-local scope
|
The loopback address should be treated as having link-local
|
||||||
and "preferred" configuration status.
|
scope [9] and "preferred" configuration status.
|
||||||
|
|
||||||
NSAP addresses, IPX addresses, and other addresses with as-yet-
|
NSAP addresses and other addresses with as-yet-undefined format
|
||||||
undefined format prefixes should be treated as having global scope
|
prefixes should be treated as having global scope and "preferred"
|
||||||
and "preferred" configuration status. Later standards may supercede
|
configuration status. Later standards may supercede this treatment.
|
||||||
this treatment.
|
|
||||||
|
|
||||||
2.5. Policy Table
|
2.5. Policy Table
|
||||||
|
|
||||||
The policy table is a longest-matching-prefix lookup table, much
|
The policy table is a longest-matching-prefix lookup table, much
|
||||||
like a routing table. Given an address A, a lookup in the policy
|
like a routing table. Given an address A, a lookup in the policy
|
||||||
table produces three values: a precedence value Precedence(A), a
|
table produces two values: a precedence value Precedence(A) and a
|
||||||
classification or label SrcLabel(A), and a second label DstLabel(A).
|
classification or label Label(A).
|
||||||
|
|
||||||
The precedence value Precedence(A) is used for sorting destination
|
The precedence value Precedence(A) is used for sorting destination
|
||||||
addresses. If Precedence(A) > Precedence(B), we say that address A
|
addresses. If Precedence(A) > Precedence(B), we say that address A
|
||||||
@@ -261,10 +263,10 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
will prefer to sort destination address A before destination address
|
will prefer to sort destination address A before destination address
|
||||||
B.
|
B.
|
||||||
|
|
||||||
The labels SrcLabel(A) and DstLabel(A) allow for policies that
|
The label value Label(A) allows for policies that prefer a
|
||||||
prefer a particular source address prefix for use with a destination
|
particular source address prefix for use with a destination address
|
||||||
address prefix. The algorithms prefer to use a source address S with
|
prefix. The algorithms prefer to use a source address S with a
|
||||||
a destination address D if SrcLabel(S) = DstLabel(D).
|
destination address D if Label(S) = Label(D).
|
||||||
|
|
||||||
IPv6 implementations SHOULD support configurable address selection
|
IPv6 implementations SHOULD support configurable address selection
|
||||||
via a mechanism at least as powerful as the policy tables defined
|
via a mechanism at least as powerful as the policy tables defined
|
||||||
@@ -273,23 +275,23 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
specified here in conjunction with the following default policy
|
specified here in conjunction with the following default policy
|
||||||
table:
|
table:
|
||||||
|
|
||||||
Prefix Precedence SrcLabel DstLabel
|
Prefix Precedence Label
|
||||||
::1/128 50 0 0
|
::1/128 50 0
|
||||||
::/0 40 1 1
|
::/0 40 1
|
||||||
2002::/16 30 2 2
|
2002::/16 30 2
|
||||||
::/96 20 3 3
|
::/96 20 3
|
||||||
::ffff:0:0/96 10 4 4
|
::ffff:0:0/96 10 4
|
||||||
|
|
||||||
One effect of the default policy table is to prefer using native
|
One effect of the default policy table is to prefer using native
|
||||||
source addresses with native destination addresses, 6to4 [12] source
|
source addresses with native destination addresses, 6to4 [12] source
|
||||||
addresses with 6to4 destination addresses, and v4-compatible [2]
|
|
||||||
source addresses with v4-compatible destination addresses. Another
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 5
|
Draves Standards Track - Expires September 2001 5
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
|
addresses with 6to4 destination addresses, and v4-compatible [2]
|
||||||
|
source addresses with v4-compatible destination addresses. Another
|
||||||
effect of the default policy table is to prefer communication using
|
effect of the default policy table is to prefer communication using
|
||||||
IPv6 addresses to communication using IPv4 addresses, if matching
|
IPv6 addresses to communication using IPv4 addresses, if matching
|
||||||
source addresses are available.
|
source addresses are available.
|
||||||
@@ -340,14 +342,15 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
specifies a source address that is in the candidate set for the
|
specifies a source address that is in the candidate set for the
|
||||||
destination, then the network layer MUST respect that choice. If the
|
destination, then the network layer MUST respect that choice. If the
|
||||||
application or upper-layer does not specify a source address, then
|
application or upper-layer does not specify a source address, then
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 6
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
the network layer uses the source address selection algorithm
|
the network layer uses the source address selection algorithm
|
||||||
specified in the next section.
|
specified in the next section.
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 6
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
4. Source Address Selection
|
4. Source Address Selection
|
||||||
|
|
||||||
The source address selection algorithm chooses a source address for
|
The source address selection algorithm chooses a source address for
|
||||||
@@ -369,9 +372,9 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
If SA = D, then choose SA. Similarly, if SB = D, then choose SB.
|
If SA = D, then choose SA. Similarly, if SB = D, then choose SB.
|
||||||
|
|
||||||
Rule 2: Prefer appropriate scope.
|
Rule 2: Prefer appropriate scope.
|
||||||
If Scope(SA) < Scope(SB). If Scope(SA) < Scope(D), then choose SB
|
If Scope(SA) < Scope(SB): If Scope(SA) < Scope(D), then choose SB
|
||||||
and otherwise choose SA.
|
and otherwise choose SA.
|
||||||
Similarly, if Scope(SB) < Scope(SA). If Scope(SB) < Scope(D), then
|
Similarly, if Scope(SB) < Scope(SA): If Scope(SB) < Scope(D), then
|
||||||
choose SA and otherwise choose SB.
|
choose SA and otherwise choose SB.
|
||||||
|
|
||||||
Rule 3: Avoid deprecated addresses.
|
Rule 3: Avoid deprecated addresses.
|
||||||
@@ -380,9 +383,12 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
one that is preferred.
|
one that is preferred.
|
||||||
|
|
||||||
Rule 4: Prefer home addresses.
|
Rule 4: Prefer home addresses.
|
||||||
If SA is a home address and SB is a care-of address, then prefer SA.
|
If SA is simultaneously a home address and care-of address and SB is
|
||||||
Similarly, if SB is a home address and SA is a care-of address, then
|
not, then prefer SA. Similarly, if SB is simultaneously a home
|
||||||
prefer SB.
|
address and care-of address and SA is not, then prefer SB.
|
||||||
|
If SA is just a home address and SB is just a care-of address, then
|
||||||
|
prefer SA. Similarly, if SB is just a home address and SA is just a
|
||||||
|
care-of address, then prefer SB.
|
||||||
An implementation may support a per-connection configuration
|
An implementation may support a per-connection configuration
|
||||||
mechanism (for example, a socket option) to reverse the sense of
|
mechanism (for example, a socket option) to reverse the sense of
|
||||||
this preference and prefer care-of addresses over home addresses.
|
this preference and prefer care-of addresses over home addresses.
|
||||||
@@ -394,18 +400,17 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
send to D and SA is assigned to a different interface, then prefer
|
send to D and SA is assigned to a different interface, then prefer
|
||||||
SB.
|
SB.
|
||||||
|
|
||||||
Rule 6: Prefer matching label.
|
|
||||||
If Label(SA) = MatchSrcLabel(D) and Label(SB) <> MatchSrcLabel(D),
|
|
||||||
then choose SA. Similarly, if Label(SB) = MatchSrcLabel(D) and
|
|
||||||
Label(SA) <> MatchSrcLabel(D), then choose SB.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 7
|
Draves Standards Track - Expires September 2001 7
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
|
Rule 6: Prefer matching label.
|
||||||
|
If Label(SA) = Label(D) and Label(SB) <> Label(D), then choose SA.
|
||||||
|
Similarly, if Label(SB) = Label(D) and Label(SA) <> Label(D), then
|
||||||
|
choose SB.
|
||||||
|
|
||||||
Rule 7: Prefer temporary addresses.
|
Rule 7: Prefer temporary addresses.
|
||||||
If SA is a temporary address and SB is a public address, then prefer
|
If SA is a temporary address and SB is a public address, then prefer
|
||||||
SA. Similarly, if SB is a temporary address and SA is a public
|
SA. Similarly, if SB is a temporary address and SA is a public
|
||||||
@@ -454,16 +459,16 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
result, then the remaining rules are not relevant and should be
|
result, then the remaining rules are not relevant and should be
|
||||||
ignored. Subsequent rules act as tie-breakers for earlier rules.
|
ignored. Subsequent rules act as tie-breakers for earlier rules.
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 8
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Rule 1: Avoid unusable destinations.
|
Rule 1: Avoid unusable destinations.
|
||||||
If there is no route to DB or if Source(DB) is undefined, then sort
|
If there is no route to DB or if Source(DB) is undefined, then sort
|
||||||
DA before DB. Similarly, if there is no route to DA or if Source(DA)
|
DA before DB. Similarly, if there is no route to DA or if Source(DA)
|
||||||
is undefined, then sort DB before DA.
|
is undefined, then sort DB before DA.
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 8
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Rule 2: Prefer matching scope.
|
Rule 2: Prefer matching scope.
|
||||||
If Scope(DA) = Scope(Source(DA)) and Scope(DB) <> Scope(Source(DB)),
|
If Scope(DA) = Scope(Source(DA)) and Scope(DB) <> Scope(Source(DB)),
|
||||||
then sort DA before DB. Similarly, if Scope(DA) <> Scope(Source(DA))
|
then sort DA before DB. Similarly, if Scope(DA) <> Scope(Source(DA))
|
||||||
@@ -475,15 +480,19 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
is deprecated, then sort DA before DB.
|
is deprecated, then sort DA before DB.
|
||||||
|
|
||||||
Rule 4: Prefer home addresses.
|
Rule 4: Prefer home addresses.
|
||||||
If Source(DA) is a home address and Source(DB) is a care-of address,
|
If Source(DA) is simultaneously a home address and care-of address
|
||||||
then sort DA before DB. Similarly, if Source(DA) is a care-of
|
and Source(DB) is not, then sort DA before DB. Similarly, if
|
||||||
address and Source(DB) is a home address, then sort DB before DA.
|
Source(DB) is simultaneously a home address and care-of address and
|
||||||
|
Source(DA) is not, then sort DB before DA.
|
||||||
|
If Source(DA) is just a home address and Source(DB) is just a care-
|
||||||
|
of address, then sort DA before DB. Similarly, if Source(DA) is just
|
||||||
|
a care-of address and Source(DB) is just a home address, then sort
|
||||||
|
DB before DA.
|
||||||
|
|
||||||
Rule 5: Prefer matching label.
|
Rule 5: Prefer matching label.
|
||||||
If SrcLabel(Source(DA)) = DstLabel(DA) and SrcLabel(Source(DB)) <>
|
If Label(Source(DA)) = Label(DA) and Label(Source(DB)) <> Label(DB),
|
||||||
DstLabel(DB), then sort DA before DB. Similarly, if
|
then sort DA before DB. Similarly, if Label(Source(DA)) <> Label(DA)
|
||||||
SrcLabel(Source(DA)) <> DstLabel(DA) and SrcLabel(Source(DB)) =
|
and Label(Source(DB)) = Label(DB), then sort DB before DA.
|
||||||
DstLabel(DB), then sort DB before DA.
|
|
||||||
|
|
||||||
Rule 6: Prefer higher precedence.
|
Rule 6: Prefer higher precedence.
|
||||||
If Precedence(DA) > Precedence(DB), then sort DA before DB.
|
If Precedence(DA) > Precedence(DB), then sort DA before DB.
|
||||||
@@ -508,6 +517,11 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
implementation somehow knows which destination addresses will result
|
implementation somehow knows which destination addresses will result
|
||||||
in the "best" communications performance.
|
in the "best" communications performance.
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 9
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
6. Interactions with Routing
|
6. Interactions with Routing
|
||||||
|
|
||||||
This specification of source address selection assumes that routing
|
This specification of source address selection assumes that routing
|
||||||
@@ -516,12 +530,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
However, implementations may use source address considerations as a
|
However, implementations may use source address considerations as a
|
||||||
tiebreaker when choosing among otherwise equivalent routes.
|
tiebreaker when choosing among otherwise equivalent routes.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 9
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
For example, suppose a node has interfaces on two different links,
|
For example, suppose a node has interfaces on two different links,
|
||||||
with both links having a working default router. Both of the
|
with both links having a working default router. Both of the
|
||||||
interfaces have preferred global addresses. When sending to a global
|
interfaces have preferred global addresses. When sending to a global
|
||||||
@@ -567,24 +575,41 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
information in its implementation of destination address selection,
|
information in its implementation of destination address selection,
|
||||||
or if the ordering of a cached list of destination addresses is
|
or if the ordering of a cached list of destination addresses is
|
||||||
possibly stale, then it should ensure that the destination address
|
possibly stale, then it should ensure that the destination address
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 10
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
ordering returned to the application is no more than one second out
|
ordering returned to the application is no more than one second out
|
||||||
of date. For example, an implementation might make a system call to
|
of date. For example, an implementation might make a system call to
|
||||||
check if any routing table entries or source address assignments
|
check if any routing table entries or source address assignments
|
||||||
that might affect these algorithms have changed.
|
that might affect these algorithms have changed. Another strategy is
|
||||||
|
to use an invalidation counter that is incremented whenever any
|
||||||
|
underlying state is changed. By caching the current invalidation
|
||||||
|
counter value with derived state and then later comparing against
|
||||||
|
the current value, the implementation can detect if the derived
|
||||||
|
state is stale.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 10
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
8. Security Considerations
|
8. Security Considerations
|
||||||
|
|
||||||
This document has no direct impact on Internet infrastructure
|
This document has no direct impact on Internet infrastructure
|
||||||
security.
|
security.
|
||||||
|
|
||||||
|
Note that most source address selection algorithms, including the
|
||||||
|
one specified in this document, expose a potential privacy concern.
|
||||||
|
An unfriendly node can infer correlations among a target node's
|
||||||
|
addresses by probing the target node with request packets that force
|
||||||
|
the target host to choose its source address for the reply packets.
|
||||||
|
(Perhaps because the request packets are sent to an anycast or
|
||||||
|
multicast address, or perhaps the upper-layer protocol chosen for
|
||||||
|
the attack does not specify a particular source address for its
|
||||||
|
reply packets.) By using different addresses for itself, the
|
||||||
|
unfriendly node can cause the target node to expose the target's own
|
||||||
|
addresses. For example, the unfriendly node might correlate the
|
||||||
|
target's current IPv6 temporary address with its IPv4 address by
|
||||||
|
sending requests with a global source address and an IPv4-compatible
|
||||||
|
source address.
|
||||||
|
|
||||||
9. Examples
|
9. Examples
|
||||||
|
|
||||||
This section contains a number of examples, first of default
|
This section contains a number of examples, first of default
|
||||||
@@ -608,6 +633,11 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
Sources: fe80::1 vs 2001::1
|
Sources: fe80::1 vs 2001::1
|
||||||
Result: 2001::1 (prefer appropriate scope)
|
Result: 2001::1 (prefer appropriate scope)
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 11
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Destination: ff05::1
|
Destination: ff05::1
|
||||||
Sources: fe80::1 vs fec0::1 vs 2001::1
|
Sources: fe80::1 vs fec0::1 vs 2001::1
|
||||||
Result: fec0::1 (prefer appropriate scope)
|
Result: fec0::1 (prefer appropriate scope)
|
||||||
@@ -632,12 +662,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
Sources: 2002:836b:2179::2 vs 2001::d5e3:7953:13eb:22e8 (temporary)
|
Sources: 2002:836b:2179::2 vs 2001::d5e3:7953:13eb:22e8 (temporary)
|
||||||
Result: 2002:836b:2179::2 (prefer matching label)
|
Result: 2002:836b:2179::2 (prefer matching label)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 11
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Destination: 2001::1
|
Destination: 2001::1
|
||||||
Sources: 2001::2 vs 2001::d5e3:7953:13eb:22e8 (temporary)
|
Sources: 2001::2 vs 2001::d5e3:7953:13eb:22e8 (temporary)
|
||||||
Result: 2001::d5e3:7953:13eb:22e8 (prefer temporary address)
|
Result: 2001::d5e3:7953:13eb:22e8 (prefer temporary address)
|
||||||
@@ -667,7 +691,11 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
Destinations: 2001::1 vs fec0::1 vs fe80::1
|
Destinations: 2001::1 vs fec0::1 vs fe80::1
|
||||||
Result: fe80::1 (src fe80::2) then fec0::1 (src fec0::2) then
|
Result: fe80::1 (src fe80::2) then fec0::1 (src fec0::2) then
|
||||||
2001::1 (src 2001::2) (prefer smaller scope)
|
2001::1 (src 2001::2) (prefer smaller scope)
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 12
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Sources: 2001::2 (care-of address) or 3ffe::1 (home address) or
|
Sources: 2001::2 (care-of address) or 3ffe::1 (home address) or
|
||||||
fec0::2 (care-of address) or fe80::2 (care-of address)
|
fec0::2 (care-of address) or fe80::2 (care-of address)
|
||||||
Destinations: 2001::1 vs fec0::1
|
Destinations: 2001::1 vs fec0::1
|
||||||
@@ -691,11 +719,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
|
|
||||||
Sources: 2002:836b:4179::2 or 2001::2 or fe80::2
|
Sources: 2002:836b:4179::2 or 2001::2 or fe80::2
|
||||||
Destinations: 2002:836b:4179::1 vs 2001::1
|
Destinations: 2002:836b:4179::1 vs 2001::1
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 12
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Result: 2001::1 (src 2001::2) then 2002:836b:4179::1 (src
|
Result: 2001::1 (src 2001::2) then 2002:836b:4179::1 (src
|
||||||
2002:836b:4179::2) (prefer higher precedence)
|
2002:836b:4179::2) (prefer higher precedence)
|
||||||
|
|
||||||
@@ -707,12 +730,12 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
administrator can change the policy table to prefer IPv4 addresses
|
administrator can change the policy table to prefer IPv4 addresses
|
||||||
by giving the ::ffff:0.0.0.0/96 prefix a higher precedence:
|
by giving the ::ffff:0.0.0.0/96 prefix a higher precedence:
|
||||||
|
|
||||||
Prefix Precedence SrcLabel DstLabel
|
Prefix Precedence Label
|
||||||
::1/128 50 0 0
|
::1/128 50 0
|
||||||
::/0 40 1 1
|
::/0 40 1
|
||||||
2002::/16 30 2 2
|
2002::/16 30 2
|
||||||
::/96 20 3 3
|
::/96 20 3
|
||||||
::ffff:0:0/96 100 4 4
|
::ffff:0:0/96 100 4
|
||||||
|
|
||||||
This change to the default policy table produces the following
|
This change to the default policy table produces the following
|
||||||
behavior:
|
behavior:
|
||||||
@@ -724,6 +747,13 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
|
|
||||||
Sources: fe80::1 or 131.107.65.117
|
Sources: fe80::1 or 131.107.65.117
|
||||||
Destinations: 2001::1 vs 131.107.65.121
|
Destinations: 2001::1 vs 131.107.65.121
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 13
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Unchanged Result: 131.107.65.121 (src 131.107.65.117) then 2001::1
|
Unchanged Result: 131.107.65.121 (src 131.107.65.117) then 2001::1
|
||||||
(src fe80::1) (prefer matching scope)
|
(src fe80::1) (prefer matching scope)
|
||||||
|
|
||||||
@@ -742,26 +772,14 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
site-local destinations, and site-local destinations before link-
|
site-local destinations, and site-local destinations before link-
|
||||||
local destinations:
|
local destinations:
|
||||||
|
|
||||||
|
Prefix Precedence Label
|
||||||
|
::1/128 50 0
|
||||||
|
::/0 40 1
|
||||||
|
fec0::/10 37 1
|
||||||
|
fe80::/10 33 1
|
||||||
|
2002::/16 30 2
|
||||||
|
::/96 20 3
|
||||||
|
::ffff:0:0/96 10 4
|
||||||
Draves Standards Track - Expires June 2001 13
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Prefix Precedence SrcLabel DstLabel
|
|
||||||
::1/128 50 0 0
|
|
||||||
::/0 40 1 1
|
|
||||||
fec0::/10 37 1 1
|
|
||||||
fe80::/10 33 1 1
|
|
||||||
2002::/16 30 2 2
|
|
||||||
::/96 20 3 3
|
|
||||||
::ffff:0:0/96 10 4 4
|
|
||||||
|
|
||||||
This change to the default policy table produces the following
|
This change to the default policy table produces the following
|
||||||
behavior:
|
behavior:
|
||||||
@@ -788,6 +806,12 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
|
|
||||||
Each site has two global prefixes, one from the high-performance ISP
|
Each site has two global prefixes, one from the high-performance ISP
|
||||||
and one from their normal ISP. Site A has prefix 2001:aaaa:aaaa::/48
|
and one from their normal ISP. Site A has prefix 2001:aaaa:aaaa::/48
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 14
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
from the high-performance ISP and prefix 2007:0:aaaa::/48 from its
|
from the high-performance ISP and prefix 2007:0:aaaa::/48 from its
|
||||||
normal ISP. Site B has prefix 2001:bbbb:bbbb::/48 from the high-
|
normal ISP. Site B has prefix 2001:bbbb:bbbb::/48 from the high-
|
||||||
performance ISP and prefix 2007:0:bbbb::/48 from its normal ISP. All
|
performance ISP and prefix 2007:0:bbbb::/48 from its normal ISP. All
|
||||||
@@ -805,13 +829,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
|
|
||||||
Sources: 2001:aaaa:aaaa::a or 2007:0:aaaa::a or fe80::a
|
Sources: 2001:aaaa:aaaa::a or 2007:0:aaaa::a or fe80::a
|
||||||
Destinations: 2001:bbbb:bbbb::b vs 2007:0:bbbb::b
|
Destinations: 2001:bbbb:bbbb::b vs 2007:0:bbbb::b
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 14
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Result: 2007:0:bbbb::b (src 2007:0:aaaa::a) then 2001:bbbb:bbbb::b
|
Result: 2007:0:bbbb::b (src 2007:0:aaaa::a) then 2001:bbbb:bbbb::b
|
||||||
(src 2001:aaaa:aaaa::a) (longest matching prefix)
|
(src 2001:aaaa:aaaa::a) (longest matching prefix)
|
||||||
|
|
||||||
@@ -836,17 +853,23 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
desired behavior via policy table configuration. For example, they
|
desired behavior via policy table configuration. For example, they
|
||||||
can use the following policy table:
|
can use the following policy table:
|
||||||
|
|
||||||
Prefix Precedence SrcLabel DstLabel
|
Prefix Precedence Label
|
||||||
::1 50 0 0
|
::1 50 0
|
||||||
2001:aaaa:aaaa::/48 45 5 5
|
2001:aaaa:aaaa::/48 45 5
|
||||||
2001:bbbb:bbbb::/48 45 5 5
|
2001:bbbb:bbbb::/48 45 5
|
||||||
::/0 40 1 1
|
::/0 40 1
|
||||||
2002::/16 30 2 2
|
2002::/16 30 2
|
||||||
::/96 20 3 3
|
::/96 20 3
|
||||||
::ffff:0:0/96 10 4 4
|
::ffff:0:0/96 10 4
|
||||||
|
|
||||||
This policy table produces the following behavior:
|
This policy table produces the following behavior:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 15
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Sources: 2001:aaaa:aaaa::a or 2007:0:aaaa::a or fe80::a
|
Sources: 2001:aaaa:aaaa::a or 2007:0:aaaa::a or fe80::a
|
||||||
Destinations: 2001:bbbb:bbbb::b vs 2007:0:bbbb::b
|
Destinations: 2001:bbbb:bbbb::b vs 2007:0:bbbb::b
|
||||||
New Result: 2001:bbbb:bbbb::b (src 2001:aaaa:aaaa::a) then
|
New Result: 2001:bbbb:bbbb::b (src 2001:aaaa:aaaa::a) then
|
||||||
@@ -865,11 +888,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
host in some other site C, the traffic uses the normal ISP as
|
host in some other site C, the traffic uses the normal ISP as
|
||||||
desired.
|
desired.
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 15
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
References
|
References
|
||||||
|
|
||||||
1 S. Bradner, "The Internet Standards Process -- Revision 3", BCP
|
1 S. Bradner, "The Internet Standards Process -- Revision 3", BCP
|
||||||
@@ -888,8 +906,9 @@ References
|
|||||||
5 D. Johnson, C. Perkins, "Mobility Support in IPv6", draft-ietf-
|
5 D. Johnson, C. Perkins, "Mobility Support in IPv6", draft-ietf-
|
||||||
mobileip-ipv6-12.txt, April 2000.
|
mobileip-ipv6-12.txt, April 2000.
|
||||||
|
|
||||||
6 R. Troll. "Automatically Choosing an IP Address in an Ad-Hoc IPv4
|
6 S. Cheshire. "Dynamic Configuration of IPv4 Link-local
|
||||||
Network", draft-ietf-dhc-ipv4-autoconfig-05.txt, March 2000.
|
Addresses", draft-ietf-zeroconf-ipv4-linklocal-01.txt, November
|
||||||
|
2000.
|
||||||
|
|
||||||
7 S. Bradner, "Key words for use in RFCs to Indicate Requirement
|
7 S. Bradner, "Key words for use in RFCs to Indicate Requirement
|
||||||
Levels", BCP 14, RFC 2119, March 1997.
|
Levels", BCP 14, RFC 2119, March 1997.
|
||||||
@@ -903,6 +922,13 @@ References
|
|||||||
10 Y. Rekhter et. al, "Address Allocation for Private Internets",
|
10 Y. Rekhter et. al, "Address Allocation for Private Internets",
|
||||||
RFC 1918, February 1996.
|
RFC 1918, February 1996.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 16
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
11 F. Baker, Editor. "Requirements for IP Version 4 Routers", RFC
|
11 F. Baker, Editor. "Requirements for IP Version 4 Routers", RFC
|
||||||
1812, June 1995.
|
1812, June 1995.
|
||||||
|
|
||||||
@@ -912,9 +938,10 @@ References
|
|||||||
Acknowledgments
|
Acknowledgments
|
||||||
|
|
||||||
The author would like to acknowledge the contributions of the IPng
|
The author would like to acknowledge the contributions of the IPng
|
||||||
Working Group, particularly Steve Deering and Ken Powell. Please let
|
Working Group, particularly Steve Deering, Jun-ichiro itojun Hagino,
|
||||||
the author know if you contributed to the development of this draft
|
M.T. Hollinger, Ken Powell, Markku Savela, Dave Thaler, and Mauro
|
||||||
and are not mentioned here.
|
Tortonesi. Please let the author know if you contributed to the
|
||||||
|
development of this draft and are not mentioned here.
|
||||||
|
|
||||||
Author's Address
|
Author's Address
|
||||||
|
|
||||||
@@ -922,17 +949,27 @@ Author's Address
|
|||||||
Microsoft Research
|
Microsoft Research
|
||||||
One Microsoft Way
|
One Microsoft Way
|
||||||
Redmond, WA 98052
|
Redmond, WA 98052
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 16
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Phone: 1-425-936-2268
|
Phone: 1-425-936-2268
|
||||||
Email: richdr@microsoft.com
|
Email: richdr@microsoft.com
|
||||||
|
|
||||||
Revision History
|
Revision History
|
||||||
|
|
||||||
|
Changes from draft-ietf-ipngwg-default-addr-select-02
|
||||||
|
|
||||||
|
Changed scope treatment of IPv4-compatible and 6to4 addresses, so
|
||||||
|
they are always considered to be global. Removed mention of IPX
|
||||||
|
addresses.
|
||||||
|
|
||||||
|
Changed home address rules to favor addresses that are
|
||||||
|
simultaneously home and care-of addresses, over addresses that are
|
||||||
|
just home addresses or just care-of addresses.
|
||||||
|
|
||||||
|
Combined SrcLabel & DstLabel in the policy table into a single Label
|
||||||
|
attribute.
|
||||||
|
|
||||||
|
Added mention of the invalidation counter technique in the
|
||||||
|
implementation section.
|
||||||
|
|
||||||
Changes from draft-ietf-ipngwg-default-addr-select-01
|
Changes from draft-ietf-ipngwg-default-addr-select-01
|
||||||
|
|
||||||
Added Examples section, demonstrating default behavior and some
|
Added Examples section, demonstrating default behavior and some
|
||||||
@@ -942,6 +979,13 @@ Changes from draft-ietf-ipngwg-default-addr-select-01
|
|||||||
of source addresses and the source address selection rule that
|
of source addresses and the source address selection rule that
|
||||||
prefers source addresses of appropriate scope.
|
prefers source addresses of appropriate scope.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 17
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Simplified the default policy table. Reordered the source address
|
Simplified the default policy table. Reordered the source address
|
||||||
selection rules to reduce the influence of policy labels. Added more
|
selection rules to reduce the influence of policy labels. Added more
|
||||||
destination address selection rules.
|
destination address selection rules.
|
||||||
@@ -980,12 +1024,6 @@ Changes from draft-ietf-ipngwg-default-addr-select-00
|
|||||||
Added a rule to source address selection to handle home/care-of
|
Added a rule to source address selection to handle home/care-of
|
||||||
addresses.
|
addresses.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 17
|
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|
||||||
|
|
||||||
|
|
||||||
Changed to allow destination address selection to sort both IPv6 and
|
Changed to allow destination address selection to sort both IPv6 and
|
||||||
IPv4 addresses. Added entries in the default policy table for IPv4-
|
IPv4 addresses. Added entries in the default policy table for IPv4-
|
||||||
mapped addresses.
|
mapped addresses.
|
||||||
@@ -1001,7 +1039,11 @@ Changes from draft-draves-ipngwg-simple-srcaddr-01
|
|||||||
|
|
||||||
Added mechanism to allow the specification of administrative policy
|
Added mechanism to allow the specification of administrative policy
|
||||||
that can override the default behavior.
|
that can override the default behavior.
|
||||||
|
|
||||||
|
Draves Standards Track - Expires September 2001 18
|
||||||
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Added section on routing interactions and TBD section on mobility
|
Added section on routing interactions and TBD section on mobility
|
||||||
interactions.
|
interactions.
|
||||||
|
|
||||||
@@ -1035,13 +1077,29 @@ Changes from draft-draves-ipngwg-simple-srcaddr-00
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 18
|
Draves Standards Track - Expires September 2001 19
|
||||||
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
|
||||||
|
|
||||||
|
|
||||||
Full Copyright Statement
|
Full Copyright Statement
|
||||||
@@ -1098,4 +1156,4 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Draves Standards Track - Expires June 2001 19
|
Draves Standards Track - Expires September 2001 20
|
@@ -1,580 +0,0 @@
|
|||||||
INTERNET-DRAFT X. Wang, Y. Huang, D Rine (GMU)
|
|
||||||
<draft-whr-dnsext-secure-online-update-00.txt> June 2000
|
|
||||||
|
|
||||||
Updates: RFC 2136
|
|
||||||
Replaces: RFC 2137
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Secure Online Domain Name System (DNS) Dynamic Update
|
|
||||||
|
|
||||||
|
|
||||||
Status of this Memo
|
|
||||||
|
|
||||||
This document is an Internet-Draft and is in full conformance with
|
|
||||||
all provisions of Section 10 of RFC2026.
|
|
||||||
|
|
||||||
Internet-Drafts are working documents of the Internet Engineering
|
|
||||||
Task Force (IETF), its areas, and its working groups. Note that
|
|
||||||
other groups may also distribute working documents as Internet-
|
|
||||||
Drafts.
|
|
||||||
|
|
||||||
Internet-Drafts are draft documents valid for a maximum of six
|
|
||||||
months and may be updated, replaced, or obsoleted by other
|
|
||||||
documents at any time. It is inappropriate to use Internet-Drafts
|
|
||||||
as reference material or to cite them other than as ``work in
|
|
||||||
progress.''
|
|
||||||
|
|
||||||
The list of current Internet-Drafts can be accessed at
|
|
||||||
http://www.ietf.org/ietf/1id-abstracts.txt
|
|
||||||
|
|
||||||
The list of Internet-Draft Shadow Directories can be accessed at
|
|
||||||
http://www.ietf.org/shadow.html
|
|
||||||
|
|
||||||
Comments should be sent to the authors or the DNSIND WG mailing
|
|
||||||
list namedroppers@internic.net.
|
|
||||||
|
|
||||||
This draft expires on December 9, 2000.
|
|
||||||
|
|
||||||
Copyright Notice
|
|
||||||
|
|
||||||
Copyright (C) The Internet Society (2000). All rights reserved.
|
|
||||||
|
|
||||||
|
|
||||||
Abstract
|
|
||||||
|
|
||||||
This document proposes an alternate architecture to enable secure
|
|
||||||
online Domain Name System (DNS) dynamic updates. It is intended
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires December 2000 [Page 1]
|
|
||||||
|
|
||||||
INTERNET-DRAFT Secure Online DNS Dynamic Update June 2000
|
|
||||||
|
|
||||||
|
|
||||||
to enable a DNS zone to provide online dynamic update and at the
|
|
||||||
same time, maintain the zone's security including role separation
|
|
||||||
and intrusion tolerance against insider and outsider attacks.
|
|
||||||
Threshold digital signature is used to implement the proposed
|
|
||||||
architecture.
|
|
||||||
|
|
||||||
1 - Introduction
|
|
||||||
|
|
||||||
This document proposes an alternate architecture to allow a
|
|
||||||
DNS zone to provide secure online dynamic update. In contrast
|
|
||||||
to existing dynamic update scheme, the proposed architecture
|
|
||||||
distinguishes itself in that it provides high security
|
|
||||||
for a zone when allowing it support online dynamic update.
|
|
||||||
|
|
||||||
Familiarity with the DNS system [RFC1034, RFC1035], DNS
|
|
||||||
Security Extension [RFC2535], dynamic update [RFC2136] and
|
|
||||||
secure dynamic update [RFC2137] is helpful and is assumed by
|
|
||||||
this document.
|
|
||||||
|
|
||||||
This document obsoletes RFC 2137, an alternate proposal
|
|
||||||
for secure dynamic update, due to implementation experience.
|
|
||||||
|
|
||||||
1.1 - Overview of DNS Security Extension
|
|
||||||
|
|
||||||
DNS Security Extension (DNSSEC) is proposed in [RFC2535].
|
|
||||||
The DNSSEC provides RR authentication by the use of digital
|
|
||||||
signatures. In DNSSEC, each zone is equipped with a
|
|
||||||
public/private key pair. The private key is used to digitally
|
|
||||||
sign all the RRs in that zone. The response to a DNS query
|
|
||||||
will also include the requested RRs and a SIG RR
|
|
||||||
(signature RR), which contains the digital signature of the
|
|
||||||
requested RRs. The zone public key, used to verify signatures,
|
|
||||||
is disseminated by means of KEY RRs.
|
|
||||||
|
|
||||||
A major security principle of the DNSSEC is the role separation:
|
|
||||||
it differentiates the roles of the DNS server administrator from
|
|
||||||
the DNS zone manager. One advantage of the role separation
|
|
||||||
is that it helps to prevent power abuses [SBM99]. In DNSSEC,
|
|
||||||
it is the DNS zone manager, not the DNS server administrator,
|
|
||||||
who is responsible for the security of a zone. A DNS server is
|
|
||||||
just a place to publish the digitally signed DNS data of the zone.
|
|
||||||
Thus, compromise of a secondary server or, if the zone private
|
|
||||||
key is kept off line, even the primary server for a zone, will
|
|
||||||
not necessarily affect the degree of assurance that a DNS
|
|
||||||
client receives [RFC2535]. When zone data is updated, the zone
|
|
||||||
manager will sign the new zone data off-line.
|
|
||||||
|
|
||||||
1.2 - Overview of DNS Dynamic Update and DNS Secure Dynamic Update
|
|
||||||
|
|
||||||
The idea of keeping zone private key off-line and computing
|
|
||||||
the signatures of RRs off-line is based on the assumption
|
|
||||||
that RRs in a DNS zone are relatively static. Indeed, in
|
|
||||||
normal situations we can expect that bindings between domain
|
|
||||||
names and IP addresses do not change frequently. However, it
|
|
||||||
has been pointed out that DNS dynamic updates, which enable
|
|
||||||
real-time changes (that is, add, delete, or update) in
|
|
||||||
name/address bindings, are useful under many circumstances
|
|
||||||
[Liu99,RFC2136]. (For example, such an update allows a
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 2]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
corporation to switch to a new domain name without waiting for
|
|
||||||
the slow, manual processing of the name change request by a
|
|
||||||
domain name registrar.) For a dynamic RR update to take effect
|
|
||||||
immediately and securely, the signature of the updated RR must
|
|
||||||
be computed online. It is worthwhile to note that although
|
|
||||||
a DNS dynamic update requestor is communicating with a name
|
|
||||||
server, the name server itself has no rights to update the
|
|
||||||
zone data. Instead, it is the zone private key, instead of
|
|
||||||
the name server's private key, that is needed in the dynamic
|
|
||||||
update.
|
|
||||||
|
|
||||||
In [RFC2137], two modes are defined to achieve the above goal.
|
|
||||||
In mode A, the zone private key is kept off-line and any
|
|
||||||
dynamic requests will be authorized by a dynamic update key
|
|
||||||
that is kept online. However, in this mode, since the zone
|
|
||||||
private key is not kept online, zone transfer security is
|
|
||||||
not automatically provided for dynamically added RRs, where
|
|
||||||
they could be omitted, and authorization is not provided for
|
|
||||||
the server denial of the existence of a dynamically added
|
|
||||||
type [RFC2137]. In this sense, this mode is not a genuine
|
|
||||||
DNS dynamic update. In mode B, on the other hand, the zone
|
|
||||||
private key is kept online at the zone primary name server;
|
|
||||||
thus, any legitimate DNS dynamic updates can be in effect
|
|
||||||
immediately.
|
|
||||||
|
|
||||||
1.3 - The existing drawbacks
|
|
||||||
|
|
||||||
Both of the above modes above require that a zone security
|
|
||||||
related private key be kept on line at the primary name server.
|
|
||||||
This practice raises security concerns [RFC2137]. First, it makes
|
|
||||||
the primary name server a single point of attack to an outside
|
|
||||||
attacker. Should the primary server be compromised, the on<6F>line
|
|
||||||
private key will be exposed, rendering dynamic RRs insecure
|
|
||||||
in mode A or, even worse, all RRs in the entire zone insecure
|
|
||||||
in mode B. Second, as an insider, the name server administrator
|
|
||||||
has access of this private key, compromising the role separation
|
|
||||||
principle and making it possible for the name server
|
|
||||||
administrator to abuse his/her power. (The importance of fending
|
|
||||||
off insider attacks has been emphasized by the security
|
|
||||||
community [RFC2196].)
|
|
||||||
|
|
||||||
2 - The Secure On-line DNS Dynamic Update Architecture
|
|
||||||
|
|
||||||
2.1 - Background: Threshold Cryptography
|
|
||||||
|
|
||||||
Threshold cryptography is a branch of cryptography that
|
|
||||||
enables a group of n members, 1,2, ..., n, to act as a single
|
|
||||||
communication party, using one pair of public and private keys
|
|
||||||
[Des87,Des94,Des97]. Similar to the traditional public key
|
|
||||||
cryptography, the public key is known to the public. Unlike
|
|
||||||
the traditional public key cryptography, the private key of
|
|
||||||
the group, K_private, does not exist as a whole. Rather, each
|
|
||||||
member i, 1 <= i <= n, will be assigned a number of key shares
|
|
||||||
of the private key. (For each public key cryptography algorithm,
|
|
||||||
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 3]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
a corresponding key sharing mechanism must be devised.) To
|
|
||||||
perform a cryptographic computation (such as decryption, signing,
|
|
||||||
identification, etc.) on message m with key K_private, b,
|
|
||||||
b <= n , group members will be required. Each member will compute
|
|
||||||
a partial result. Subsequently, the partial results are combined
|
|
||||||
to produce the final result. The combiner is not necessarily to
|
|
||||||
be trusted. Note that during this whole process the shared
|
|
||||||
private key, K_private, is never reconstructed. Further,
|
|
||||||
threshold cryptography requires that the shared private key
|
|
||||||
cannot be reconstructed from any t < b group members.
|
|
||||||
|
|
||||||
Practical threshold cryptography for RSA and DSS have been
|
|
||||||
designed. A practical threshold RSA is given by [DDB94] where
|
|
||||||
b = t+1 and a practical threshold DSS is given by [GJKR96b] where
|
|
||||||
t < n/2 and b = 2t+1.
|
|
||||||
|
|
||||||
2.2 - Introduction
|
|
||||||
+------------------------+
|
|
||||||
+---------+ #####| zone-security server 1 |
|
|
||||||
+---------+ | DNS | # +------------------------+
|
|
||||||
|DNS | DNS query | | #
|
|
||||||
| Inquirer|---------> | | #
|
|
||||||
+---------+ | Primary | # +------------------------+
|
|
||||||
| |#########| zone-security server 2 |
|
|
||||||
| Name | # +------------------------+
|
|
||||||
| | #
|
|
||||||
| | # . . .
|
|
||||||
+------+ | Server | # . . .
|
|
||||||
|DNS | DNS Dynamic | | # . . .
|
|
||||||
| User |=============> | | # +--------------------------+
|
|
||||||
+------+ Update request| | #####| zone-security server n-1 |
|
|
||||||
| | +--------------------------+
|
|
||||||
+---------+
|
|
||||||
|
|
|
||||||
| zone transfer
|
|
||||||
\|/
|
|
||||||
+-----------------+
|
|
||||||
| DNS Secondary |
|
|
||||||
| Name Server |
|
|
||||||
+-----------------+
|
|
||||||
|
|
||||||
In the above proposed architecture, we assume that there exist
|
|
||||||
(n-1), n >= 2, machines in a given DNS zone that are under the
|
|
||||||
control of the zone manager, but not under the control of the
|
|
||||||
name server administrators. These machines are called the
|
|
||||||
zone-security servers.
|
|
||||||
|
|
||||||
Using a threshold cryptography scheme with n > t >= 1, the
|
|
||||||
zone private key is shared among the (n-1) zone-security servers
|
|
||||||
and the primary name server. To update zone's data dynamically,
|
|
||||||
some of the servers will be needed. Let b > t be the number of
|
|
||||||
zone private key shares needed in the computation of the
|
|
||||||
signature of an RR. Since b >= 2, any change to the zone data
|
|
||||||
will need the cooperation of at least one zone-security server;
|
|
||||||
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 4]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
the name server administrator will have no way to modify the
|
|
||||||
digitally signed zone data. Thus, the role separation principle
|
|
||||||
holds. Moreover, the above architecture enhances intrusion
|
|
||||||
tolerance of DNS.
|
|
||||||
|
|
||||||
A DNS system is said to be k-intrusion-tolerant against an
|
|
||||||
entity, E, if breaking into k servers (including the
|
|
||||||
zone-security servers and the DNS name servers, if applicable)
|
|
||||||
that are outside E's control will not help E gain any knowledge
|
|
||||||
of the zone private key. A DNS system is said to be intrusion
|
|
||||||
tolerant against an outsider (insider) if it is at least
|
|
||||||
1-intrusion-tolerant against the outsider (insider). The
|
|
||||||
architecture proposed in this document can be configured to be
|
|
||||||
intrusion tolerant against outside and inside attackers.
|
|
||||||
|
|
||||||
Intrusion tolerance against outsider attacks. In the
|
|
||||||
architecture, the zone private key cannot be recovered from
|
|
||||||
any single location, thus, making the system intrusion
|
|
||||||
tolerant against an outside attacker. That is, even when an
|
|
||||||
outside attacker manages to corrupt l, l <= t, of relevant
|
|
||||||
servers (including the name servers and the zone-security
|
|
||||||
servers), secrecy of the zone private key is still
|
|
||||||
maintained.
|
|
||||||
|
|
||||||
Intrusion tolerance against insider attacks. The presence of
|
|
||||||
zone security servers and the necessity of their involvement
|
|
||||||
in signature computations constitute a defense line
|
|
||||||
against insider attacks, in particular, attacks from name
|
|
||||||
server administrators. Clearly, a hostile name server
|
|
||||||
administrator must break into at least t zone security
|
|
||||||
servers (to get access to the respective key shares) in
|
|
||||||
order to perform unauthorized RR signature computations.
|
|
||||||
|
|
||||||
3 - Implementation Details
|
|
||||||
|
|
||||||
[RFC2535] defines two types of SIG records, the DSA SIG and
|
|
||||||
the RSA/MD5 SIG. The important configuration and implementation
|
|
||||||
aspects of our proposed architecture with respect to these two types
|
|
||||||
of SIGs are given next. In the following statement,
|
|
||||||
the primary name server will be referred to as server 0 and the
|
|
||||||
(n-1) zone-security servers will be referred to as servers
|
|
||||||
1, 2, ... , (n-1).
|
|
||||||
|
|
||||||
3.1 - Example Configurations
|
|
||||||
|
|
||||||
The following table gives some representative configurations, in
|
|
||||||
terms of t and n, to achieve the above security levels in
|
|
||||||
different application cases.
|
|
||||||
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 5]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
+----------------------------+----------------------------+
|
|
||||||
| | RSA/MD5 SIG | DSA SIG |
|
|
||||||
| SECURITY LEVEL +-------------+--------------+
|
|
||||||
| | 1-2 | 2-4 | 1-3 | 2-5 |
|
|
||||||
+----------------------------+-----+-------+-------+------+
|
|
||||||
|Intrusion tolerant against | | | | |
|
|
||||||
| outsider attackers (Y/N) | Y | Y | Y | Y |
|
|
||||||
+----------------------------+-----+-------+-------+------+
|
|
||||||
|Intrusion tolerant against | | | | |
|
|
||||||
| insider attackers (Y/N) | N | Y | N | Y |
|
|
||||||
+----------------------------+-----+-------+-------+------+
|
|
||||||
|
|
||||||
3.2 - The RSA/MD5 SIG
|
|
||||||
|
|
||||||
Assume that, in RSA, the zone's private key is d and its
|
|
||||||
public key is (e, N). Phi(N) is the Euler function of N, i.e.,
|
|
||||||
phi(N) = (p-1)(q-1) where N = p * q. We use the threshold
|
|
||||||
digital signature scheme given in [DDB94] and now give
|
|
||||||
how the zone private key is shared and how to generate a
|
|
||||||
RSA/MD5 SIG RR online.
|
|
||||||
|
|
||||||
The 1-2 case. In this case, the zone manager generates a random,
|
|
||||||
d1, 1 < d1 < phi(N), and compute d2, d2 = d - d1 mod phi(N).
|
|
||||||
Values d1 and d2 are sent securely to the primary name server
|
|
||||||
and the zone-security server respectively.
|
|
||||||
|
|
||||||
To generate a RSA/MD5 SIG of m, where m is the MD5 digest of
|
|
||||||
an RR, the two servers will compute m^d1 mod N and m^d2 mod N
|
|
||||||
respectively. Then any one of them can combine the partial
|
|
||||||
results as m^d1 * m^d2 mod N = m^d mod N, the digital signature
|
|
||||||
of m by the zone private key.
|
|
||||||
|
|
||||||
The 2-4 case. To generate key shares, the zone manager generates
|
|
||||||
4 random numbers, d1, d2, d3, d4, where 1 < di < phi(N)
|
|
||||||
for 1 <= i <= 4. He/she will also compute two numbers,
|
|
||||||
d5 = d - d1 - d2 mod phi(N) and d6 = d - d3 - d4 mod phi(N).
|
|
||||||
Subsequently, d1 and d6 are sent to the primary name server,
|
|
||||||
d2 and d6 are sent to server 1, d3 and d5 are sent to server 2,
|
|
||||||
d4 and d5 are sent to server 3, as shown in the following table.
|
|
||||||
|
|
||||||
+---------------------+----------+----------+----------+---------+
|
|
||||||
| | SERVER 0 | SERVER 1 | SERVER 2 | SERVER 3|
|
|
||||||
+---------------------+----------+----------+----------+---------+
|
|
||||||
| KEYS ASSIGNED | d1, d6 | d2, d6 | d3, d5 | d4, d5 |
|
|
||||||
+-------------+-------+----------+----------+----------+---------+
|
|
||||||
|PARTICIPATING|(0,1,2)| d1 | d2 | d5 | |
|
|
||||||
| +-------+----------+----------+----------+---------+
|
|
||||||
| |(0,1,3)| d1 | d2 | | d5 |
|
|
||||||
| +-------+----------+----------+----------+---------+
|
|
||||||
| |(0,2,3)| d6 | | d3 | d4 |
|
|
||||||
| SERVERS +-------+----------+----------+----------+---------+
|
|
||||||
| |(1,2,3)| | d6 | d3 | d4 |
|
|
||||||
+-------------+-------+----------+----------+----------+---------+
|
|
||||||
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 6]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
To generate a RSA/MD5 SIG, any 3 of the 4 servers will be
|
|
||||||
needed. For example, if the primary name server and the
|
|
||||||
zone-security servers 1 and 2 are present (the (0,1,2) case in
|
|
||||||
the above table), the three servers will compute m^d1 mod N,
|
|
||||||
m^d2 mod N, and m^d3 mod N respectively. After that any one of
|
|
||||||
them can combine the partial results to produce
|
|
||||||
m^d1 * m^d2 * m^d3 mod N = m^d mod N, the digital signature of
|
|
||||||
m by the zone private key. Other possibilities of computing
|
|
||||||
the signature of m are summarized in the above table.
|
|
||||||
|
|
||||||
3.3 - The DSA SIG
|
|
||||||
|
|
||||||
In this case, for a t-n configuration (such as the 1-3 and 2-5
|
|
||||||
configurations), the zone manager will generate n shares of the
|
|
||||||
zone private key and distribute them to the n servers
|
|
||||||
using a (t,n) Shamir secret sharing scheme [Sha79]. When the
|
|
||||||
zone data needs updating, (2t+1) servers are required to jointly
|
|
||||||
compute the DSA SIG RR [GJKR96b].
|
|
||||||
|
|
||||||
5 - Security considerations
|
|
||||||
|
|
||||||
This document proposes an architecture to allow a DNS zone to
|
|
||||||
provide secure online DNS dynamic update. It uses threshold
|
|
||||||
digital signature to maintain the role separation principle and can
|
|
||||||
also provide intrusion tolerance against both outside attackers
|
|
||||||
and inside attackers.
|
|
||||||
|
|
||||||
It should be noted that the authentication a DNS dynamic update
|
|
||||||
requestor and authorization of a update request, which is handled
|
|
||||||
elsewhere such as [RFC2535], is not dealt in this document,
|
|
||||||
|
|
||||||
6 - Acknowledgements
|
|
||||||
|
|
||||||
The authors wish to thank for many helpful discussions on the
|
|
||||||
DNSSEC mailing list and would like to give special thanks to
|
|
||||||
Yvo Desmedt.
|
|
||||||
|
|
||||||
7 - References
|
|
||||||
|
|
||||||
[DDB94] Y. Desmedt, G. Di Crescenzo, and M. Burmester.
|
|
||||||
``Multiplicative nonabelian sharing schemes and their
|
|
||||||
application to threshold cryptography''. In J. Pieprzyk
|
|
||||||
and R. SafaviNaini, editors, Advances in Cryptology -
|
|
||||||
Asiacrypt '94, volume 917 of Lecture Notes in Computer
|
|
||||||
Science, pages 21--32, Wollongong, Australia,
|
|
||||||
November/December 1994. Springer-Verlag.
|
|
||||||
|
|
||||||
[Des87] Y. Desmedt. ``Society and group oriented cryptography:
|
|
||||||
a new concept''. In C. Pomerance, editor, Advances in
|
|
||||||
Cryptology, Proc. of Crypto '87, volume 293 of Lecture
|
|
||||||
Notes in Computer Science, pages 120--127, Santa Barbara,
|
|
||||||
California, U.S.A., August 16--20, 1988. Springer-Verlag.
|
|
||||||
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 7]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
[Des94] Y. Desmedt. ``Threshold cryptography''. European Trans.
|
|
||||||
on Telecommunications, 5(4):449--457, July-August 1994.
|
|
||||||
|
|
||||||
[Des97] Y. Desmedt. ``Some recent research aspects of threshold
|
|
||||||
cryptography''. In E. Okamoto, G. Davida, and M. Mambo,
|
|
||||||
editors, Information Security, volume 1396 of Lecture
|
|
||||||
Notes in Computer Science, pages 158--173, Tatsunokuchi,
|
|
||||||
Ishikawa, Japan, September 1997. Springer-Verlag.
|
|
||||||
|
|
||||||
[DSA2] National Institute for Standards and Technology.
|
|
||||||
``Digital signature standard (DSS)'', February 2000.
|
|
||||||
|
|
||||||
[GJKR96b] R. Gennaro, S. Jarecki, H. Krawczyk, and T. Rabin.
|
|
||||||
``Robust threshold DSS signatures''. In U. Maurer,
|
|
||||||
editor, Advances in Cryptology - Eurocrypt '96,
|
|
||||||
volume 1070 of Lecture Notes in Computer Science,
|
|
||||||
pages 354-371, Zaragoza, Spain, May 12--16 1996.
|
|
||||||
Springer-Verlag.
|
|
||||||
|
|
||||||
[GMP] T. Granlund. ``GNU MP''. Source code available from
|
|
||||||
http://www.gnu.org/manual/gmp/index.html.
|
|
||||||
|
|
||||||
[Liu99] C. Liu. ``Securing an Internet name server''.
|
|
||||||
Presentation, 1999. Available at
|
|
||||||
http://www.acmebw.com/papers/securing.pdf.
|
|
||||||
|
|
||||||
[RFC1034] P. Mockapetris, ``Domain Names - Concepts and
|
|
||||||
Facilities,'' RFC 1034, ISI, November 1987.
|
|
||||||
|
|
||||||
[RFC1035] P. Mockapetris, ``Domain Names - Implementation and
|
|
||||||
Specification,'' RFC 1035, ISI, November 1987.
|
|
||||||
|
|
||||||
[RFC2136] P. Vixie (Ed.), S. Thomson, Y. Rekhter, J. Bound ``Dynamic
|
|
||||||
Updates in the Domain Name System,'' RFC 2136, ISC &
|
|
||||||
Bellcore & Cisco & DEC, April 1997.
|
|
||||||
|
|
||||||
[RFC2137] D. Eastlake ``Secure Domain Name System Dynamic Update,''
|
|
||||||
RFC 2137, CyberCash, April 1997.
|
|
||||||
|
|
||||||
[RFC2196] B. Fraser. ``Site Security Handbook,'' RFC2196, September
|
|
||||||
1997.
|
|
||||||
|
|
||||||
[RFC2535] D. Eastlake, ``Domain Name System Security Extensions,''
|
|
||||||
RFC 2535, IBM, March 1999.
|
|
||||||
|
|
||||||
[SBM99] R. Sandhu, V. Bhamidipati, and Q. Munawer. ``The ARBAC97
|
|
||||||
model for role-based administration of roles''. ACM
|
|
||||||
Transactions on Information System Security, 2(1):105-
|
|
||||||
135, February 1999.
|
|
||||||
|
|
||||||
[Sha79] A. Shamir. ``How to share a secret''. Commun. ACM,
|
|
||||||
22:612-613, November 1979.
|
|
||||||
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 8]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
8 - Author's Address
|
|
||||||
|
|
||||||
A postscript of this document is available from
|
|
||||||
http://www.cs.gmu.edu/~xwang4/dnssecureonline.ps
|
|
||||||
|
|
||||||
Send all comments to xwang4@cs.gmu.edu
|
|
||||||
|
|
||||||
Xunhua Wang
|
|
||||||
Department of Computer Science
|
|
||||||
George Mason University
|
|
||||||
Fairfax, VA 22030-4444
|
|
||||||
USA
|
|
||||||
|
|
||||||
Phone: +1-703-993-1536
|
|
||||||
Fax: +1-703-993-1710
|
|
||||||
EMail: xwang4@cs.gmu.edu
|
|
||||||
|
|
||||||
Yih Huang
|
|
||||||
Department of Computer Science
|
|
||||||
George Mason University
|
|
||||||
Fairfax, VA 22030-4444
|
|
||||||
USA
|
|
||||||
|
|
||||||
Phone: +1-703-993-1540
|
|
||||||
Fax: +1-703-993-1710
|
|
||||||
EMail: hyangyih@cs.gmu.edu
|
|
||||||
|
|
||||||
David Rine
|
|
||||||
Department of Computer Science
|
|
||||||
George Mason University
|
|
||||||
Fairfax, VA 22030-4444
|
|
||||||
USA
|
|
||||||
|
|
||||||
Phone: +1-703-993-1546
|
|
||||||
Fax: +1-703-993-1710
|
|
||||||
EMail: drine@cs.gmu.edu
|
|
||||||
|
|
||||||
|
|
||||||
9 - 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
|
|
||||||
|
|
||||||
|
|
||||||
Wang, Huang & Rine [Page 9]
|
|
||||||
|
|
||||||
INTERNET-DRAFT June 2000
|
|
||||||
|
|
||||||
|
|
||||||
Internet Society or other Internet organizations, except as needed
|
|
||||||
for the purpose of developing Internet standards in which case
|
|
||||||
the procedures for copyrights defined in the Internet Standards
|
|
||||||
process must be followed, or as required to translate it into
|
|
||||||
languages other than English.
|
|
||||||
|
|
||||||
The limited permissions granted above are perpetual and will not be
|
|
||||||
revoked by the Internet Society or its successors or assigns.
|
|
||||||
|
|
||||||
This document and the information contained herein is provided on
|
|
||||||
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
|
|
||||||
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
|
|
||||||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
|
|
||||||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expires December 2000 [Page 10]
|
|
||||||
|
|
||||||
INTERNET-DRAFT Secure Online DNS Dynamic Update June 2000
|
|
19
doc/draft/draft-whr-dnsext-secure-online-update-01.txt
Normal file
19
doc/draft/draft-whr-dnsext-secure-online-update-01.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||||
|
Internet-Drafts directories have a maximum life of six months. After
|
||||||
|
that time, they are deleted. This Internet-Draft was not published as
|
||||||
|
an RFC.
|
||||||
|
|
||||||
|
Internet-Drafts are not an archival document series, and expired
|
||||||
|
drafts, such as this one, are not available; please do not ask for
|
||||||
|
copies... they are not available. The Secretariat does not have
|
||||||
|
information as to future plans of the authors or working groups WRT the
|
||||||
|
deleted Internet-Draft.
|
||||||
|
|
||||||
|
For more information or a copy of the document, contact the author directly.
|
||||||
|
|
||||||
|
Draft Author(s):
|
||||||
|
|
||||||
|
Y. Huang: huang@infonet.com
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user