There is an ipv4 only router in our network and every computer is connected to it (wifi or cable). A server with ipv4 and ipv6 is also connected to this router. The server has been configured with tunnelbrokers for 6to4 tunneling and radvd. Clients in the network have the right prefix and can ping each other via ipv6. But they can't ping to the internet until they first ping Server (the one with the tunnel). I found somewhere that it's an icmp problem, but I couldn't find solution.

Is the problem that the router is ipv4 only?

  • server and clients run linux
  • router runs dd-wrt without ipv6 support :(

Ping try:

standa@standa-laptop:~$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8007::69) 56 data bytes
--- ipv6.google.com ping statistics ---
29 packets transmitted, 0 received, 100% packet loss, time 28223ms

standa@standa-laptop:~$ ping6 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478
PING 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478(2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478) 56 data bytes
64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=1 ttl=64 time=3.55 ms
64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=2 ttl=64 time=0.311 ms
64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=3 ttl=64 time=0.269 ms
64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=4 ttl=64 time=0.292 ms
--- 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.269/1.107/3.559/1.415 ms
standa@standa-laptop:~$ ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8007::69) 56 data bytes
64 bytes from 2a00:1450:8007::69: icmp_seq=1 ttl=57 time=20.7 ms
64 bytes from 2a00:1450:8007::69: icmp_seq=2 ttl=57 time=20.2 ms
64 bytes from 2a00:1450:8007::69: icmp_seq=3 ttl=57 time=23.4 ms
--- ipv6.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 20.267/21.479/23.413/1.392 ms

UPDATE: Radvd config

interface eth0 {
    AdvSendAdvert on;
    MinRtrAdvInterval 3; 
    MaxRtrAdvInterval 10;
    AdvLinkMTU   1280;
    prefix 2001:470:1f0a:1511:1::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;

UPDATE 2: Without connection

ip -6 neigh
fe80::21c:c0ff:fe2b:6478 dev wlan1 lladdr 00:1c:c0:2b:64:78 router REACHABLE

With connection (after ping)

fe80::21c:c0ff:fe2b:6478 dev wlan1 lladdr 00:1c:c0:2b:64:78 router STALE
2001:470:1f0a:1511::1 dev wlan1 lladdr 00:1c:c0:2b:64:78 router REACHABLE

Neighbour solicitation happends while pinging:

fe80::21c:c0ff:fe2b:6478 2001:470:1f0a:1511:21c:bfff:fe60:b389 ICMPv6 Neighbor solicitation
2001:470:1f0a:1511:21c:bfff:fe60:b389 fe80::21c:c0ff:fe2b:6478 ICMPv6 Neighbor advertisement

3 Answers 3


Are the clients' prefixes being manually assigned? Usually they should automatically find the router via Neighbor Discovery Protocol (during which the router sends out advertisements and assign them prefixes automatically), but it sounds like that step might be missing.

Additionally, the router advertisement should be including its link-layer address as an option in the ICMP header of the router advertisement. If this field is missing, the client won't know how to send data to the router. It sounds like this could be the case. The client doesn't know how to reach the router, until it sends out the Neighbor Discovery message and it receives an Neighbor Advertisement from the router (with the router flag in the ICMP message set).

To include the source link layer address in your router advertisements, add the following into your radvd.conf

AdvSourceLLAddress on;
  • prefixes are set using radvd deamon on server with configuration above
    – Ficik
    Feb 27, 2011 at 10:09
  • @Ficik still unresolved? I'd suggest setting up a packet trace. I be there is something that's happening via the NDP when you ping the router that is missing in the router advertisements.
    – Jeff
    Mar 20, 2011 at 7:23
  • Still unresolved :( I can test it only during weekends when I'm home. Neighbor solicitation and Neighbor advertisement happends when pinged. I was running wireshark and logging ICMPv6 packets. There was only radvd's broadcast and neighbor advertisement when pinging.
    – Ficik
    Mar 21, 2011 at 21:20
  • @Ficik I think I figured it out and updated my answer. Let me know if this works out for you!
    – Jeff
    Mar 21, 2011 at 22:00
  • @Flick What did you update about your answer? I'm having trouble identifying what the exact solution is here. Is it the MTU attribute? Otherwise why use minimum MTU? Thanks.
    – regulatre
    Dec 6, 2014 at 19:54

Ensure your clients are using the ipv6 address of the server as their gateway/router. As Jeff pointed out this may be automatically assigned (check you radvd configuration) or manually in which case check the clients configuration.


I think your radvd.conf is OK, although it wouldn't hurt to compare ip -6 addr; ip -6 route on the client before and after the ping. Is there some sort of connection tracking enabled on the tunnel box or on the router? Is a ping6 done from the tunnel box sufficient? A stateful firewall could explain why the packets only come back after a successful ping.

  • There is no change between ip -6 addr/route..
    – Ficik
    Mar 20, 2011 at 3:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.