Openswan/IPtables:通过 VPN 隧道伪造唯一 IP 地址

Openswan/IPtables:通过 VPN 隧道伪造唯一 IP 地址

语境:

我在 Google Compute 环境中运行一组实例。每个主机都有一个接口,其 IP 位于 10.0.0.0 私有范围内。

我有外部客户需要通过 VPN 连接连接到这些实例。然而,由于规模庞大,这些客户需要一个唯一的“真实” IP 地址作为目标。(以避免多个客户端使用同一个私有地址的风险。)在迁移到 Google 之前,我们能够使用 Cisco ASA 和虚拟公共接口将这些连接发夹到我们的内部网络中,但连接到 GCE 实例的静态外部地址无法使用 Google VPN/路由工具进行发夹,因此这不是一个选项。(我已与 Google 支持确认了这一点。)

建议的解决方案:

我在 GCE 环境中保留了一个静态地址(我们称之为 5.xxx)

在 GCE 环境中,我有一个 Openswan 盒,它可以通过 ipsec 连接从远程 ASA 路由到内部网络。我能够从该远程网络 ping 私有 GCE 网络内的主机。(当 10.0.0.0/16 配置为目标时)

现在的目标是将 VPN 配置的目标更改为 5.xxx 地址,然后让 GCE Openswan 盒上的 iptables 将该目标转换为指向专用网络上的特定 IP 地址 (10.xxx)。我已经配置了 iptables,以便 ping 到 5.xxx 地址可以在 Openswan 盒本身上正确转换,但到目前为止,我还没有成功让 ASA 后面的主机正常工作。

Iptables 如下所示:

# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       all  --  anywhere             x.x.x.5.bc.googleusercontent.com  to:10.x.x.x

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DNAT       all  --  anywhere             x.x.x.5.bc.googleusercontent.com  to:10.x.x.x

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

任何帮助都将不胜感激。这是我们在迁移到 Google 时没有预料到的问题,但我怀疑它会影响到许多大客户。我们希望他们最终能提供解决方案,但目前我们得到的就是这些。

答案1

您可以使用 Google Compute Engine 路由为每个虚拟机实例设置多个内部静态 IP 地址。有关步骤,请访问本文

相关内容