Если у меня есть виртуальная машина OpenStack, которая имеет настроенный плавающий IP-адрес и пытается подключиться к службе за пределами «вселенной» OpenStack. Как мне убедиться, что исходный IP-адрес этого подключения является плавающим IP-адресом этой виртуальной машины? Предыстория этого вопроса заключается в том, что у нас есть ограничительные правила брандмауэра (конечно), и мы хотим разрешить только исходящий трафик с виртуальной машины (т. Е. Jenkins, которая создает программное обеспечение и хочет, чтобы они распространяли его непосредственно на исходящий сервис через SSH) на внешние машины.
С точки зрения сети это кажется невозможным, потому что на виртуальной машине у меня нет сетевого интерфейса, который подключен к этой сети, к которой принадлежит плавающий IP-адрес, и поэтому у меня нет выделенного маршрута через маршрутизатор по умолчанию плавающего IP во внешнюю сеть. Я не могу взять (фиксированный) IP-адрес виртуальной машины, потому что эти IP-адреса невидимы и закрыты для внешнего мира. Мы используем SNAT на маршрутизаторах для выхода наружу. Проблема в том, что все виртуальные машины используют один и тот же маршрутизатор для подключения к внешней сети, поэтому исходный IP-адрес будет одинаковым для всех виртуальных машин. Но мне нужен другой исходный IP-адрес, чтобы иметь возможность применять правила брандмауэра.
Надеюсь, я смог достаточно объяснить свою проблему.
Спасибо! Иоахим.