是否可以为云实例到本地 VPN 设置站点到站点 VPN?

是否可以为云实例到本地 VPN 设置站点到站点 VPN?

我在云中有一个实例(阿里云 - 与 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

相关内容