Контекст:
Я запускаю набор экземпляров в среде Google Compute. Каждый хост имеет один интерфейс с одним IP в частном диапазоне 10.0.0.0.
У меня есть внешние клиенты, которым требуется подключение к этим экземплярам через VPN-соединение. Однако из-за своего размера этим клиентам требуется уникальный «настоящий» IP-адрес в качестве цели. (Чтобы избежать риска иметь несколько клиентов с одним и тем же частным адресом.) До перехода в Google мы могли закрепить эти подключения во внутренней сети с помощью Cisco ASA и виртуальных общедоступных интерфейсов, но статические внешние адреса, подключаемые к экземплярам GCE, могут не надоедать с помощью инструментов Google VPN / Routing, так что это не вариант. (Я подтвердил это в службе поддержки Google.)
Предложенное решение:
Я зарезервировал статический адрес в среде GCE (назовем его 5.x.x.x)
В среде GCE у меня есть ящик Openswan, который может маршрутизироваться во внутреннюю сеть через соединение ipsec с удаленного ASA. Я могу пинговать хосты в частной сети GCE из этой удаленной сети. (когда 10.0.0.0/16 настроен как цель)
Теперь цель состоит в том, чтобы изменить цель конфигурации VPN на адрес 5.x.x.x, а затем преобразовать эту цель с помощью iptables в окне GCE Openswan, чтобы указать на определенный IP-адрес (10.x.x.x) в частной сети. Я настроил iptables так, чтобы пинги к адресу 5.x.x.x корректно транслировались в самом поле 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, но я подозреваю, что она повлияет на многих крупных клиентов в будущем. Мы надеемся, что они в конечном итоге предложат решение, но пока это то, что у нас есть.
Вы можете установить несколько внутренних статических IP-адресов для каждого экземпляра виртуальной машины с помощью маршрутов Google Compute Engine. Для шагов посетите Эта статья.