В OpenStack, когда вы создаёте VPS-сервер, за ним фиксируется публичный IP-адрес. Система выбирает его случайным образом из пула адресов, которые доступны для вашей публичной сети. Выбрать конкретный IP-адрес вы не можете.
Пока VPS-сервер работает, этот случайный IP-адрес закреплён за ним. Но если вы удалите сервер — например, чтобы расширить диск или выбрать другой образ ОС — IP-адрес изменится. Эту проблему как раз и решает плавающий IP.
Плавающий IP (floating IP) — это выделенный IP-адрес, который вы можете закрепить за собой и при необходимости использовать повторно. В этой статье покажем, как его выделить для своего аккаунта и назначить серверу.
Как выделить плавающий IP
Зайдите в панель управления облаком. Перейдите в раздел «Проект – Сеть – Плавающие IP» и нажмите кнопку «Выделить IP проекту».
Во всплывающем окне в поле «Пул» оставьте значение «Public». Это стандартная публичная сеть, из которой и будет выделен IP-адрес. Если нужно, заполните также описание, затем нажмите «Выделить IP».
Вы увидите выделенный IP в списке. Нажмите напротив него кнопку «Назначить».
Заполните поля во всплывающем окне:
- В поле «IP-адрес» оставьте значение по умолчанию.
- В поле «Порт для назначения» выберите сервер, которому хотите назначить плавающий IP. Для этого сервер должен находиться в приватной сети.
Затем нажмите «Назначить» внизу и ждите, пока операция закончится.
Если выскочила ошибка и назначить IP-адрес не удалос, скорее всего, дело в том, что ваш VPS-сервер сейчас подключён к внешней сети напрямую. Чтобы использовать плавающий IP-адрес, VPS должен находиться в приватной сети и выходить в публичную сеть при помощи маршрутизатора.
Как создать приватную сеть и маршрутизатор
Как перевести сервер из публичной сети в приватную
По умолчанию серверы создаются с прямым подключением к публичной сети. Вот как это изменить, после того как вы создали приватную сеть.
Перейдите в раздел «Проект – Вычислительные ресурсы – Серверы». В колонке «Actions» выберите из выпадающего списка опцию «Отсоединить интерфейс».
Во всплывающем окне выберите публичный IP-адрес, который VPS-сервер использует в данный момент. Затем нажмите «Отсоединить интерфейс».
Вы отсоединили публичную сеть от сервера. Теперь нужно присоединить приватную. Для этого выберите в колонке «Actions» опцию «Подключить интерфейс».
Заполните поля во всплывающем окне:
- В поле «Способ указания интерфейса» оставьте стандартный вариант.
- В поле «Сеть» выберите созданную заранее приватную сеть.
- Поле «Фиксированный IP-адрес» оставьте пустым.
Нажмите кнопку «Подключить интерфейс».
Чтобы изменения вступили в силу, перезагрузите сервер любым удобным способом. Например, выберите «Горячая перезагрузка» в колонке «Actions».
После этого можно назначить IP-адрес по инструкции из первого раздела этой статьи.
Как проверить смену IP на сервере для Linux
Для Linux нужно дополнительно проверить, изменился ли IP на сервере. Для этого подключитесь к серверу в консоли.
Если подключались от имени clouduser, получите оболочку root при помощи команды sudo su. Если сразу подключались под рутом, эту команду вводить не нужно.
Затем используйте такую команду, чтобы вывести на экран текущее сетевое окружение.
ifconfig
Если сразу видите в выдаче адрес из нужной приватной сети — интерфейс заменился.
Если по какой-то причине в сетевом окружении видно только один локальный адрес 127.0.0.1, как в примере ниже, нужно вручную поменять карту.
Выполните такую команду, чтобы посмотреть подключённые сетевые карты:
ip l
В результатах отобразятся подключенные карты lo и eth0. В разных дистрибутивах карты могут называться по-разному. Например, не eth0, а ens3. Карта lo нас не интересует, работаем с eth0. У неё указан MAC-адрес fa:16:3e:3a:5b:35.
Следующий шаг — проверьте текущее udev-правило:
cat /etc/udev/rules.d/70-persistent-net.rules
В выводе команды убедитесь, что в параметре ATTR{address} указан MAC-адрес.
Это правило нужно удалить:
rm /etc/udev/rules.d/70-persistent-net.rules
После этого повторно перезагрузите сервер или выполните команду:
dhclient ens3
Снова используйте команду ifconfig, чтобы проверить, что теперь отображаются все сетевые интерфейсы. Если все сделано правильно, вы увидите IP нужной приватной сети:
Если имя интерфейса не изменилось, дополнительные изменения в конфигурационных файлах не требуются.
Что дальше
Если вдруг что-то не получается или у вас есть дополнительные вопросы, задайте их в комментариях к статье или напишите в чат в нижнем правом углу экрана. Мы всегда на связи. Будем рады помочь!