6

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.

2 Answers 2

1

To be completely honest, I don't know why or how this fixes it...

My new route table


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
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

The rule that I ended up removing:


2001:470:XXXX:XXXX::/64 via :: dev 6in4  proto kernel  metric 256  mtu 1480 advmss 1420 hoplimit 0

After removing that rule(randomly of course) the "other computers" could ping out with no problem at all.

I've prevented my router from generating that rule in the future by removing the address from the 6in4 interface in /etc/network/interfaces.

Anyway, thank you for those of you who took the time to read my post.

1

Those XXXX:XXXX should not be the same, you are allocated one /64 prefix for the tunnel, and one for your LAN.

Also ensure you haven't accidentally block ICMP using ip6tables.

You must log in to answer this question.