通过 OpenVPN 在两个独立网络上的私有 IP 地址之间进行通信

通过 OpenVPN 在两个独立网络上的私有 IP 地址之间进行通信

我正在使用 OpenVPN 将两个网络(客户端 A 和 B)连接在一起。假设客户端 A 位于 IP 地址为 192.168.20.x 的 NAT 后面,而客户端 B 位于 IP 地址为 172.16.1.x 的 NAT 后面。有没有办法配置我的设置,使客户端可以通过 OpenVPN 服务器(10.8.0.1、255.255.255.0)与彼此子网内的机器进行通信?

例如,如果客户端 A 的内部 IP 是 192.168.20.50,而客户端 B 是 172.16.1.50,那么客户端 A 是否可以使用其私有 IP 地址成功 ping 或 tracert 到客户端 B?

答案1

对的,这是可能的。

隧道的每一端都必须在各自端的私有网络中具有接口。也就是说,例如,10.8.0.1必须在192.168.20.0/24网络中有一个地址,10.8.0.2必须在网络中有一个地址172.16.1.0/24(我猜网络的网络掩码只是举个例子,您的设置可能不同)。

然后,您需要在设备上启用适当的路由。

对于192.168.20.0/24网络中的客户端,它们需要在其路由表中有一个路由,告诉它们将数据包路由到172.16.1.0/24via 192.168.20.x,其中x是与服务器的另一个接口相对应的八位字节10.8.0.1

然后,服务器10.8.0.1必须有一个路由表条目,该条目告知到172.16.1.0/24网络的数据包必须通过10.8.0.2(即隧道的另一端)发送。

然后您需要为隧道的另一端制定相应的规则,交换网络地址。

实现此目的的最简单方法是在该网络的路由器上运行 OpenVPN 服务器/客户端。这样就不需要为每个客户端添加路由规则,因为路由由默认网关处理。在这种情况下,只需要在 OpenVPN 服务器/客户端上添加路由规则。

如果 OpenVPN 服务器/客户端与默认路由器是不同的机器,则需要将网络路由分发给客户端。一种方法是通过 DHCP。一种方法在如何配置我的 DHCP 服务器来分配 IP 路由?

相关内容