我使用OpenVPN将两个networking(客户端A和B)连接在一起。 假设客户端A在IP地址为192.168.20.x的NAT后面,客户端B在IP地址为172.16.1.x的NAT后面。 有没有一种方法可以configuration我的设置,使客户端可以通过OpenVPN服务器(10.8.0.1,255.255.255.0)与对方的子网内的机器进行通信?
例如,如果客户端A的内部IP是192.168.20.50,客户端B是172.16.1.50,那么客户端A能够使用其私有IP地址成功地ping到客户端B或者跟踪到客户端B吗?
对的,这是可能的。
隧道的每一端必须在各自的私有networking中有接口。 也就是说,例如, 10.8.0.1
必须在192.168.20.0/24
networking中有一个地址,而10.8.0.2
在172.16.1.0/24
networking中必须有一个地址(例如,我猜对了networking的networking掩码,你的设置可能是不同)。
然后,您需要在设备上启用正确的路由。
对于192.168.20.0/24
networking中的客户,他们需要在他们的路由表中有一个路由,告诉他们通过192.168.20.x
将数据包路由到172.16.1.0/24
,其中x
是对应于其他接口的八位字节10.8.0.1
服务器。
然后, 10.8.0.1
处的服务器必须有一个路由表入口,告诉到172.16.1.0/24
networking的数据包必须通过10.8.0.2
发送,即隧道的另一端。
那么你需要为隧道的另一端有相应的规则,交换networking地址。
实现这个最简单的方法是在该networking的路由器上运行OpenVPN服务器/客户端。 然后,不需要为每个客户端添加路由规则,因为路由是由默认网关处理的。 在这种情况下,只需要OpenVPN服务器/客户端的路由规则。
如果OpenVPN服务器/客户端是与默认路由器不同的机器,则需要将networking路由分发给客户端。 一种方法是通过DHCP。 如何configuration我的DHCP服务器来分配IP路由中介绍了一种方法? 。