在 ESXI 服务器上,我有几个虚拟机:一个具有外部 IP 地址(和互联网访问),配置为 NAT(并扮演 OpenVPN 服务器角色),还有几个 VLAN 中的虚拟机(使用 192.168.182.*/28 IP 地址)。
我已经按照 debian 文档中所述设置了 OpenVPN 服务器和客户端,以访问那些 VLAN 虚拟机。
目前我正在运行(tun)OpenVPN 服务器和客户端,我可以通过 tun0 接口互相 ping 。
问题是我无法从 ESXI VLAN 中的 OpenVPN 客户端机器 ping 通。您能建议一种修复方法吗?
OpenVPN客户端路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 88.198.179.46 0.0.0.0 UG 0 0 0 eth0
10.9.8.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
88.198.179.40 0.0.0.0 255.255.255.248 U 0 0 0 eth0
OpenVPN服务器路由表:
default static.193.120. 0.0.0.0 UG 0 0 0 eth0
10.9.8.2 * 255.255.255.255 UH 0 0 0 tun0
46.4.120.192 * 255.255.255.224 U 0 0 0 eth0
192.168.182.16 * 255.255.255.240 U 0 0 0 eth1
据我了解,我必须将 OpenVPN 服务器上的数据包路由到 192.168.182.*/28 VLAN。
我已使用以下命令启用了 ipv4 转发:
echo "1" > /proc/sys/net/ipv4/ip_forward
我已向 iptables 添加了以下规则(88.198.179.41/29 是客户端 ip/子网),但这没有帮助:
*nat
-A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 46.4.120.218
COMMIT
*filter
-A FORWARD -s 192.168.182.0/24 -d 88.198.179.41/29 -j ACCEPT
-A FORWARD -d 192.168.182.0/24 -s 88.198.179.41/29 -j ACCEPT
COMMIT
也许我必须在 VPNClient 上定义一些路线?
答案1
您没有发布您的 openvpn 配置,但我猜您错过了到 LAN 其余部分的路由:
push "route 192.168.182.0 255.255.255.240"
这将在客户端连接时添加必要的路由。另外,请确保 LAN 上的其他客户端知道使用 OpenVPN 服务器作为 OpenVPN 网络的网关。