Router neighbor advertisement problems between linux/windows

Xavier Roche rocheml@httrack.com
Mon, 06 May 2002 07:30:43 +0200


Hi,

I have weird routing/router advert. problems using an ipv6 stack on both linux and windows: the linux and windows does not seem to "see" each others very well on ipv6.

Here is how they are configured:

Windows 2000 (test workstation)
3ffe:b80:9e2:1:201:2ff:fefa:903d
fe80::201:2ff:fefa:903d
        ||
        \/
Linux (test router)
3ffe:b80:9e2:1::1
fe80::250:daff:fe0d:d0a3
        ||
        \/
Outside world:
IPv6-in-IPv4 tunnel (freenet6)

- I can ping/connect from the Linux router any v6/v4 addresses outside and vice-versa
- I can ping/connect from the Linux router any v4 internal addresses but NOT ipv6 internal addresses, except **sometimes** (!). Generally I got "Destination unreachable" errors:

# ping6 3ffe:b80:9e2:1:201:2ff:fefa:903d
PING 3ffe:b80:9e2:1:201:2ff:fefa:903d(3ffe:b80:9e2:1:201:2ff:fefa:903d) from 3ffe:b80:9e2:1::1 : 56 data bytes
>From ::1 icmp_seq=1 Destination unreachable: Address unreachableFrom ::1

- I can ping/connect from the Windows any v4 external addresses, NOT v6 addresses except the local link ::1 and the machine address 3ffe:b80:9e2:1:201:2ff:fefa:903d itself, except sometimes, too (!) - for example I can *sometimes* ping the windows machine from the outside world, IF I also ping FROM the *Linux* machine to the outside world (!!):

PING 3ffe:b80:9e2:1:201:2ff:fefa:903d(3ffe:b80:9e2:1:201:2ff:fefa:903d) from 3ffe:80b0:100:1:250:4ff:fe37:5976 : 56 data bytes
64 bytes from 3ffe:b80:9e2:1:201:2ff:fefa:903d: icmp_seq=1 hops=60 time=3.289 sec
64 bytes from 3ffe:b80:9e2:1:201:2ff:fefa:903d: icmp_seq=2 hops=60 time=2.599 sec
..

And I get strange network traffic between the two machines ; these three icmpv6 packets are being sent each seconds:

23:07:21.651872 fe80::250:daff:fe0d:d0a3 > ff02::1:fffa:903d: icmp6: neighbor sol: who has 3ffe:b80:9e2:1:201:2ff:fefa:903d
23:07:21.651885 fe80::250:daff:fe0d:d0a3 > ff02::1:ff0d:d0a3: icmp6: neighbor sol: who has fe80::250:daff:fe0d:d0a3
23:07:21.652015 3ffe:b80:9e2:1:201:2ff:fefa:903d > fe80::250:daff:fe0d:d0a3: icmp6: neighbor adv: tgt is 3ffe:b80:9e2:1:201:2ff:fefa:903d

With the associated log entry on the linux box:

May  5 22:54:25 linux kernel: icmpv6_send: no reply to icmp error 
It seems that the linux box is endlessly asking "where are fe80::250:daff:fe0d:d0a3 and fe80::250:daff:fe0d:d0a3?" (the two windows addresses) and the windows seem to reply.. but this does'nt work at all.

The linux routine tables seem okay:
# ip -6 route
3ffe:b80:9e2:1::/64 dev eth0  proto kernel  metric 256  mtu 1500
3ffe:b80:9e2::/48 dev eth0  metric 1  mtu 1500
2000::/3 dev sit1  metric 1  mtu 1472
fe80::/10 dev eth0  proto kernel  metric 256  mtu 1500
fe80::/10 via :: dev sit1  proto kernel  metric 256  mtu 1472
ff00::/8 dev eth0  proto kernel  metric 256  mtu 1500
ff00::/8 dev sit1  proto kernel  metric 256  mtu 1472
default dev sit1  metric 1  mtu 1472
unreachable default dev lo  metric -1  error -101

And I also have v4+v6 routing activated, and a radvd demon running. No v6 firewalling problems, too (I even tried for a moment to disable the firewall - not better).

To summarize, I have no idea of where can be the problem.. did I miss something on the router advert protocol?