Плавающие IP

Данная статья описывает один из основных элементов сети - плавающие IP-адреса, их роль в построении сетевой инфраструктуры в облаке. В статье раскрываются вопросы организации доступа к инстансу и его сервисов с публичных подсетей, используя при этом плавающие IP.

Описание

Плавающие IP – публичные статические IP-адреса, которые можно назначать инстансам проекта. Плавающие адреса предназначены для организации сетевой достижимости к инстансам проекта, используя при этом механизм SNAT («преобразование сетевых адресов»). Суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете.

Квота для плавающих IP-адресов

Плавающие IP-адреса назначаются проекту во время его активации. Каждый проект содержит ограниченное количество плавающих IP-адресов, их количество регулируется квотой публичных адресов, которое определяет владелец проекта при заказе сервиса «SIM-Cloud». Для изменения количества доступных публичных плавающих IP-адресов, необходимо изменить соответствующую квоту проекта, после чего следует выполнить назначение или освобождение плавающего IP.

Как связать или отвязать назначаемый IP

Уже выделенные проекту плавающие IP-адреса могут назначаться включенным инстансам из панели инструментов web-интерфейса - dashboard либо через другие интерфейсы управления сервисом: «Openstack CLI» или «API».

Используя web-интерфейс, пользователь может назначить (связать) или снять ранее назначенный плавающий IP из двух точек:

  • «Вычислительные ресурсы»/»Инстансы» –> «Связать назначаемый IP»
  • «Сеть»/»Плавающие IP» –> «Назначить»

Для назначения плавающего IP, необходимо указывать доступный публичный IP и соответствующий порт назначения инстанса.

Предупреждение

Назначение плавающего IP допустимо только для портов инстансов, подсети которых скоммутированы с внутренним маршрутизатором проекта - «provider router», так как это единственный узел проекта, который имеет доступ к публичной сети. Для этого достаточно подключить интерфейс из необходимой подсети к маршрутизатору проекта и выступал в роли шлюза (gateway).

Внутренний маршрутизатор выполнит преобразование сетевых адресов, а также обеспечит необходимую маршрутизацию между приватной и публичной сетью проекта. Дополнительных сетевых настроек, «проброса» портов выполнять не нужно, трансляция портов и протоколов будет выполняться в «прозрачном» режиме.

Если вышеописанные уловия не соблюдаются, то пользователь проекта не сможет назначить плавающий IP на нужный порт инстанса.

Для назначения или отсоединения плавающих IP-адресов в командной строке, можно воспользоваться следующими командами Openstack CLI:

Назначение плавающего IP средствами openstack cli:

Синтаксис:

openstack floating ip set [-h] --port <port>
                          [--fixed-ip-address <ip-address>]
                          [--qos-policy <qos-policy> | --no-qos-policy]
                          <floating-ip>

openstack floating ip set --port <port> --fixed-ip-address <ip-address> <floating-ip>

Пример:

openstack floating ip set --port qbfb9cad-f582-41c8-b821-910a4df65b3t --fixed-ip-address 20.20.20.11 156.67.54.xxx
где:
     qbfb9cad-f582-41c8-b821-910a4df65b3t - порт, на который необходимо назначить плавающий IP;
     --fixed-ip-address 20.20.20.11 - фиксированный IP-адрес порта, для котого назначается плавающий IP;
     156.67.54.xxx - публичный плавающий IP-адрес, который будет назначен на порт инстанса (последний октет адреса "xxx" скрыт в рамках организации безопасности).

Отвязать назначаемый IP средствами openstack cli:

Синтаксис:

openstack floating ip unset [--port] <floating-ip>


Пример:

openstack floating ip unset --port  156.67.54.122

Ключевые особенности плавающих IP-адресов

  • Плавающие IP-адреса автоматически не присваиваются инстансам их необходимо назначать вручную.
  • Плавающие IP остаются закрепленными за проектом до тех пор, пока пользователь проекта самостоятельно не освободит адрес. Если адрес был освобожден по ошибке, то его повторное назначение маловероятно, так адреса выдаются в случайном порядке.
  • Плавающий IP можно назначить как через web-интерфейс, так и через консоль: «Openstack CLI» или «API».
  • Плавающие IP-адреса фактически назначаются на порт инстанса.
  • Плавающие адреса можно переназначать любому другому инстансу, в любой момент времени (если подсеть необходимого порта скоммутирована с внутренним роутером).
  • Пользователи проекта могут выделять плавающие IP-адреса только в пределах заказанной квоты.
  • Для плавающих IP-адресов можно прописывать DNS-запись типа PTR.

Примечание

Для организации публичного доступа к сервисам инстанса (SSH, RDP, HTTP, SMTP, SMTP, FTP, DNS и т.д.), которому назначен плавающий IP-адрес, необходимо убедиться в том, сервисы работают, отвечают («слушают») IP-адрес приватной подсети, на который был назначен публичный плавающий IP. Если в настройках, конфигурационных файлах сервиса будет указан публичный назначаемый IP (floating ip), то сервис будет недоступен. Доступ к сервисам инстанса на приватном адресе будет функционировать за счет механизма SNAT.