Dear list, I've had IPv6 connectivity for some years via an IPv6 in IPv4 gif tunnel courtesy of my ISP. However, about a week ago, when I upgraded to 6.2-PRERELEASE, I noticed it had mysteriously stopped working. (It may have died before last week though; but that is the probable time) So this weekend I set out to find out why. After much head scratching, I discovered that the IPv6 default route was not present on the system. If I added it back manually, voil?: IPv6 connectivity back again ... for a few seconds. This is completely reproducible: happy-idiot-talk:~:% sudo route add -inet6 default -interface gif0 ; ping6 clueless.aaisp.net.uk add net default: gateway gif0 PING6(56=40+8+8 bytes) 2001:8b0:151:1::1 --> 2001:8b0:0:81::51bb:5115 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=0 hlim=61 time=32.221 ms 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=1 hlim=61 time=29.856 ms 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=2 hlim=61 time=29.560 ms 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=3 hlim=61 time=30.348 ms 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=4 hlim=61 time=28.957 ms 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=5 hlim=61 time=30.626 ms 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=6 hlim=61 time=29.384 ms 16 bytes from 2001:8b0:0:81::51bb:5115, icmp_seq=7 hlim=61 time=31.815 ms ping6: sendmsg: No route to host ping6: wrote clueless.aaisp.net.uk 16 chars, ret=-1 ping6: sendmsg: No route to host ping6: wrote clueless.aaisp.net.uk 16 chars, ret=-1 ping6: sendmsg: No route to host ping6: wrote clueless.aaisp.net.uk 16 chars, ret=-1 ping6: sendmsg: No route to host ping6: wrote clueless.aaisp.net.uk 16 chars, ret=-1 ping6: sendmsg: No route to host ping6: wrote clueless.aaisp.net.uk 16 chars, ret=-1 ^C --- clueless.aaisp.net.uk ping6 statistics --- 13 packets transmitted, 8 packets received, 38.5% packet loss round-trip min/avg/max/std-dev = 28.957/30.346/32.221/1.088 ms After 8 pings, the default route disappears. tcpdump shows no other traffic to/from the tunnel end-point than the pings and responses. I can't find anything similar reported elsewhere on the 'net. Any clues gratefully received. OS Version: happy-idiot-talk:~:% uname -a FreeBSD happy-idiot-talk.infracaninophile.co.uk 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #9: Fri Sep 29 01:08:43 BST 2006 root@happy-idiot-talk.infracaninophile.co.uk:/usr/obj/usr/src/sys/HAPPY-IDIOT-TALK i386 IPv6 related stuff from rc.conf: gif_interfaces="gif0" gifconfig_gif0="81.187.76.162 81.187.81.6" ipv6_enable="YES" ipv6_defaultrouter="-interface gif0" ipv6_default_interface="gif0" ipv6_ifconfig_gif0="2001:08b0:0151:0001::1 prefixlen 64" ipv6_gateway_enable="YES" happy-idiot-talk:~:% ifconfig gif0 gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280 tunnel inet 81.187.76.162 --> 81.187.81.6 inet6 fe80::240:5ff:fea5:8db7%gif0 prefixlen 64 scopeid 0x3 inet6 2001:8b0:151:1::1 prefixlen 64 Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 250 bytes Desc: OpenPGP digital signature Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060930/1541ef3c/signature.pgp
On Sat, Sep 30, 2006 at 08:33:11PM +0100, Matthew Seaman wrote:> > Dear list, > > I've had IPv6 connectivity for some years via an IPv6 in IPv4 gif tunnel > courtesy of my ISP. However, about a week ago, when I upgraded to > 6.2-PRERELEASE, I noticed it had mysteriously stopped working. (It may have > died before last week though; but that is the probable time) So this > weekend I set out to find out why.It is a known problem that I caused. We are working on it. If you want to, you can try this patch. It should fix your problem. John -- John Hay -- John.Hay@meraka.csir.co.za / jhay@FreeBSD.org Index: sys/netinet6/nd6.c ==================================================================RCS file: /home/ncvs/src/sys/netinet6/nd6.c,v retrieving revision 1.67 retrieving revision 1.69 diff -I$FreeBSD: -u -r1.67 -r1.69 --- sys/netinet6/nd6.c 16 Sep 2006 06:24:28 -0000 1.67 +++ sys/netinet6/nd6.c 30 Sep 2006 20:25:33 -0000 1.69 @@ -1390,7 +1390,8 @@ ip6_sprintf(&llsol), error)); } } - } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0) { + } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0 && + (rt->rt_flags & RTF_HOST) != 0) { ln->ln_state = ND6_LLINFO_INCOMPLETE; } break;
Hi, Will you MFC before Beta 2 ? Martin> - } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0) { > + } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0 && > + (rt->rt_flags & RTF_HOST) != 0) { > ln->ln_state = ND6_LLINFO_INCOMPLETE;
Martin Blapp wrote:> > Hi, > > Will you MFC before Beta 2 ? > > Martin > >> - } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0) { >> + } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0 && >> + (rt->rt_flags & RTF_HOST) != 0) { >> ln->ln_state = ND6_LLINFO_INCOMPLETE;Please do MFC. This patch seems to have solved all the problems I was experiencing, and I can see the dancing Kame again now. Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 250 bytes Desc: OpenPGP digital signature Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20061001/3de06ec6/signature.pgp
> > > >> - } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0) { > >> + } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0 && > >> + (rt->rt_flags & RTF_HOST) != 0) { > >> ln->ln_state = ND6_LLINFO_INCOMPLETE; > > Please do MFC. This patch seems to have solved all the problems I was > experiencing, and I can see the dancing Kame again now. > > Cheers, > > MatthewCan you please try this patch too? The previous one I gave you, still have some unwanted side effect. This one is by JINMEI, Tatuya and seems to be without any... As far as I could test. Thanks. John -- John Hay -- John.Hay@meraka.csir.co.za / jhay@FreeBSD.org Index: nd6.c ==================================================================RCS file: /home/ncvs/src/sys/netinet6/nd6.c,v retrieving revision 1.48.2.14 diff -u -r1.48.2.14 nd6.c --- nd6.c 20 Sep 2006 19:10:18 -0000 1.48.2.14 +++ nd6.c 2 Oct 2006 08:17:30 -0000 @@ -1315,7 +1315,7 @@ callout_init(&ln->ln_timer_ch, 0); /* this is required for "ndp" command. - shin */ - if (req == RTM_ADD) { + if (req == RTM_ADD && (rt->rt_flags & RTF_STATIC)) { /* * gate should have some valid AF_LINK entry, * and ln->ln_expire should have some lifetime @@ -1392,8 +1392,6 @@ ip6_sprintf(&llsol), error)); } } - } else if (req == RTM_ADD && SDL(gate)->sdl_alen == 0) { - ln->ln_state = ND6_LLINFO_INCOMPLETE; } break;