OpenVPN 服务器到 OpenVPN 服务器通信

OpenVPN 服务器到 OpenVPN 服务器通信

我在同一个 Digital Ocean 数据中心有两台云服务器,并且启用了内部通信(它们可以互相 ping 通)。每台云服务器都安装了一个 OpenVPN 服务器。

我的问题是如何将数据从客户端 A 通过 VPN 服务器 A 穿过内部 IP 空间,再通过 VPN 服务器 B 传递到客户端 B,反之亦然?我在云服务器和客户端上都使用 Ubuntu Server 16.04。

在此处输入图片描述

感谢 draw.io

我努力了:

1)向每个 VPN 服务器添加路由[1]

服务器 A

sudo route add -net 172.16.200.0 netmask 255.255.255.0 gw 10.132.52.131 eth1

服务器 B

sudo route add -net 172.16.100.0 netmask 255.255.255.0 gw 10.132.27.6 eth1

常量:

所有设备均启用 IP 转发

客户端 A 有一条规则,将 .200 子网中的所有数据包发送到 VPN 服务器 A:

sudo route add -net 172.16.200.0 netmask 255.255.255.0 gw 172.16.100.254

客户端 B 有一条规则,将 .100 子网中的所有数据包发送到 VPN 服务器 B:

 sudo route add -net 172.16.100.0 netmask 255.255.255.0 gw 172.16.200.254

如果我执行 tcpdump,我可以看到客户端向其各自的 VPN 服务器发送 ping。但是,它似乎就此结束了。也就是说,另一端的 tcpdump 从未显示任何活动,除了 arp 响应。

答案1

由于您的专用网络的两个“10/8”地址位于不同的子网,因此几乎肯定还有其他设备也需要更改。

但您可以做的一件事是让其中一个或两个服务器互相成为客户端。因此,您无需尝试通过专用网络进行路由,而是可以完全在 OpenVPN 配置中进行所有路由。

因此,在您的服务器 1 上,您将拥有一个用于“服务器 2”客户端的 ccd,该客户端会将 172.16.100.253 之类的地址推送到 172.16.200.0/24 网络,并为该网络设置路由和 iroute。

基本上,这只是设置“服务器 1”,就好像它正在处理“服务器 2”客户端和网络的站点到站点连接。

相关内容