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