Subject: An Internet-Draft on literal scoped addresses with accompanying zone IDs in URIs

From: Bill Fenner <[email-masked]>
Date: Fri, 19 Nov 2004 09:57:34 -0500

Folks,

  When looking at the URI/IRI literal scoped address format (nee RFC 2732,
now rolled into the uri/iri specs), we noticed that there was a small gap -
you can't specify a zone ID.  Since some implementations require a zone ID
to connect to a possibly-ambiguous scoped address even if it's not actually
ambiguous, this is potentially a real problem.  My thought is having to
configure a home router/dhcp/dns server via HTTP via a link-local address
when it's lost its configuration; another scenario is SNMP URIs that get
passed between different agents/managers on the same system.

  Some think that this problem space is so small it's not worth it; I think
it's at least worth throwing out a strawman and seeing what happens to it,
especially since this proposal includes a modification to the grammar for
zone IDs in draft-ietf-ipv6-scoping-arch; better to do that before it gets
published as an RFC if we're going to.

  The I-D announcement follows.  It's quite short, so please take a look.

Thanks,

  Bill & Martin.

----- Begin forwarded message:

From: [email-masked]
Subject: I-D ACTION:draft-fenner-literal-zone-00.txt
Date: Thu, 18 Nov 2004 15:14:29 -0500
To: [email-masked]
Reply-to: [email-masked]

	Title		: A Format for IPv6 Scope Zone Identifiers in
                          Literal URIs
	Author(s)	: B. Fenner, M. Duerst
	Filename	: draft-fenner-literal-zone-00.txt
	Pages		: 9
	Date		: 2004-11-18
	
This document specifies the format to be used when specifying a zone
   identifier with a literal IPv6 address in URIs and IRIs.  While this
   combination is expected to be needed rarely, it is important to
   specify the exact syntax.

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-fenner-literal-zone-00.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of the
message.  
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-fenner-literal-zone-00.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-fenner-literal-zone-00.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

----- End forwarded message:

--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email-masked]
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

---

From: Bob Hinden <[email-masked]>
Date: Fri, 19 Nov 2004 10:48:38 -0800

Bill,

>published as an RFC if we're going to.

I agree that doing this is worthwhile even for the few cases where it will 
be used.

A few comments on the tradeoffs.

>2.1  Tradeoffs
>
>    o  Use _ or Z or some other character as separator.
>       Pro:
>          +  Fits current ABNF.
>          +  Doesn't require confusing percent-encoding.
>       Con:
>          +  Have to remember different separator.
>          +  Can't copy and paste from other forms.  (But that is the
>             case also for percent-encoding, which usually doesn't happen
>             automatically.)

I think loosing the ability to cut and paste these addresses is a 
problem.  The % is in widespread usage today.  For example from the machine 
I am typing on:

   Connection-specific DNS Suffix  . : americas.nokia.com
   Description . . . . . . . . . . . : Intel(R) PRO/100 VE Network Connection
   Physical Address. . . . . . . . . : 00-0D-60-2F-8D-F5
   Dhcp Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IP Address. . . . . . . . . . . . : 172.19.69.87
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   IP Address. . . . . . . . . . . . : fe80::20d:60ff:fe2f:8df5%4
   Default Gateway . . . . . . . . . : 172.19.69.1
   DHCP Server . . . . . . . . . . . : 172.18.140.14
   DNS Servers . . . . . . . . . . . : 172.18.140.17
                                       172.18.241.9
                                       131.228.6.22
                                       fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   Primary WINS Server . . . . . . . : 10.241.36.9
   Secondary WINS Server . . . . . . : 10.241.36.8
   Lease Obtained. . . . . . . . . . : November 19, 2004 08:41:58 AM
   Lease Expires . . . . . . . . . . : November 22, 2004 08:41:58 AM

It would be much better if these addresses could be cut/paste without 
having to also convert the % to something else.

>       Issues:
>          +  Zone ID is currently loosely specified in scoping-arch; in
>             order to fit this grammar it needs to be tighter.
>          +  Should "_" (or whatever delimiter) be allowed in the zone
>             ID? ("No" complicates the ABNF)
>          +  Can a scoping-arch revision change the character in use? It
>             could suggest that "_" can be used as an alternative to "%".

As above, the "%" is current usage.

>    o  Use %25 as an encoded %, the scoping-arch separator.
>       Pro:
>          +  "%" is the same character.
>       Con:
>          +  "%25" is confusing.
>          +  Can't copy and paste from other forms where the % is not
>             encoded.  (But that is the case also when using a different
>             character for the separator.)
>          +  IPvFuture ABNF doesn't permit percent-encoded characters.

