On Sat, 28 Sep 2002, James Yonan wrote:

> Aaron,
>
> Thanks for the patch, however I was not able to get it to work with IPv4 
> while talking between a 2.4.9 and 2.4.17 kernel, where both peers are running 
> the patch.  The code compiles and runs, but pings don't go through.  Perhaps 
> there is a minimum kernel version necessary for this to work?  Does the 
> kernel need to be built with IPv6 support in order for this code to work with 
> IPv4?
Well, it shouldn't require any IPv6 support in the kernel to simply pass
IPv4 packets.  I'll need to look at the tun driver in 2.4.9.  Both of my
machines here are running 2.4.19.
>
> There is also the issue of breaking protocol compatibility by adding the 
> ETH_P_IPV6/ETH_P_IP to the IP-over-tun packet encoding.  I would propose that:
Well, it doesn't break the protocol at all, what ends up happening is, the
kernel takes the tun_pi header and strips it off, so those headers never
get sent on the wire.

 >
> (1) We run-time conditionalize your patch on a --tun-ipv6 option.

>
> (2) We compile-time (e.g. #ifdef bracket on HAVE_NETINET_IF_ETHER_H, 
> ETH_P_IPV6, etc.) and/or run-time conditionalize so that usage of --tun-ipv6 
> produces a run-time error if ipv6 over tun is not supported.
That sounds like a good idea.
>
> (3) We add --tun-ipv6 enabled/disabled state to the options_string function 
> in options.h as a sanity check between peers.
>
> (4) We think about how to make --tun-ipv6 portable across the platforms which 
> OpenVPN supports.  This may be better addressed at the tun driver level, to 
> reduce the machine-specific ugliness in tun.c?
Well, this one might be a bit more difficult if the tunnel driver doesn't
support it, of course it might be worth the effort to submit patches to
the respective OSes for this.

>
> (5) We look into making an ipv6 option for the tunnel UDP channel and 
> endpoints as well.
This part shouldn't be much of a problem.

Regards,

Aaron


Reply via email to