Перейти к основному содержимому
Публичные IP-адреса
Последнее изменение:

Публичные IP-адреса

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

Для доступа устройство должно находиться в приватной подсети, подключенной к облачному роутеру с выходом во внешнюю сеть, — подробнее в инструкции Подготовить приватную подсеть для подключения публичного IP-адреса⁠. Публичный IP-адрес ассоциируется с приватным IP-адресом устройства, а входящий трафик обрабатывается облачным роутером — он выполняет функцию 1:1 NAT через внешний IP-адрес, который выделяется при подключении роутера к внешней сети. Входящий трафик можно отфильтровать с помощью облачного файрвола или группы безопасности.

При создании публичный IP-адрес выделяется из пула адресов автоматически, его нельзя выбрать. Адрес является плавающим (в API — Floating IP), так как его можно быстро переключать между устройствами в приватных подсетях. При переключении адрес не меняется и не удаляется.

Публичный IP-адрес можно использовать только внутри одного проекта и одного пула.

Для публичных IP-адресов есть ограничения на объем трафика — пропускная способность. Ее можно посмотреть в таблице Пропускная способность.

Работать с публичными IP-адресами можно в панели управления, с помощью OpenStack CLI или Terraform.

Создать публичный IP-адрес

Если вы создаете первый публичный IP-адрес внутри проекта и пула, автоматически создастся приватная сеть nat и облачный роутер router-nat.

  1. В панели управления перейдите в раздел Облачная платформаСеть.
  2. Откройте вкладку Публичные IP-адреса.
  3. Нажмите Создать IP-адрес.
  4. Выберите пул, в котором будет создан публичный IP-адрес.
  5. Укажите количество публичных IP-адресов.
  6. Нажмите Создать.

Подготовить приватную подсеть для подключения публичного IP-адреса⁠

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

Устройство должно находиться в приватной подсети или подсети глобального роутера, которая соответствует требованиям:

  • подсеть должна быть подключена к облачному роутеру, подключенному к внешней сети. Если облачный роутер подключен к внешней сети, он выполняет функцию 1:1 NAT для доступа из приватной сети в интернет через внешний адрес роутера и для доступа к устройству в приватной подсети из интернета по публичному IP-адресу;
  • приватный IP-адрес облачного роутера должен совпадать с шлюзом по умолчанию в подсети.

Если подсеть не соответствует требованиям, подготовьте ее к подключению публичного IP-адреса:

  1. Создайте облачный роутер c подключением к внешней сети⁠.
  2. Подключите приватную подсеть к облачному роутеру.

1. Создать облачный роутер c подключением к внешней сети⁠

  1. В панели управления перейдите в раздел Облачная платформаСеть.
  2. Откройте вкладку Облачные роутеры.
  3. Нажмите Создать роутер.
  4. Выберите пул, в котором будет создан облачный роутер.
  5. Введите имя роутера.
  6. Отметьте чекбокс Подключить роутер к внешней сети — для роутера будет выделен внешний IP-адрес.
  7. Нажмите Создать.

2. Подключить подсеть к облачному роутеру

  1. В панели управления перейдите в раздел Облачная платформаСеть.

  2. Откройте вкладку Облачные роутеры.

  3. Откройте карточку роутера.

  4. Нажмите Добавить подсеть.

  5. Выберите приватную подсеть или подсеть глобального роутера.

  6. Введите IP-адрес роутера. IP-адрес облачного роутера должен совпадать с шлюзом по умолчанию приватной подсети. Посмотреть шлюз по умолчанию в приватной подсети можно на вкладке Приватные сети → страница сети → вкладка Подсети → карточка подсети → блок Автоматические сетевые настройки → поле Шлюз подсети.

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

  7. Нажмите Добавить подсеть.

Подключить публичный IP-адрес к облачному серверу

Публичный IP-адрес можно подключить при создании облачного сервера или к уже созданному серверу.

  1. Убедитесь, что облачный сервер находится в подсети, которая соответствует требованиям. Для подготовки подсети используйте инструкцию Подготовить приватную подсеть для подключения публичного IP-адреса⁠⁠. Подсети сервера можно посмотреть в панели управления в разделе Облачная платформаСерверы → страница сервера → вкладка Порты.
  2. В панели управления перейдите в раздел Облачная платформаСерверы.
  3. Откройте вкладку Серверы → страницу сервера.
  4. Откройте вкладку Порты.
  5. В столбце Публичный IP нажмите Подключить.
  6. Выберите публичный IP-адрес.

Отключить публичный IP-адрес от облачного сервера

  1. В панели управления перейдите в раздел Облачная платформаСерверы.
  2. Откройте вкладку Серверы → страницу сервера.
  3. Откройте вкладку Порты.
  4. В столбце Публичный IP в меню выберите Отключить публичный IP.
  5. Нажмите Отключить.

