OpenVPN与混合ipv4和ipv6客户端

我有一个VPN服务器处理各种客户端; 一些仅使用ipv4,一些使用ipv4和ipv6,一些仅使用ipv6。 其中一些客户端正在漫游,所以理想情况下,他们应该连接到ipv6(如果可用),如果不是,则返回到ipv4。

在我目前的设置中,OpenVPN监听ipv4和ipv6:

proto udp proto udp6 dev tun 

我的第一个问题在这里:虽然这似乎工作,这是安全和正确的两个原型在一个configuration文件?

我的客户在configuration中有两个远程实例:

 remote vpn.domain.tld port udp6 remote vpn.domain.tld port udp 

我的问题也在这里,因为这似乎工作(首先尝试udp6,如果失败将回落到udp),这是一个很好的方法来做到这一点?

好。

在服务器端,两次指定“proto”实际上并没有做任何事情 – “proto udp6”将使它绑定一个双栈套接字来处理v4 + v6,覆盖前一行中的“proto udp”。

在一个2.3客户端,有两个遥控器,“udp6”和“udp”是要走的路,因为旧的套接字代码无法正确地进行自我故障转移。

在git master(2.4-to-be)或者3.0(OpenVPN Connect)客户端上,你可以使用“udp”,因为它会正确地调用getaddrinfo()并使用服务器和networking支持的任何IP协议,使用OS信号的优先级(通过getaddrinfo()结果sorting)。

格特