Agree this is very ugly and IMHO worse than "-".

My dump question (that exposes my lack of knowledge about URIs/etc.) is 
since the literal IPv6 address are enclosed in "[" "]" to allow for the ":" 
in the literal IPv6 address, why can't the "%" be used in the same 
way?  For example:

   http://[fe80::20d:60ff:fe2f:8df5%4]

Please excuse my ignorance on this, but it would be good to explain this 
(and include this information in the draft).

Thanks,
Bob

>A URL for this Internet-Draft 
>is:http://www.ietf.org/internet-drafts/draft-fenner-literal-zone-00.txt
>

---

From: JORDI PALET MARTINEZ <[email-masked]>
Date: Fri, 19 Nov 2004 20:32:29 +0100

Agree, I suggested the same a few weeks ago ...

Regards,
Jordi

> De: Bob Hinden <[email-masked]>
> Responder a: [email-masked]
> Fecha: Fri, 19 Nov 2004 10:48:38 -0800
> Para: Bill Fenner <[email-masked]>
> CC: [email-masked], [email-masked]
> Asunto: Re: An Internet-Draft on literal scoped addresses with accompanying
> zone IDs in URIs
> 
> Bill,
> 

**********************************
Madrid 2003 Global IPv6 Summit
Presentations and videos on line at:
http://www.ipv6-es.com

This electronic message contains information which may be privileged or confidential. The information is intended to be for the use of the individual(s) named above. If you are not the intended recipient be aware that any disclosure, copying, distribution or use of the contents of this information, including attached files, is prohibited.

---

From: Bill Fenner <[email-masked]>
Date: Fri, 19 Nov 2004 15:57:06 -0500

>problem.  The % is in widespread usage today.

Indeed, that's why this whole thing is a sticky issue and there's
no obvious answer.  My FreeBSD and MacOS machines all use the % too,
and have for years.

>(and include this information in the draft).

You're right, we probably distilled the discussion a little too
much.  We should add a third entry to the list and list its pros
and cons for a bare %.

The basic issue is how special % is in URLs, because of
percent-encoding.  Section 2.4 of draft-fielding-uri-rfc2396bis
(the full Standard URI spec, currently in the RFC-Editor's queue)
says:

   Because the percent ("%") character serves as the indicator for
   percent-encoded octets, it must be percent-encoded as "%25" in order
   for that octet to be used as data within a URI.

The newer IRI spec (in IESG Evaluation; draft-duerst-iri-10.txt)
specifies an encoding of URIs to IRIs that assumes that any percent
anywhere in the URI begins a percent-encoded octet.  Allowing a
bare "%" would complicate these rules quite a bit.  There would be
no way to know without parsing the URI further whether the % began
a %-encoded octet or not.  (An accidental example of how ambiguous
this can be is the one of the link-local addresses of my home system:
fe80::240:5ff:fe42:d6de%de1 - %de is a legal percent-encoded octet,
or the introduction of a zone ID "de1".)

  Bill

---

From: "Roy T. Fielding" <[email-masked]>
Date: Fri, 19 Nov 2004 19:03:51 -0800

> no obvious answer.  My FreeBSD and MacOS machines all use the % too,

I don't think that they are actively used for significant operations.
Yes, they are implemented (inconsistently) on multiple platforms
(some allow names to occur after the '%", while others assume that
the zone ID will be a small integer), but I do not think that adding
a new delimiter would have an adverse affect on working software.
In particular, it would give all of the implementations a single
standard definition to implement towards.

> or the introduction of a zone ID "de1".)

More importantly, use of percent in the host portion of a URI
is known to be non-interoperable.  Most compliant implementations
do not expect percent-encodings in the IP literals and thus will
attempt to pass the '%de1' on to the system library for conversion
to an address.  Other implementations will see it as an error.
Some implementations will look for and decode anything that looks
like a percent-encoded octet as soon as the component is extracted
from the URI, regardless of the specification.  Thus, the only
interoperable URIs are those in which percent is not used
in the host component, which is why the URI syntax does not allow
them in host except as required for IRIs.

There is nothing we can do in the specifications to change the
fact that using a % as a zone ID separator in URIs will result in
interoperability failures.  Those applications are already deployed.
It would be easier to change all of the deployed operating systems
that contain IPv6 to allow an additional delimiter character if
cut-and-paste is really important.

Cheers,

Roy T. Fielding                            <http://roy.gbiv.com/>
Chief Scientist, Day Software              <http://www.day.com/>