[6bone] freebsd src addr wrong

Paul Timmins paul@timmins.net
Wed, 11 Dec 2002 13:23:48 -0500


At 11:36 AM 12/11/2002 -0500, you wrote:
>I have a 6bone tunnel connection with a non-routed tunnel endpoint 2001:: 
>address.  I also have an official 6bone 3ffe:: address, which is assigned 
>to one of my ether interfaces.
>
>When I "ping6 www.kame.net" I see that my side of the tunnel is used as a 
>source address.  I don't get ping responses back (presumably because 
>www.kame.net does not know where to send responses, given that the address 
>it is getting is not routed).

What it is doing is correct, and all implementations do this. They take the 
IP address of the closest egress interface, being your tunnel.

This is generally a good thing, as if you have a machine with a RFC-1918 
address on fxp0, and an internet wide interface on ppp0, you don't want to 
source packets out ppp0 with the IP address of fxp0. Put in this 
perspective, it makes more sense. :-)

>If I do a ping6 -S, selecting my 6bone 3ffe:: address as the source, then 
>ping6 gets responses from kame just fine.

This beats the logic that gives you the IP of the egress interface.

>I am using FreeBSD 4.6.
>We run Zebra-based BGP+ with our tunnel provider and thus have no default 
>route.

Behavior is the same with my Linux 2.4.19 machine running defaultless BGP4+ 
with Zebra.

>My questions:
>1. Should tunnel endpoint addresses be routable?

Yes

>2. Or how do I force FreeBSD to use the ether's IPv6 address as a source 
>by default?  (Not all applications have the equivalent of Ping6's -S 
>option to force the source address selection.)

No idea. Haven't used *BSD in a long enough time to remember.

-Paul