IPv6 neighbour discovery problem

ipv6local-area-network

I would like to get IPv6 addresses with my LAN PCs behing a router with an IPv4 only ISP.

I have a dd-wrt router. I've set up an IPv6 tunnel with Hurricane Electric (http://tunnelbroker.net/).

What works:

I can ping6 from the router to IPv6 addresses, from outside the router can be pinged with its tunneled IPv6 address. I've also set up an IPv6 addr for the routers LAN iface and made radvd, forward rules and sysctls work for my LAN to have an address from the given /64 range. I get an IPv6 IP on Windows 7 and on Ubuntu too (not the fe80: one but the 2001: one). Windows 7 works fine from itself but almost always loses the first ping packet, but after it the others are fine. It's also strange but it's not a big problem.

What does not really work:

Ubuntu does not work at start, but if i ping the router's LAN ifaces IPv6 addr, then it works for half a min, then it stops. I figured out that if I ping the LAN iface the neighbour table gets a new line (ip -6 ne output):

2001:470:xxxx:xxxx:0:98fc:1148:4507 dev eth2 lladdr 98:fc:11:48:45:07 router REACHABLE

After a while it will be STALE or even disappears.

I've tried to manually add that to neighbour table but it gets STALE or disappears that way too. What should i do to make it work permanently?

My radvd config btw:

interface br0 {
  MinRtrAdvInterval 3;
  MaxRtrAdvInterval 10;
  AdvLinkMTU 1480;
  AdvSendAdvert on;
  prefix 2001:470:xxxx:xxxx::/64 {
     AdvOnLink on;
     AdvAutonomous on;
     AdvValidLifetime 43200;
     AdvPreferredLifetime 43200;
  };
};

Thanks for the suggestion.

But I could not make it work with only a single /64 prefix for LAN and WAN, so I requested a /48. That way there is a separate /64 prefix for the router's WAN iface and for the LAN one. That way the computers can generate their own addres automatically and there is no routing and ne problems.

Best Answer

Try disabling ip6tables. You may have prevented the fe80 link layer addresses, or ICMP messages, or some other critical bit of info from being exchanged.

Also report what tcpdump shows during this time for ipv6 traffic involving the two hosts (search by mac address).

Generally it just kinda magically works once radvd is running unless you do something to break it.

Related Topic