IOS 10 (?) and IPv6-only WLAN

Lorenzo Colitti lorenzo at google.com
Tue Oct 25 06:32:43 CEST 2016


On Fri, Oct 21, 2016 at 1:01 AM, Mike Jones <mike at mikejones.in> wrote:

> Under that interpretation I believe a ND packet sourced from an
> address which has not been configured as on-link should be rejected.
>

Actually, I think the IOS behaviour is wrong because it violates RFC 4861
section 7.2.3:

   If the Source Address is not the unspecified
   address and, on link layers that have addresses, the solicitation
   includes a Source Link-Layer Address option, then the recipient
   SHOULD create or update the Neighbor Cache entry for the IP Source
   Address of the solicitation.
[...]
   After any updates to the Neighbor Cache, the node sends a Neighbor
   Advertisement response as described in the next section.

RFC 5942 takes care to clarify the behaviour after the change to the IPv6
subnet model:

       Note that the Neighbor Cache is a
       separate data structure referenced by the Destination Cache, but
       entries in the Neighbor Cache are not necessarily in the
       Destination Cache.  It is quite possible (and intentional) that
       entries be added to the Neighbor Cache for addresses that would
       not be considered on-link as defined above.  For example, upon
       receipt of a valid NS, Section 7.2.3 of [RFC4861] states:

          If an entry does not already exist, the node SHOULD create a
          new one and set its reachability state to STALE as specified
          in Section 7.3.3.  If an entry already exists, and the cached
          link-layer address differs from the one in the received Source
          Link-Layer option, the cached address should be replaced by
          the received address, and the entry's reachability state MUST
          be set to STALE.

       The intention of the above feature is to add an address to the
       Neighbor Cache, even though it might not be considered on-link
       per the Prefix List. [...]  This causes no problems in practice, so
long as the
       entry only exists in the Neighbor Cache and the address is not
       considered to be on-link by the IP forwarding code (i.e., the
       address is not added to the Prefix List and is not marked as
       on-link in the Destination Cache).

So what should happen in this case is:

   1. Router sends NS for host's global address from its global address.
   2. Host creates or updates neighbour cache entry for router's global
   address.
   3. Host replies to NS.
   4. The neighbour cache entry for the router's global IPv6 address
   remains in the host's neighbour cache, but *is not used* for traffic
   because the entry is not marked in the destination cache as being on-link.
   (Only a redirect can do that.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cluenet.de/pipermail/ipv6-ops/attachments/20161025/fea6deeb/attachment.htm>


More information about the ipv6-ops mailing list