ietf
[Top] [All Lists]

Re: IPv6 Zone Identifiers Considered Hateful

2012-03-21 16:52:07
On 2012-03-22 09:43, Fred Baker wrote:
On Mar 19, 2012, at 11:55 AM, Sabahattin Gucukoglu wrote:

I've obviously not been doing all my homework, and RFC 4007 slipped my 
attention.  Worse, for all the communication my IPv6 nodes are doing amongst 
themselves using link-local addresses, it's never really been much more than 
a hastily-justified curiosity why, when I ping one from the other using 
link-local-scoped addresses, I have to put in this zone identifier (%ifname 
on BSD and Linux).

To be honest, I'm still not sure I understand the argument for a zone 
identifier.

I've always viewed them as a fault diagnosis tool, mainly.
But the first paragraph of section 6 of RFC 4007 makes a stack
implementation argument:

6.  Zone Indices

   Because the same non-global address may be in use in more than one
   zone of the same scope (e.g., the use of link-local address fe80::1
   in two separate physical links) and a node may have interfaces
   attached to different zones of the same scope (e.g., a router
   normally has multiple interfaces attached to different links), a node
   requires an internal means to identify to which zone a non-global
   address belongs.  This is accomplished by assigning, within the node,
   a distinct "zone index" to each zone of the same scope to which that
   node is attached, and by allowing all internal uses of an address to
   be qualified by a zone index.

In other words if the IETF doesn't define the zone index, every
implementor will have to do so anyway. Also, read the last clause
carefully: it says the stack MUST allow OPTIONAL use of the zone
index internally.

From MIF's perspective, if the same prefix is placed on multiple interfaces, 

The prefix fe80::/10 is automatically on every interface. That's the
only case where I'm certain we need a zone index in practice, but the
definition isn't limited to that case.

   Brian

the system might see peers using a given address on multiple interfaces, and 
at least some devices might be expected to route between the interfaces. 
Architecturally, this can be easy to solve or hard. We have any number of 
cases (think about PPP for example) in which we bundle multiple interfaces 
under a common super-interface and "do something". In PPP Multilink, we might 
segment messages into smaller frames, distribute them across a number of 
interfaces to the same place, and reconstitute the original message on the 
other side. In this case, it seems that we want IP to use two layers of 
interfaces, a virtual one instantiated by multiple lower layer interfaces, 
and place the prefix on the virtual interface. When we are wondering what MAC 
address should be associated with a given IP address, we ask each of the 
lower layer interfaces, and if we get a result on one of them we know where 
we're going. The big issue will be routing among the physical interfaces - 
something req
uired for it to be seamless and yet not as trivial as it might sound.