Subject: IPv6 router when switching wifi networks

From: Iljitsch van Beijnum <[email-masked]>
Date: Thu, 13 Mar 2008 09:55:05 -0400

I think this is of interest to more people than just the 71attendees  
and I can't edit the wiki with Safari, so I'm sending it to this list:

When I switch from the IPv6-only wifi network to the v4v6v4 NAT  
network, everything that has an IPv6 address in the DNS stops working.  
Turns out that my Mac tries to get at these destinations over IPv6,  
even though it doesn't have an IPv6 address. However, it DOES have an  
IPv6 default route:

$ route get -inet6 default
    route to: ::
destination: ::
        mask: default
     gateway: fe80::20b:bfff:fea9:7054%en1
   interface: en1
       flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>

This happens to be the same router that's on the v6only network. And  
it's reachable on the v4v6v4 nat network, too:

$ traceroute6 www.ietf.org
traceroute6 to www.ietf.org (2001:1890:1112:1::20) from fe80::21b: 
63ff:fe02:3c13%en1, 30 hops max, 12 byte packets
  1  fe80::20b:bfff:fea9:7054%en1  1.698 ms  1.431 ms  1.052 ms
  2  * * *
  3  *^C

Further inspection shows it doesn't send out any router advertisements  
on the v4v6v4 nat network:

09:45:59.414798 IP6 nirrti.local > ff02::2: ICMP6, router  
solicitation, length 16
09:45:59.508252 IP6 nirrti.local > ff02::2: ICMP6, router  
solicitation, length 16
09:46:00.903133 IP6 nirrti.local > ff02::2: ICMP6, router  
solicitation, length 16
09:46:03.714192 IP6 nirrti.local > ff02::2: ICMP6, router  
solicitation, length 16
09:46:08.374871 IP6 nirrti.local > ff02::2: ICMP6, router  
solicitation, length 16
09:46:16.406312 IP6 nirrti.local > ff02::2: ICMP6, router  
solicitation, length 16
09:46:24.581632 IP6 nirrti.local > ff02::2: ICMP6, router  
solicitation, length 16

But this seems to be the culprit:

09:46:27.945222 IP6 nirrti.local > fe80::20b:bfff:fea9:7054: ICMP6,  
neighbor solicitation, who has fe80::20b:bfff:fea9:7054, length 32
09:46:27.946167 IP6 fe80::20b:bfff:fea9:7054 > nirrti.local: ICMP6,  
neighbor advertisement, tgt is fe80::20b:bfff:fea9:7054, length 24

Apparently, MacOS 10.5.2 tries to see if the router from the previous  
wireless network is still present, and if it is, it will keep the  
default route up. But because the IPv6 addresses were removed from the  
system when changing networks and now new prefix was advertised, it  
doesn't work.
_______________________________________________
IETF mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/ietf

---

From: Rémi Denis-Courmont <[email-masked]>
Date: Thu, 13 Mar 2008 16:17:32 +0200

>   1  fe80::20b:bfff:fea9:7054%en1  1.698 ms  1.431 ms  1.052 ms

Looks like broken (outright missing?) RFC3484 implementation.

If you only have a link-local IPv6 address and an IPv4 address, destination 
address selection must pick IPv4. First the scoping rule (IIRC, rule 2), will 
prefer IPv4. Second the label matching rule (IIRC, rule 5) will prefer IPv4, 
in case rule 2 failed, such as if you had a private IPv4 address.

-- 
Rémi Denis-Courmont