我有一堆私人networking,都在172.XXX.XXX.XXX IP空间。 当我通过OpenVPN连接时,VPN有时会通过同一个网关进行连接,只允许来自第一个VPN的stream量工作。
例:
$ netstat -nr Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire ............ 172.31 10.8.0.5 UGSc 1 0 utun3 172.32 10.8.0.5 UGSc 1 0 utun3
这里172.31.XXX.XXX和172.32.XXX.XXX使用相同的网关/接口,只允许来自第一个连接的VPN的stream量传输。
服务器#1的OpenVPNconfiguration:
push "route 172.32.0.0 255.255.0.0"
服务器#2的OpenVPNconfiguration:
push "route 172.31.0.0 255.255.0.0"
有什么办法可以使这两个使用不同的隧道/网关? 有时候,当我断开连接并连接一堆时,他们最终会使用不同的隧道,但这种情况并不是每次都发生,连接和断开连接直到工作正常也是一件痛苦的事情。
VPN configs只是带有额外的push指令的Sampleconfiguration。
既然你提到的configuration文件是默认的,除了推线,我在想这两个都包含默认值
server 10.8.0.0 255.255.255.0
行,这使得两个openvpn服务器使用相同的池。 因此,当连接到服务器时,它们都将分配第一个可用的地址,即10.8.0.5,并指示客户端通过该地址路由所有连接。 这将解释随机的“现在这个工作”的时刻,因为如果服务器认为地址被使用(例如,你重新连接太快),它将使用池中的下一个可用的地址,因此你得到一个其他的地址分配。
只需将server线路更改为两台服务器上的不同服务器,则客户端将具有来自不同子网的IP地址。
这有些偏离主题,但是你可能会问为什么10.8.0.5是第一个地址。 Openvpn从一个/ 30子网分配p2p地址,所以每个连接都使用一个单独的/ 30子网。 第一个是为服务器本身保留的,所以xxx1和xxx2永远不会被分配给客户端。 下一个/ 30子网有两个可用地址,xxx5和xxx6,其中一个将分配给客户端,另一个分配给服务器对等地址。
您可以在push routeconfiguration选项中指定网关,如下所示:
--route network/IP [netmask] [gateway] [metric] Add route to routing table after connection is established.
所以,你需要为每个networking路由追加不同的网关来避免你的问题。