Плаваюча IP-адреса

У цьому розділі описано один з основних елементів мережі — плаваючі IP-адреси — та їхню роль у побудові мережевої інфраструктури в хмарі. Також розглянуто організацію доступу до інстансу та його сервісів із публічних підмереж за допомогою плаваючих IP-адрес.

Опис

Плаваючі IP-адреси — це статичні публічні IP-адреси, які можна призначати інстансам проєкту. Вони забезпечують мережеву доступність інстансів за допомогою механізму безпечної трансляції мережевих адрес (SNAT). Суть механізму полягає в заміні адреси джерела під час передавання пакета в одному напрямку та зворотній заміні адреси призначення у пакеті-відповіді.

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

Плаваючі IP-адреси призначаються проєкту на час його дії. Кожен проєкт має обмежену кількість таких адрес. Їх визначає квота публічних адрес, яку власник проєкту задає під час замовлення SIM-Cloud. Щоб змінити доступну кількість плаваючих IP-адрес, змініть відповідну квоту проєкту, а потім призначте або звільніть потрібні адреси.

Прив’язування та відв’язування призначеної IP-адреси

Виділені проєкту плаваючі IP-адреси можна призначати активним інстансам через вебінтерфейс Dashboard або інші інтерфейси керування: OpenStack CLI чи API.

У вебінтерфейсі призначити (прив’язати) або відв’язати плаваючу IP-адресу можна у двох місцях:

  • «Compute»/»Instances» –> «Associate Floating IP»

  • «Network»/»Floating IPs» –> «Associate»

Щоб призначити плаваючу IP-адресу, укажіть доступну публічну адресу та відповідний цільовий порт інстансу.

Попередження

Плаваючу IP-адресу можна призначати лише портам інстансів, підмережі яких підключені до маршрутизатора провайдера, оскільки це єдиний вузол проєкту з доступом до публічної мережі. Для цього достатньо підключити інтерфейс потрібної підмережі до маршрутизатора провайдера та використовувати його як шлюз.

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

Якщо ці умови не виконано, користувач не зможе призначити плаваючу 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-адресу можна призначити через вебінтерфейс або консоль — OpenStack CLI чи API.

  • Фактично плаваюча IP-адреса призначається порту інстансу.

  • Плаваючу адресу можна будь-коли перепризначити іншому інстансу, якщо підмережа потрібного порту підключена до внутрішнього маршрутизатора.

  • Користувачі можуть виділяти плаваючі IP-адреси лише в межах замовленої квоти.

  • Для плаваючих IP-адрес можна створювати DNS-записи типу PTR.

Примітка

Щоб забезпечити публічний доступ до сервісів інстансу (SSH, RDP, HTTP, SMTP, FTP, DNS тощо), якому призначено плаваючу IP-адресу, переконайтеся, що сервіси працюють і прослуховують IP-адресу приватної підмережі, для якої призначено публічну плаваючу адресу. Якщо в налаштуваннях або конфігураційних файлах сервісу вказано призначену публічну плаваючу IP-адресу, сервіс буде недоступним. Доступ до сервісів інстансу за приватною адресою працює на основі механізму SNAT.