< draft-ietf-6man-uri-zoneid-01.txt | draft-ietf-6man-uri-zoneid-02A.txt > | |||
---|---|---|---|---|
6MAN B. Carpenter | 6MAN B. Carpenter | |||
Internet-Draft Univ. of Auckland | Internet-Draft Univ. of Auckland | |||
Updates: 3986, 4007 (if approved) R. Hinden | Updates: 3986, 4007 (if approved) R. Hinden | |||
Intended status: Standards Track Check Point | Intended status: Standards Track Check Point | |||
Expires: November 30, 2012 May 29, 2012 | Expires: January 12, 2013 July 11, 2012 | |||
Representing IPv6 Zone Identifiers in Uniform Resource Identifiers | Representing IPv6 Zone Identifiers in Uniform Resource Identifiers | |||
draft-ietf-6man-uri-zoneid-01 | draft-ietf-6man-uri-zoneid-01 | |||
Abstract | Abstract | |||
This document describes how the Zone Identifier of an IPv6 scoped | This document describes how the Zone Identifier of an IPv6 scoped | |||
address can be represented in a Uniform Resource Identifier that | address can be represented in a Uniform Resource Identifier that | |||
includes a literal IPv6 address. It updates RFC 3986 and RFC 4007. | includes a literal IPv6 address. It updates RFC 3986 and RFC 4007. | |||
skipping to change at page 1, line 33 | skipping to change at page 1, line 33 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on November 30, 2012. | This Internet-Draft will expire on January 12, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 10 | skipping to change at page 2, line 10 | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Specification . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Specification . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Web Browsers . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Web Browsers . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
7. Change log [RFC Editor: Please remove] . . . . . . . . . . . . 6 | 7. Change log [RFC Editor: Please remove] . . . . . . . . . . . . 7 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . . 7 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 7 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . . 7 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 7 | |||
Appendix A. Alternatives Considered . . . . . . . . . . . . . . . 7 | Appendix A. Alternatives Considered . . . . . . . . . . . . . . . 8 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
1. Introduction | 1. Introduction | |||
[RFC3986] defined how a literal IPv6 address can be represented in | [RFC3986] defined how a literal IPv6 address can be represented in | |||
the "host" part of a Uniform Resource Identifier (URI). | the "host" part of a Uniform Resource Identifier (URI). | |||
Subsequently, [RFC4007] extended the text representation of limited- | Subsequently, [RFC4007] extended the text representation of limited- | |||
scope IPv6 addresses such that a zone identifier may be concatenated | scope IPv6 addresses such that a zone identifier may be concatenated | |||
to an address, for purposes described in that RFC. Zone identifiers | to an address, for purposes described in that RFC. Zone identifiers | |||
are especially useful in contexts where literal addresses are | are especially useful in contexts where literal addresses are | |||
skipping to change at page 3, line 37 | skipping to change at page 3, line 37 | |||
Some versions of some browsers accept the RFC 4007 syntax for scoped | Some versions of some browsers accept the RFC 4007 syntax for scoped | |||
IPv6 addresses embedded in URIs, i.e., they have been coded to | IPv6 addresses embedded in URIs, i.e., they have been coded to | |||
interpret the "%" sign according to RFC 4007 instead of RFC 3986. | interpret the "%" sign according to RFC 4007 instead of RFC 3986. | |||
Clearly this approach is very convenient for users, although it | Clearly this approach is very convenient for users, although it | |||
formally breaches the syntax rules of RFC 3986. The present document | formally breaches the syntax rules of RFC 3986. The present document | |||
defines an alternative approach that respects and extends the rules | defines an alternative approach that respects and extends the rules | |||
of URI syntax. | of URI syntax. | |||
Thus, this document updates [RFC3986] by adding syntax to allow a | Thus, this document updates [RFC3986] by adding syntax to allow a | |||
zone identifier to be included in a literal IPv6 address within a | zone identifier to be included in a literal IPv6 address within a | |||
URI. It also clarifies some statements in [RFC4007]. | URI. It also updates [RFC4007], in particular by adding a second | |||
allowed delimiter for zone identifiers. | ||||
It should be noted that in other contexts than a user interface, a | It should be noted that in other contexts than a user interface, a | |||
zone identifier is mapped into a numeric zone index or interface | zone identifier is mapped into a numeric zone index or interface | |||
number. The MIB textual convention [RFC4001] and the socket | number. The MIB textual convention [RFC4001] and the socket | |||
interface [RFC3493] define this as a 32 bit unsigned integer. The | interface [RFC3493] define this as a 32 bit unsigned integer. The | |||
mapping between the human-readable zone identifier string and the | mapping between the human-readable zone identifier string and the | |||
numeric value is a host-specific function that varies between | numeric value is a host-specific function that varies between | |||
operating systems. The present document is concerned only with the | operating systems. The present document is concerned only with the | |||
human-readable string. | human-readable string. | |||
skipping to change at page 5, line 11 | skipping to change at page 5, line 11 | |||
optionally to any literal address. This allows flexibility for | optionally to any literal address. This allows flexibility for | |||
unknown future uses. The rule quoted above from RFC 3986 is replaced | unknown future uses. The rule quoted above from RFC 3986 is replaced | |||
by three rules: | by three rules: | |||
IP-literal = "[" ( IPv6addrz / IPvFuture ) "]" | IP-literal = "[" ( IPv6addrz / IPvFuture ) "]" | |||
ZoneID = 1*( unreserved / pct-encoded ) | ZoneID = 1*( unreserved / pct-encoded ) | |||
IPv6addrz = IPv6address [ "-" ZoneID ] | IPv6addrz = IPv6address [ "-" ZoneID ] | |||
Section 11 of RFC 4007 is updated to allow "-" as well as "%" as the | ||||
preceding delimiter of a ZoneID. | ||||
The rules in [RFC5952] SHOULD be applied in producing URIs. | The rules in [RFC5952] SHOULD be applied in producing URIs. | |||
RFC 3986 states that URIs have a global scope, but that in some cases | ||||
their interpretation depends on the end-user's context. URIs | ||||
including a ZoneID are to be interpreted only in the context of the | ||||
host where they originate, since the ZoneID is of local signifance | ||||
only. | ||||
The 6man WG discussed and rejected an alternative in which the | The 6man WG discussed and rejected an alternative in which the | |||
existing syntax of IPv6address would be extended by an option to add | existing syntax of IPv6address would be extended by an option to add | |||
the ZoneID only for the case of link-local addresses. It was felt | the ZoneID only for the case of link-local addresses. It was felt | |||
that the present solution offers more flexibility for future uses and | that the present solution offers more flexibility for future uses and | |||
is more straightforward to implement. | is more straightforward to implement. | |||
RFC 4007 offers guidance on how the ZoneID affects interface/address | RFC 4007 offers guidance on how the ZoneID affects interface/address | |||
selection inside the IPv6 stack. Note that the behaviour of an IPv6 | selection inside the IPv6 stack. Note that the behaviour of an IPv6 | |||
stack if passed a non-zero zone index for an address other than link- | stack if passed a non-zero zone index for an address other than link- | |||
local is undefined. | local is undefined. | |||
3. Web Browsers | 3. Web Browsers | |||
Due to the lack of a standard in this area, web browsers have been | ||||
inconsistent in providing for ZoneIDs. Many have no support, but | ||||
there are examples of ad hoc support. For example, older versions of | ||||
Firefox allowed the use of a ZoneID preceded by an unescaped "%" | ||||
character, but this was removed for consistency with RFC 3986. As | ||||
another example, recent versions of Internet Explorer allow use of a | ||||
ZoneID preceded by a "%" character escaped as "%25", still beyond the | ||||
syntax allowed by RFC 3986. This syntax extension is in fact used | ||||
internally in the Windows operating system and some of its APIs. | ||||
In recent years, web browsers have evolved considerably and now | In recent years, web browsers have evolved considerably and now | |||
accept and parse many forms of input that are not a formal URI. | accept and parse many forms of input that are not a formal URI. | |||
Examples of this include host names, search items, bookmarks, search | Examples of this include host names, search items, bookmarks, search | |||
history, etc. For example the Google Chrome browser now calls the | history, etc. For example the Google Chrome browser now calls the | |||
"address bar" the "omnibox" [chrome]. The authors believe it is | "address bar" the "omnibox" [chrome]. The authors believe it is | |||
feasible, and very convenient for users, if browsers also allow (in | feasible, and very convenient for users, if browsers also allow (in | |||
addition to the formal URI syntax defined in this document) a | addition to the formal URI syntax defined in this document) a syntax | |||
syntax that will enable cut and paste. For example: | that will enable cut and paste. For example: | |||
http://[fe80::a%en1] | http://[fe80::a%en1] | |||
It seems that modern browsers can be adapted to parse this because it | It seems that modern browsers can be adapted to parse this because it | |||
is inside of the "[" "]"'s. This would permit the output of commands | is inside of the "[" "]"'s. This would permit the output of commands | |||
like ping6 -w ff02::1%en1 to be "cut and pasted" into a browser | like ping6 -w ff02::1%en1 to be "cut and pasted" into a browser | |||
address bar. Consequently this document recommends that browsers | address bar. Consequently this document recommends that browsers | |||
support this syntax in addition to the formal URI syntax defined | support this syntax in addition to the formal URI syntax defined | |||
above. | above. | |||
skipping to change at page 6, line 26 | skipping to change at page 6, line 44 | |||
6. Acknowledgements | 6. Acknowledgements | |||
The lack of this format was first pointed out by Margaret Wasserman | The lack of this format was first pointed out by Margaret Wasserman | |||
some years ago, and more recently by Kerry Lynn. A previous draft | some years ago, and more recently by Kerry Lynn. A previous draft | |||
document by Martin Duerst and Bill Fenner [I-D.fenner-literal-zone] | document by Martin Duerst and Bill Fenner [I-D.fenner-literal-zone] | |||
discussed this topic but was not finalised. | discussed this topic but was not finalised. | |||
Valuable comments and contributions were made by Karl Auer, Carsten | Valuable comments and contributions were made by Karl Auer, Carsten | |||
Bormann, Brian Haberman, Tatuya Jinmei, Tom Petch, Tomoyuki Sahara, | Bormann, Brian Haberman, Tatuya Jinmei, Tom Petch, Tomoyuki Sahara, | |||
Juergen Schoenwaelder, and Ole Troan. | Juergen Schoenwaelder, Dave Thaler, and Ole Troan. | |||
Brian Carpenter was a visitor at the Computer Laboratory, Cambridge | Brian Carpenter was a visitor at the Computer Laboratory, Cambridge | |||
University during part of this work. | University during part of this work. | |||
This document was produced using the xml2rfc tool [RFC2629]. | This document was produced using the xml2rfc tool [RFC2629]. | |||
7. Change log [RFC Editor: Please remove] | 7. Change log [RFC Editor: Please remove] | |||
draft-ietf-6man-uri-zoneid-02: additional WG comments, 2012-07-11. | ||||
draft-ietf-6man-uri-zoneid-01: use "-" instead of %25, listed | draft-ietf-6man-uri-zoneid-01: use "-" instead of %25, listed | |||
alternatives in Appendix, according to WG debate, added suggestion | alternatives in Appendix, according to WG debate, added suggestion | |||
for browser developers, 2012-05-29. | for browser developers, 2012-05-29. | |||
draft-ietf-6man-uri-zoneid-00: adopted by WG, fixed syntax to allow | draft-ietf-6man-uri-zoneid-00: adopted by WG, fixed syntax to allow | |||
for % encoded characters, 2012-02-17. | for % encoded characters, 2012-02-17. | |||
draft-carpenter-6man-uri-zoneid-01: chose Option 2, removed 15 | draft-carpenter-6man-uri-zoneid-01: chose Option 2, removed 15 | |||
character limit, added explanation of ID/number mapping and other | character limit, added explanation of ID/number mapping and other | |||
clarifications, 2012-02-08. | clarifications, 2012-02-08. | |||
End of changes. 12 change blocks. | ||||
9 lines changed or deleted | 31 lines changed or added | |||
This html diff was produced by rfcdiff 1.39p1. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |