Subject: Re: scoping-arch and link-local addresses in RH

From: JINMEI Tatuya / 神明達哉<[email-masked]>
Date: Tue, 07 May 2002 21:45:07 +0900

(I'm resending the following message, since it has not been delivered
correctly.)

>>>>> On Tue, 23 Apr 2002 12:25:46 +0200, 
>>>>> Francis Dupont <[email-masked]> said:
	 
> => there are two points:
>  - how to determine the zone of the next destination (as addresses
> don't carry the id of the zone but only the scope, this is very useful).
>  - do it only on the next destination address, no further
>    (note this is a consequence of the previous point).
> Only the wording is questionable... (i.e. I can't see a concern for
> other thing than the form)

Since the issue is about wording (I think we've agreed on this point),
I won't try to respond to all questions in this thread.  Instead, I'd
like to propose revised text (see below) with an additional rule that
Rich mentioned and an example of unusual (thus confusing) case.

If the text is still unclear, please point it out, and if possible,
suggest improvement (I'm not very good at describing complicated
notion in English...).

Thanks,

					JINMEI, Tatuya
					Communication Platform Lab.
					Corporate R&D Center, Toshiba Corp.
					[email-masked]

9. Forwarding

   When a router receives a packet addressed to a node other than
   itself, it must take the zone of the destination and source addresses
   into account as follows:

           o The zone of the destination address is determined by the
              scope of the address and arrival interface of the packet.
              The next-hop interface is chosen by looking up the
              destination address in a (conceptual) routing table
              specific to that zone.  That routing table is restricted
              to refer only to interfaces belonging to that zone.

           o After the next-hop interface is chosen, the zone of the
              source address is considered.  As with the destination
              address, the zone of the source address is determined by
              the scope of the address and arrival interface of the
              packet.  If transmitting the packet on the chosen next-hop
              interface would cause the packet to leave the zone of the
              source address, i.e., cross a zone boundary of the scope
              of the source address, then the packet is discarded and an
              ICMP Destination Unreachable message [RFC 2463] with Code
              2 ("beyond scope of source address") is sent to the source
              of the packet.

   Note that the above procedure applies for addresses of all scopes,
   including link-local.  Thus, if a router receives a packet with a
   link-local destination address that is not one of the router's own
   link-local addresses on the arrival link, the router is expected to
   try to forward the packet to the destination on that link (subject to
   successful determination of the destination's link-layer address via
   the Neighbor Discovery protocol [RFC 2461]). The forwarded packet may
   be transmitted back out the arrival interface, or out any other
   interface attached to the same link.

   A node that receives a packet addressed to itself and containing a
   Routing Header with more than zero Segments Left [RFC 2460, section
   4.4] first checks the scope of the next address in the Routing
   Header.  If the scope of the next address is smaller than the scope
   of the original destination address, the node MUST discard the
   packet.  Otherwise, it swaps the original destination address with
   the next address in the Routing Header.  Then the above forwarding
   rules apply as follows:

           o The zone of the new destination address is determined by
              the scope of the next address in the Routing Header and
              arrival interface of the packet.  The next-hop interface
              is chosen just like the first bullet of the rules above.

           o After the next-hop interface is chosen, the zone of the
              source address is considered just like the second bullet
              of the rules above.

   This check about the scope of the next address ensures that when a
   packet arrives at its final destination, if that destination is
   link-local then the receiving node can know that the packet
   originated on-link.  Similarly, if the destination is site-local then
   the receiving node can know that the packet originated within the
   site.  And, as a result, this will help the receiving node send a
   "response" packet with the final destination of the received packet
   as the source address without breaking its source zone.

   Note that it is possible, though generally inadvisable, to use
   a Routing Header to convey a non-global address across its associated
   zone boundary.  For example, consider a case where a site-border node
   receives a packet with the destination being a site-local address.
   If the packet contains a Routing Header where the next address is a
   global address, the next-hop interface to the global address may
   belong to a different site than the site of the original destination.
   This is allowed, because the scope of the next address is not smaller
   than the scope of the original destination.

--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------