I'm in the process of setting an ipv6 on my home network, and I've encountered a strange problem.
My "router" (a Debian Linux box) is connected to a HE.net 6in4 and can ping and access ipv6 sites(ipv6.google.com) fine.
I've installed radvd on the router(config below) and the other computers (my Mac Book Pro and another Debian box) receive addresses with the correct prefix, and report default route to the link address of my router.
The problem, is the other computers cannot access the internet via ipv6 unless they specifically ping the router's non-link address. I found this by accident while using traceroute6 to troubleshoot.
radvd.conf
andrew@route:~$ cat /etc/radvd.conf
interface eth0
{
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
AdvHomeAgentFlag off;
AdvSourceLLAddress on;
AdvCurHopLimit 255;
prefix 2001:470:XXXX:XXXX::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
ifconfig on router
andrew@route:~$ /sbin/ifconfig
6in4 Link encap:IPv6-in-IPv4
inet6 addr: 2001:470:XXXX:XXXX::2/64 Scope:Global
inet6 addr: fe80::411f:489c/128 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1480 Metric:1
RX packets:19128 errors:0 dropped:0 overruns:0 frame:0
TX packets:19421 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1871880 (1.7 MiB) TX bytes:1919865 (1.8 MiB)
eth0 Link encap:Ethernet HWaddr 00:1d:60:3a:1e:45
inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 2001:470:XXXX:XXXX::2/64 Scope:Global
inet6 addr: fe80::21d:60ff:fe3a:1e45/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:495833790 errors:0 dropped:0 overruns:0 frame:0
TX packets:515479141 errors:0 dropped:0 overruns:0 carrier:2
collisions:0 txqueuelen:1000
RX bytes:279615773745 (260.4 GiB) TX bytes:324665798547 (302.3 GiB)
eth1 Link encap:Ethernet HWaddr 00:02:b3:d7:98:71
inet addr:65.31.XXX.XXX Bcast:255.255.255.255 Mask:255.255.255.192
inet6 addr: fe80::202:b3ff:fed7:9871/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:545171946 errors:0 dropped:0 overruns:0 frame:0
TX packets:335869422 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:676743254883 (630.2 GiB) TX bytes:75919367259 (70.7 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10087609 errors:0 dropped:0 overruns:0 frame:0
TX packets:10087609 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:60879852161 (56.6 GiB) TX bytes:60879852161 (56.6 GiB)
ip -6 route on router
andrew@route:~$ ip -6 route
2001:470:XXXX:XXXX::1 dev 6in4 metric 1024 mtu 1480 advmss 1420 hoplimit 0
2001:470:XXXX:XXXX::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
2001:470:XXXX:XXXX::/64 via :: dev 6in4 proto kernel metric 256 mtu 1480 advmss 1420 hoplimit 0
fe80::/64 dev tap0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth1 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 via :: dev 6in4 proto kernel metric 256 mtu 1480 advmss 1420 hoplimit 0
default via 2001:470:XXXX:XXXX::1 dev 6in4 metric 1024 mtu 1480 advmss 1420 hoplimit 0
ifconfig on other computer
andrew@other:~$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:1d:60:85:eb:93 inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 2001:470:XXXX:XXXX:21d:60ff:fe85:eb93/64 Scope:Global inet6 addr: fe80::21d:60ff:fe85:eb93/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13959115 errors:0 dropped:0 overruns:0 frame:0 TX packets:6027537 errors:0 dropped:0 overruns:0 carrier:2 collisions:0 txqueuelen:1000 RX bytes:16009877909 (14.9 GiB) TX bytes:1306977604 (1.2 GiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:118933 errors:0 dropped:0 overruns:0 frame:0 TX packets:118933 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:62855037 (59.9 MiB) TX bytes:62855037 (59.9 MiB)
ip -6 route on other computer
andrew@other:~$ ip -6 route
2001:470:XXXX:XXXX::/64 dev eth0 proto kernel metric 256 expires 86382sec mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295
default via fe80::21d:60ff:fe3a:1e45 dev eth0 proto kernel metric 1024 expires 277sec mtu 1500 advmss 1440 hoplimit 255
And the problem
andrew@other:~$ ping6 ipv6.google.com
PING ipv6.google.com(iad04s01-in-x93.1e100.net) 56 data bytes
^C
--- ipv6.google.com ping statistics ---
24 packets transmitted, 0 received, 100% packet loss, time 23145ms
andrew@other:~$ ping6 2001:470:XXXX:XXXX::2
PING 2001:470:XXXX:XXXX::2(2001:470:XXXX:XXXX::2) 56 data bytes
64 bytes from 2001:470:XXXX:XXXX::2: icmp_seq=1 ttl=255 time=3.03 ms
64 bytes from 2001:470:XXXX:XXXX::2: icmp_seq=2 ttl=255 time=0.242 ms
64 bytes from 2001:470:XXXX:XXXX::2: icmp_seq=3 ttl=255 time=0.243 ms
64 bytes from 2001:470:XXXX:XXXX::2: icmp_seq=4 ttl=255 time=0.247 ms
64 bytes from 2001:470:XXXX:XXXX::2: icmp_seq=5 ttl=255 time=0.241 ms
64 bytes from 2001:470:XXXX:XXXX::2: icmp_seq=6 ttl=255 time=0.235 ms
^C
--- 2001:470:XXXX:XXXX::2 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5000ms
rtt min/avg/max/mdev = 0.235/0.707/3.039/1.043 ms
andrew@other:~$ ping6 ipv6.google.com
PING ipv6.google.com(iad04s01-in-x93.1e100.net) 56 data bytes
64 bytes from iad04s01-in-x93.1e100.net: icmp_seq=1 ttl=56 time=78.6 ms
64 bytes from iad04s01-in-x93.1e100.net: icmp_seq=2 ttl=56 time=79.1 ms
64 bytes from iad04s01-in-x93.1e100.net: icmp_seq=3 ttl=56 time=77.7 ms
64 bytes from iad04s01-in-x93.1e100.net: icmp_seq=4 ttl=56 time=82.3 ms
^C
--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 77.726/79.452/82.324/1.732 ms
The ONLY difference before and after I specifically ping the router global ip, is after, on the "other" computer, in ip -6 neigh show, the router's global ip is listed. Of course after a few minutes it goes stale and the other computer cannot ping the internet again.
Sorry about the long post, but this problem is driving me crazy.