Am 17.08.13 12:30, schrieb Gert Doering:
Hi,

there's situation where you have a dual-stack IPv4+IPv6 client (like "most
new end user connections in Germany these days"), and an IPv4-only OpenVPN
setup - for whatever reason, like "running on an commercial system that
is not using 2.3 yet" or the like.

Trying to access corporate resources in such an environment can be problematic
if the resource has IPv4+IPv6, but your tunnel only has IPv4 and your
client prefers IPv6 - it will try to connect "around" the tunnel, leading
to a number of undesirable effects.

For the commercial OpenVPN client, I've hacked together something that
mitigates this effect, by effectively breaking IPv6 connectivity while
OpenVPN is running (so clients fall back to IPv4, which works through the
tunnel).  The option is called "block-ipv6", and currently works by setting
up "reject" routes that immediately cause an ICMP unreachable to be sent
when a client tries to connect to an IPv6 destination.

This works nicely on Linux, MacOS and Windows, and should work on other
BSDs as well (not implemented yet).  It does not work on Android or iOS,
as you have no control over the real routing table, just the "routes into
the VPN" - while those would prevent IPv6 communication "around" the VPN
tunnel, it will have the not-so-nice property of causing client *timeouts*,
instead of fast aborts due to immediate ICMP errors.

So, what I'm hoping to hear from you...

  - should we include this in 2.3.3?
     - if yes, are changes needed?

  - should we try to implement something for 2.4/master that will work
    by pointing the IPv6 routes into the tunnel, and then synthesize the
    IPv6 ICMP errors inside OpenVPN?  That would work on Android and iOS
    as well, and remove the extra per-platform logic for the "reject" routes
I am in favour of this. There is also another VPN breakage that could be adressed by this. Sometimes the apps try use old sockets until they are getting a timeout. RST/icmp unreable for packets with a wrong source IP could be handled as well.

Arne

Attachment: smime.p7s
Description: S/MIME Kryptografische Unterschrift

Reply via email to