gif problems in -STABLE

Dimitry Andric dimitry at andric.com
Fri Dec 29 18:19:52 PST 2006


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


More information about the freebsd-stable mailing list