Date: Sat, 30 Dec 2006 02:56:35 +0100 From: Dimitry Andric <dimitry@andric.com> To: freebsd-stable@freebsd.org Cc: Joe Marcus Clarke <marcus@freebsd.org> Subject: gif problems in -STABLE Message-ID: <4595C753.5030502@andric.com>
next in thread | raw e-mail | index | archive | help
Hi, I just updated one of my machines from RELENG_6 as of 2006-11-03, to RELENG_6 as of 2006-12-29. This caused the IPv6 tunnel which this box uses, which had been doing fine for months, to suddenly stop working. Reverting to my 2006-11-03 kernel restored the tunnel again, so my ISP could be ruled out. :) The symptoms are that the IPv6 default gateway cannot be reached, and you'll get "ping6: sendmsg: No route to host" when you try to ping it. For some reason, the ifconfig command now fails to create the proper routing table entries. With the 2006-11-03 kernel, if I configure my gif0 tunnel as follows: ifconfig gif0 create ifconfig gif0 213.154.244.69 193.109.122.244 ifconfig gif0 inet6 2001:7b8:2ff:146::2 2001:7b8:2ff:146::1 prefixlen 128 route add -inet6 default 2001:7b8:2ff:146::1 I get the following entries in the routing table: Internet6: Destination Gateway Flags Netif Expire ::/96 ::1 UGRS lo0 => default 2001:7b8:2ff:146::1 UGS gif0 ::1 ::1 UHL lo0 ::ffff:0.0.0.0/96 ::1 UGRS lo0 2001:7b8:2ff:146::1 link#6 UHL gif0 2001:7b8:2ff:146::2 link#6 UHL lo0 ... If I use the 2006-12-29 kernel, the routing table after exactly the same sequence of commands is: Internet6: Destination Gateway Flags Netif Expire ::/96 ::1 UGRS lo0 => default 2001:7b8:2ff:146::1 UGS gif0 ::1 ::1 UHL lo0 ::ffff:0.0.0.0/96 ::1 UGRS lo0 2001:7b8:2ff:146::2 link#6 UHL lo0 ... So, for some reason, the 2001:7b8:2ff:146::1 entry is not automatically created anymore. Of course, you could add this manually, but it's rather strange that this behaviour has changed. After some Googling, I found this thread about -current, which seems to describe approximately the same problem: http://lists.freebsd.org/pipermail/freebsd-current/2006-December/067830.html However, the thread seems to have no real conclusion as to what the cause or proper solution is. There are two possible solutions mentioned, though: 1) Using something like: ipv6_defaultrouter="::1 -ifp gif0" This doesn't work for me, unless I set the prefixlen for the whole gif0 tunnel to 64; but in that case I don't need the ::1 -ifp stuff either. 2) Using something like: ipv6_ifconfig_gif0="2001:7b8:2ff:146::2 prefixlen 126" This does work, though I find it strange that such functionality is changed so shortly before a release. :) Does anyone have a clue where this changed behaviour comes from, or where in the source tree I should look to find the commit that caused it? Maybe it would be nicer to revert to the previous behaviour for 6.2-RELEASE, since it will cause many non-working tunnels when people upgrade. Or otherwise at least put a big notice in UPDATING or the release notes. :) Cheers, Dimitry
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4595C753.5030502>