Плаваюча 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.