📄 draft-ietf-idn-idne-02.txt
字号:
IDNE-capable senders and receivers MUST support UDP packet sizes of 1220octets, not including IP and UDP headers (note that the minimum MTU forIPv6 is 1280 [RFC2460]). A sender MUST announce its capability in theOPT pseudo-RR described in section 4.3 of [RFC2671] by having the CLASSsender's UDP payload size be greater than or equal to 1220.6. Canonalization, Prohibited Characters, and Case FoldingThe string in the label MUST be pre-processed as described in [NAMEPREP]before the query or response is prepared. A query or response MUST NOTcontain a label that does not conform to [NAMEPREP].7. Versions of IDNEThe IDN protocol version number MUST be included in the OPT RR RDATA ofEDNS (described in Section 4.4 of [RFC2671]). An OPTION-CODE will beassigned by IANA for storing the IDNE protocol version number; thisdocument uses 0x0001 for the OPTION-CODE. The value (thatis, the OPTION-DATA) is the version number coded in 8 bits.All requesters MUST send this information as part of the OPT RR includedin the EDNS packet.7.1 This version of IDNEThis document describes version 1 of IDNE. This version is a combinationof the protocol in this document and the rules as described in[NAMEPREP]. Note that [NAMEPREP] describes a single version of the listof canonicalization, case folding, and prohibited characters, and thatthis document is linked to that single version of [NAMEPREP].The identifiers for this specification are:OPTION-CODE = 0x0001 (IDNE protocol version)OPTION-LENGTH = 0x0001 (1 octet following)OPTION-DATA = 0x01 (IDNE protocol version 1)7.2 Creating new versions of IDNEA new version of IDNE is created by a standards-track RFC thatspecifies:- a normative reference to [NAMEPREP] or a successor document to[NAMEPREP]- an IDNE version number that is 1 greater than the highest IDNE versionnumber at the time the RFC is publishedIf there are any changes to the encoding or interpretation of theprotocol, they must also be specified in the same standards-track RFC.7.3 Prohibited characters and versions of IDNEIf a server receives a request containing an illegal or unknowncharacter (as described in the version number in the request), it MUSTsend a NOTIMPL RCODE to the client. For example, if a server thatunderstands both version 1 and version 2 receives a request that ismarked as version 1, but contains a label that includes a character thatis prohibited in version 1 but allowed in version 2, that server muststill send a NOTIMPL RCODE to the client.8. API SpecificationsThe current API for TCP/IP uses gethostbyname and gethostbyaddr for IPv4and getnodeipbyname and getnodeipbyaddr (specified in [RFC 2671]) forboth IPv4 and IPv6. These function calls returns hostent structs, wherethe h_name field contains a pointer to a char. In this context,receiving a UTF-8 string mean that the application should know thatUTF-8 uses more than one octet per char.A new flag "IDN" (to appear in netdb.h) is defined to be passed in theflags argument of getnodeipbynode and getnodeipbyaddr. This flag tellsthe resolver to request an IDNE-encoded name. No new return code isdefined since the returned codes in RFC 2671 are meaningful in the IDNEcontext.If one has not yet converted his code to IPv6 and still wants to enableIDNs with this API, one can do a macro of the getnodeipby* functionsmapped to the IPv4 gethostby* ones, including the "IDN" flag, and thenprocess differently based on the presence of the flag.9. Transition and DeploymentDeployment of this proposal means updating clients and servers, as wellas applications and protocols, and therefore a transition strategy isproposed. Because many DNS servers do not yet handle IDNE and may takeyears or decades to do so, an ASCII-compatible encoding (ACE) format forIDN names is also needed as a transition to an all-IDNE DNS. Note thatIDNE and an ACE are not related, and do not interact in the DNS. If theIETF chooses to have an ACE mechanism in use at the same time as IDNE,it would be wise to choose an ACE that allows as many characters aspossible in the name parts and full names.IDNE allows names with as many characters as current names. This meansthat it is possible to create names in IDNE that are longer than thosethat can be created in the ACE protocols that have been described sofar. Although not prohibited, it is unwise to create a name that can belegally represented in IDNE but not in the ACE, or a name that can belegally represented in the ACE but not in IDNE.The IETF should periodically evaluate the benefits and problemsassociated with having three different formats for names (STD13, IDNE,and ACE). If at some point it is decided that the problems outweigh thebenefits, the IETF can state a time when one or more of the servicesshould not be used on the Internet.10. Root Server ConsiderationsBecause this specification uses EDNS, root servers should be prepared toreceive EDNS requests. This specification handles IDN top-level domainsin exactly the same fashion as it does every other domain.Considerations about IDN top-level domains are outside of this work, butthe first IDN top-level domains would require all root servers to beready for IDNE requests.11. IANA Considerations[[ TBD. This section will have two parts. The first will request an EDNSoption code. The second will specify how IDNE version numbers areallocated (namely, standards-track RFC only). ]]12. Security ConsiderationsBecause IDNE uses EDNS, it inherits the same security considerations asEDNS.Much of the security of the Internet relies on the DNS. Thus, any changeto the characteristics of the DNS can change the security of much of theInternet.Host names are used by users to connect to Internet servers. Thesecurity of the Internet would be compromised if a user entering asingle internationalized name could be connected to different serversbased on different interpretations of the internationalized host name.Because this document normatively refers to [NAMEPREP] and [RFC2671],it includes the security considerations from those documents as well.13. References[IDNCOMP] Paul Hoffman, "Comparison of Internationalized Domain NameProposals", draft-ietf-idn-compare.[ISO10646] ISO/IEC 10646-1:1993. International Standard -- Informationtechnology -- Universal Multiple-Octet Coded Character Set (UCS) -- Part1: Architecture and Basic Multilingual Plane. Five amendments and atechnical corrigendum have been published up to now. UTF-16 is describedin Annex Q, published as Amendment 1. 17 other amendments are currentlyat various stages of standardization. [[[ THIS REFERENCE NEEDS TO BEUPDATED AFTER DETERMINING ACCEPTABLE WORDING ]]][NAMEPREP] Paul Hoffman & Marc Blanchet, "Preparation ofInternationalized Host Names", draft-ietf-idn-nameprep.[RFC2119] Scott Bradner, "Key words for use in RFCs to IndicateRequirement Levels", March 1997, RFC 2119.[RFC2279] Francois Yergeau, "UTF-8, a transformation format of ISO10646", January 1998, RFC 2279.[RFC2460] Steve Deering & Bob Hinden, "Internet Protocol, Version 6 (IPv6)Specification", December 1998, RFC 2460.[RFC2671] Paul Vixie, "Extension Mechanisms for DNS (EDNS0)", August1999, RFC 2671.[STD13] Paul Mockapetris, "Domain names - implementation andspecification", November 1987, STD 13 (RFC 1035).[UNICODE3] The Unicode Consortium, "The Unicode Standard -- Version3.0", ISBN 0-201-61633-5. Described at<http://www.unicode.org/unicode/standard/versions/Unicode3.0.html>.A. AcknowledgementsThis document is the result of the thinking of many people. The followingpeople made significant comments on the early drafts:Andre CormierAndrew DraperBill SommerfeldFrancois YergeauB. Changes from -01 to -02None.C. Authors' AddressesMarc BlanchetViagenie2875 boul. Laurier, bureau 300Sainte-Foy, QC G1V 2M2 CanadaMarc.Blanchet@viagenie.qc.caPaul HoffmanInternet Mail Consortium and VPN Consortium127 Segre PlaceSanta Cruz, CA 95060 USAphoffman@imc.org
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -