在默认路由界面中更改期间保持openvpn连接

我有一个openvpn服务器,允许来自多个移动客户端的传入连接。 移动客户端是embedded式Linux平台,有两种可能的路由到互联网:蜂窝接口和WiFi接口。 移动客户端花费了很多时间在任何可用的无线networking范围之外。 所以大部分时间他们会使用蜂窝互联网网关。 在wifinetworking的范围内,wifi接口出现,默认路由改为wifi接口。

问题:当wifi接口出现时,默认路由改为使用wifi接口,所以客户端openvpn开始从wifi接口发送数据包。 这些数据包到达服务器,但服务器忽略它们。 我以为由于服务器没有设置远程指令,它应该自动允许客户端“浮动”到一个新的地址,所以服务器应该识别来自客户端的数据包,并立即开始响应新的路由。 相反,我看到服务器的keepalive ping到达客户端的蜂窝接口,并且我看到客户端的keepalive ping从它的wifi接口到达服务器。 最后, Inactivity timeout (--ping-restart)重置旧连接,并通过wifi接口成功build立新连接。 为什么服务器不让客户端浮动?

服务器configuration:

 dev tun0 topology subnet mode server tls-server duplicate-cn push "topology subnet" ifconfig 10.0.0.1 255.255.255.0 ifconfig-pool 10.0.0.200 10.0.0.254 255.255.255.0 port 12345 proto udp persist-key persist-tun comp-lzo ca /etc/openvpn/ssl/tmvca-cacert.pem cert /etc/openvpn/ssl/principal-cert.pem key /etc/openvpn/ssl/principal-key.pem dh /etc/openvpn/ssl/dh1024.pem username-as-common-name keepalive 50 120 client-to-client user nobody group nogroup verb 3 float 

客户端configuration:

 client remote mydomain.com 12345 nobind proto udp mssfix 1400 persist-key persist-tun dev tun ns-cert-type server resolv-retry infinite ca /opt/odp/openvpn/ca.pem cert /opt/odp/openvpn/crt.pem key /opt/odp/openvpn/key.pem dh /opt/odp/openvpn/dh1024.pem comp-lzo verb 3 syslog ovpn-gw auth-user-pass /opt/odp/openvpn/auth.passwd writepid "/tmp/ovpn-gw.pid" tls-remote principal tls-exit ipchange /opt/odp/scripts/ipchange.sh script-security 2 

看着openvpn论坛,这似乎是一个知道的问题,我find了一个补丁,可能可以帮助你https://community.openvpn.net/openvpn/attachment/ticket/49/tlsfloat.patch