В OpenStack, коли ви створюєте VPS-сервер, за ним фіксується публічна IP-адреса. Система обирає його випадково з пулу адрес, які доступні для вашої публічної мережі. Обрати конкретну IP-адресу ви не можете.

Поки VPS-сервер працює, ця випадкова IP-адреса закріплена за ним. Але якщо ви видалите сервер, наприклад, щоб розширити диск або вибрати інший образ ОС, IP-адреса зміниться. Цю проблему якраз і вирішує плаваючий IP.

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

Як виділити плаваючий IP

Зайдіть в панель керування хмарою. Перейдіть до розділу «Проект – Сеть – Плавающие IP» та натисніть кнопку «Выделить IP проекту».

Кнопка «Виділити IP проекту» у розділі «Проект – Мережа – Плаваючі IP»

У спливаючому вікні в полі «Пул» залиште значення «Public». Це стандартна публічна мережа, з якої і буде виділено IP-адресу. Якщо потрібно, заповніть опис, а потім натисніть «Выделить IP».

Виділення зовнішнього IP в OpenStack Horizon

Ви побачите виділену IP у списку. Натисніть напроти нього кнопку «Назначить».

Кнопка «Призначити» після створення виділеного IP

Заповніть поля у спливаючому вікні:

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

Потім натисніть «Назначить» внизу та чекайте, поки операція закінчиться.

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

Якщо виникла помилка і призначити IP-адресу не вдалося, швидше за все, справа в тому, що ваш VPS-сервер зараз підключений до зовнішньої мережі напряму. Щоб використовувати плаваючу IP-адресу, VPS повинен перебувати в приватній мережі та виходити до публічної мережі за допомогою маршрутизатора.

Як створити приватну мережу та маршрутизатор

Як перевести сервер із публічної мережі в приватну

За замовувчанням сервери створюються з прямим підключенням до мережі. Ось як це змінити після того, як ви створили приватну мережу.

Перейдіть до розділу «Проект – Вычислительные ресурсы – Серверы». У колонці «Actions» виберіть зі списку опцію «Отсоединить интерфейс».

Опція «Від'єднати інтерфейс» у колонці «Actions»

У спливаючому вікні виберіть публічну IP-адресу, яку VPS-сервер використовує зараз. Потім натисніть «Отсоединить интерфейс».

Відключення інтерфейсу від сервера в OpenStack Horizon

Ви від’єднали публічну мережу від сервера. Тепер треба приєднати приватну. Для цього виберіть у колонці «Actions» опцію «Подключить интерфейс».

Опція «Підключити інтерфейс» у колонці «Actions»

Заповніть поля у спливаючому вікні:

  • У полі «Способ указания интерфейса» залиште стандартний варіант.
  • У полі «Сеть» виберіть створену заздалегідь приватну мережу.
  • Поле «Фиксированный IP-адрес» залиште порожнім.

Натисніть кнопку «Подключить интерфейс».

Підключення інтерфейсу до сервера в OpenStack Horizon

Щоб зміни набули чинності, перезавантажте сервер будь-яким зручним способом. Наприклад, виберіть «Горячая перезагрузка» в колонці «Actions».

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

Як перевірити зміну IP на сервері для Linux

Для Linux необхідно додатково перевірити, чи змінився IP на сервері. Для цього підключіться до сервера в консолі.

Якщо підключалися від імені clouduser, отримайте оболонку root за допомогою sudo su. Якщо одразу підключалися під рутом, цю команду вводити не потрібно.

Потім використовуйте таку команду, щоб вивести на екран поточне мережеве оточення.

ifconfig

Якщо одразу бачите у видачі адресу з потрібної приватної мережі — інтерфейс замінився.

Результат команди ifconfig в консолі - Варіант 1

Якщо з якоїсь причини в мережевому оточенні видно лише одну локальну адресу 127.0.0.1, як у прикладі нижче, необхідно вручну змінити карту.

Результат команди ifconfig в консолі - Варіант 2

Виконайте таку команду, щоб переглянути підключені карти мережі:

ip l

У результатах з’являться підключені карти lo і eth0. У різних дистрибутивах картки можуть називатися по-різному. Наприклад, не eth0, а ens3. Карта lo нас не цікавить, працюємо з eth0. У неї вказана MAC-адреса fa:16:3e:3a:5b:35.

Результат команди ip l у консолі

Наступний крок – перевірте поточне правило:

cat /etc/udev/rules.d/70-persistent-net.rules

У виводі команди переконайтеся, що у параметрі ATTR{address} вказана MAC-адреса.

Поточне udev-правило на сервері з Linux

Це правило потрібно видалити:

rm /etc/udev/rules.d/70-persistent-net.rules

Після цього знову перезавантажте сервер або виконайте команду:

dhclient ens3

Знову використовуйте команду ifconfig, щоб перевірити, чи тепер відображаються всі мережні інтерфейси. Якщо все зроблено правильно, ви побачите IP потрібної приватної мережі:

Оновлені мережеві інтерфейси на сервері з Linux

Якщо ім’я інтерфейсу не змінилося, додаткові зміни конфігураційних файлів не потрібні.

Що далі

Якщо раптом щось не виходить або у вас є додаткові запитання, поставте їх у коментарях до статті або напишіть у чат у нижньому правому кутку екрана. Ми завжди на зв’язку. Будемо раді допомогти!

Чи була ця стаття корисною?

Дякуємо за відгук!