Подключить публичный IP-адрес к балансировщику нагрузки

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

  1. Убедитесь, что балансировщик нагрузки находится в подсети, которая соответствует требованиям. Для подготовки подсети используйте инструкцию Подготовить приватную подсеть для подключения публичного IP-адреса⁠⁠. Подсети балансировщика можно посмотреть в панели управления в разделе Облачная платформаБалансировщики → вкладка Балансировщики → страница балансировщика → поле Сеть.
  2. В панели управления перейдите в раздел Облачная платформаБалансировщики.
  3. Откройте вкладку Балансировщики.
  4. В карточке балансировщика нажмите Подключить публичный IP.
  5. Выберите публичный IP-адрес.
  6. Нажмите Подключить.

Отключить публичный IP-адрес от балансировщика нагрузки

  1. В панели управления перейдите в раздел Облачная платформаБалансировщики.
  2. Откройте вкладку Балансировщики.
  3. В карточке балансировщика у публичного IP-адреса нажмите .
  4. Выберите Отключить публичный IP-адрес.
  5. Нажмите Сохранить.

Подключить публичный IP-адрес к кластеру облачных баз данных

Публичный IP-адрес можно подключить при создании кластера баз данных (пример для PostgreSQL) или к уже созданному кластеру.

  1. Убедитесь, что кластер облачных баз данных находится в подсети, которая соответствует требованиям. Для подготовки подсети используйте инструкцию Подготовить приватную подсеть для подключения публичного IP-адреса⁠⁠. Подсети кластера можно посмотреть в панели управления в разделе Облачная платформаБазы данных → страница кластера → вкладка Настройки → поле Сеть кластера.
  2. В панели управления перейдите в раздел Облачная платформаБазы данных.
  3. Откройте страницу кластера баз данных → вкладка Настройки.
  4. В блоке Адреса и статусы нод откройте вкладку Публичные IP-адреса.
  5. В строке с нужной нодой нажмите .
  6. Выберите Новый публичный IP-адрес.
  7. Нажмите .

Отключить публичный IP-адрес от кластера облачных баз данных

  1. В панели управления перейдите в раздел Облачная платформаБазы данных.
  2. Откройте страницу кластера баз данных → вкладка Настройки.
  3. В блоке Адреса и статусы нод откройте вкладку Публичные IP-адреса.
  4. В строке с нужной нодой нажмите .
  5. Выберите Без публичного IP-адреса.
  6. Нажмите .

Настроить NAT

Чтобы настроить NAT, нужно пробросить порт (port forwarding) — настроить перенаправление трафика с одного порта на другой порт. Например, можно настроить проброс порта на публичном IP-адресе на любой порт в приватной подсети — в этом случае доступ к приватному порту будет организован без создания дополнительного публичного IP-адреса.

Публичный IP-адрес перед началом настройки проброса портов не должен быть ассоциирован с облачным сервером, балансировщиком нагрузки и другими устройствами.

В Selectel по умолчанию заблокированы некоторые TCP/UDP-порты, трафик через них заблокирован.

  1. Откройте OpenStack CLI.

  2. Настройте проброс портов:

    openstack floating ip port forwarding create \
    --internal-ip-address <internal_ip_address> \
    --port <port> \
    --internal-protocol-port <internal_protocol> \
    --external-protocol-port <external_protocol> \
    --protocol <protocol> \
    <public_ip_address>

    Укажите:

    • <internal_ip_address> — IP-адрес порта в приватной подсети, на который будет осуществляться проброс;
    • <port> — ID или имя порта в приватной сети, на который будет осуществляться проброс, можно посмотреть с помощью команды openstack port list;
    • <internal_protocol> — протокол порта в приватной подсети;
    • <external_protocol> — протокол порта публичного IP-адреса, порт которого пробрасывается;
    • <protocol> — протокол: tcp или udp;
    • <public_ip_address> — ID или публичный IP-адрес, порт которого пробрасывается. Можно посмотреть с помощью команды openstack floating ip list

    Пример команды:

    openstack floating ip port forwarding create \
    --internal-ip-address 192.168.0.2 \
    --port ed010217-9f78-4002-8703-2112da3fef1f \
    --internal-protocol-port 80 \
    --external-protocol-port 80 \
    --protocol tcp \
    192.0.2.7

Удалить публичный IP-адрес

После удаления публичный IP-адрес вернется в пул публичных адресов.

  1. В панели управления перейдите в раздел Облачная платформаСеть.
  2. Откройте вкладку Публичные IP-адреса.
  3. В карточке публичного IP-адреса нажмите .
  4. Введите IP-адрес для подтверждения удаления.
  5. Нажмите Удалить.