语境:
我正在Google Compute环境中运行一组实例。 每个主机在10.0.0.0私有范围内都有单个IP地址。
我有外部客户需要通过VPN连接连接到这些实例。 但是,由于它们的大小,这些客户需要一个独特的“真实”IP地址作为目标。 (为了避免多个客户端拥有相同的私有地址的风险)。在迁移到Google之前,我们可以使用思科ASA和虚拟公共接口将这些连接发送到我们的内部networking,但是附加到GCE实例的静态外部地址可以使用谷歌VPN /路由工具不会被发夹,所以这不是一个选项。 (我已经通过Google支持确认了这一点。)
build议的解决scheme:
我已经在GCE环境中保留了一个静态地址(我们称之为5.xxx)
在GCE环境中,我有一个Openswan框,可以通过来自远程ASA的ipsec连接路由到内部networking。 我能够从该远程networking在专用GCEnetworking内ping主机。 (当10.0.0.0/16被configuration为目标时)
现在的目标是将VPNconfiguration的目标更改为5.xxx地址,然后让GCE Openswan框中的iptables翻译该目标以指向专用networking上的特定IP地址(10.xxx)。 我已经configuration了iptables,使得ping到5.xxx的地址在Openswan框本身上正确转换,但到目前为止,我还没有任何运气为ASA背后的主机做这项工作。
Iptables看起来像这样:
# iptables -L -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT all -- anywhere xxx5.bc.googleusercontent.com to:10.xxx Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination DNAT all -- anywhere xxx5.bc.googleusercontent.com to:10.xxx Chain POSTROUTING (policy ACCEPT) target prot opt source destination
任何帮助将非常感激。 这是我们转移到Google时没有预料到的一个问题,但是我怀疑这会影响到很多大客户。 我们希望他们最终能够提供解决scheme,但同时这也是我们所拥有的。
您可以使用Google Compute Engine路由为每个VM实例设置多个内部静态IP地址。 有关步骤请访问这篇文章 。