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