我在云中有一个实例(阿里云 - 与 AWS 非常相似),需要与目标服务器建立 IPVPN 连接。但是,目标 VPN 服务器将传入 IP 限制为仅 192.168.40.34。因此,我们需要在 IPVPN 后面使用 NAT。我们只能使用该 IP 连接到目标。我无法使用阿里云(或 AWS)提供的 VPN 网关服务,因为它不支持带 NAT 的 IPVPN。
因此,我创建了一个具有公共 IP 的实例并配置了 strongswan,并设法成功连接到客户端 VPN 网关。
但是,我无法弄清楚如何从我的网段正确路由流量。
10.15.103.10 ---> 10.15.66.10 ---> internet ----> 1.2.3.4 -------------> 192.168.118.5
(source) (vpn server) (client vpn server) (destination)
更多信息请点击这里:
我的内部 IP 是 10.15.xx 范围,目标是 192.168.118.x
strongswan配置成功,可以连接到目标VPN
我使用带有 SNAT 的 iptables,它允许我使用 192.168.40.34 连接到目的地。
我现在需要从 10.15.103.10 连接到目的地,但不知何故我无法弄清楚如何让 vpn 服务器 (10.15.66.10) 路由流量。
这是我的 IPtables:
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- anywhere 192.168.118.0/24 to:192.168.40.34
从 VPN 服务器进行 telnet:
[root@ ~]# telnet 192.168.118.245 5001
Trying 192.168.118.245...
Connected to 192.168.118.245.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
从源服务器进行 telnet:
[abubin@ ~]$ telnet 192.168.118.245 5001
Trying 192.168.118.245...
^C
我看过很多教程,都说使用 2 个 NIC 即可实现这一点。然而,在云环境中,您不能使用具有不同子网的 2 个 NIC。
非常感谢您的任何建议。
更新:iptables-保存
# Generated by iptables-save v1.4.21 on Tue Jun 16 13:26:19 2020
*nat
:PREROUTING ACCEPT [365948:21994532]
:INPUT ACCEPT [365948:21994532]
:OUTPUT ACCEPT [85145:6334345]
:POSTROUTING ACCEPT [85145:6334345]
COMMIT
# Completed on Tue Jun 16 13:26:19 2020
# Generated by iptables-save v1.4.21 on Tue Jun 16 13:26:19 2020
*filter
:INPUT ACCEPT [1802386:137299224]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1021209:343812526]
COMMIT
# Completed on Tue Jun 16 13:26:19 2020