---
title: 'Публичные плавающие IP-адреса'
sidebar_label: 'Публичные плавающие IP-адреса'
sidebar_position: 9
description: 'Как создать публичный плавающий IP-адрес, подготовить приватную подсеть для подключения публичного плавающего IP-адреса и другие инструкции'
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import TrashIcon from '@selectel/docux/icons/trash'
import EditIcon from '@selectel/docux/icons/edit'
import CreatePublicFloatingIp from '@site/docs/_partials/cloud-servers/cloud-networks/create-public-floating-ip.mdx'
import CreateCloudRouterWithExternalIP from '@site/docs/_partials/cloud-servers/cloud-networks/create-cloud-router-with-external-ip.mdx'
import ConnectPrivateSubnetToCloudRouter from '@site/docs/_partials/cloud-servers/cloud-networks/connect-private-subnet-to-cloud-router.mdx'
import ConnectPublicIpToLoadBalancerOpenstack from '@site/docs/_partials/cloud-servers/cloud-networks/connect-public-ip-to-load-balancer-openstack.mdx'
import DisconnectPublicIpFromLoadBalancerOpenstack from '@site/docs/_partials/cloud-servers/cloud-networks/disconnect-public-ip-from-load-balancer-openstack.mdx'
import DisconnectPublicIpFromAnyPortPanel from '@site/docs/_partials/cloud-servers/cloud-networks/disconnect-public-ip-from-any-port-panel.mdx'
import Formbricks from '@theme/MDXComponents/Formbricks'

# Публичные плавающие IP-адреса

Публичные плавающие IP-адреса — статические IP-адреса, которые можно подключать к устройствам в приватных сетях, чтобы настроить к ним доступ из интернета: к [облачному серверу](#connect-public-floating-ip-to-cloud-server), [балансировщику нагрузки](#connect-public-floating-ip-to-load-balancer), [кластеру облачных баз данных](#connect-public-floating-ip-to-dbaas).

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

Для подключения плавающего публичного IP-адреса устройство должно находиться в приватной подсети, подключенной к облачному роутеру с доступом в интернет, — подробнее в инструкции [Подготовить приватную подсеть для подключения публичного плавающего IP-адреса⁠](#configure-subnet-for-internet-access).
Публичный плавающий IP-адрес ассоциируется с приватным IP-адресом устройства. Входящий трафик обрабатывается облачным роутером — роутер выполняет функцию 1:1 NAT через внешний IP-адрес, который выделяется при подключении роутера к интернету.
Входящий трафик можно отфильтровать с помощью [облачного файрвола](/cloud-servers/firewalls/) или [группы безопасности](/cloud-servers/security-groups/).

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

Публичный плавающий IP-адрес можно использовать только внутри одного [проекта](/access-control/projects/about-projects.mdx) и одного [пула](/infrastructure/locations.mdx#pool).

Для публичных плавающих IP-адресов есть ограничения на объем трафика — пропускная способность. Ее можно посмотреть в таблице [Пропускная способность](/cloud-servers/cloud-networks/about-networks.mdx#bandwidth).

Работать с публичными плавающими IP-адресами можно в [панели управления](https://my.selectel.ru/vpc/default/networks/), с помощью [OpenStack CLI](/cloud-servers/tools/openstack-cli/) или [Terraform](/terraform/providers/).

## Создать публичный плавающий IP-адрес \{#create-public-floating-ip}

Если вы создаете первый публичный плавающий IP-адрес в [проекте](/access-control/projects/about-projects.mdx) и [пуле](/infrastructure/locations.mdx#pool), автоматически создастся приватная сеть `nat` и облачный роутер `router-nat`.

<CreatePublicFloatingIp />

## Подготовить приватную подсеть для подключения публичного плавающего IP-адреса⁠ \{#configure-subnet-for-internet-access}

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

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

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

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

1. [Создайте облачный роутер c подключением к интернету⁠](#create-cloud-router).
2. [Подключите приватную подсеть к облачному роутеру](#connect-private-subnet-to-cloud-router).

### 1. Создать облачный роутер c подключением к интернету⁠ \{#create-cloud-router}

<CreateCloudRouterWithExternalIP />

### 2. Подключить подсеть к облачному роутеру \{#connect-private-subnet-to-cloud-router}

<ConnectPrivateSubnetToCloudRouter />

## Подключить публичный плавающий IP-адрес к облачному серверу \{#connect-public-floating-ip-to-cloud-server}

Публичный плавающий IP-адрес можно подключить при [создании облачного сервера](/cloud-servers/create/create-server.mdx) или к уже созданному серверу.

<Tabs queryString="connect-public-floating-ip-to-cloud-server">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. Убедитесь, что облачный сервер находится в подсети, которая соответствует требованиям, подробнее в подразделе [Подготовить приватную подсеть для подключения публичного плавающего IP-адреса⁠⁠](#configure-subnet-for-internet-access). Подсети сервера можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/servers/): в верхнем меню нажмите **Продукты** → **Облачные серверы** → страница сервера → вкладка **Порты**.
    2. В [панели управления](https://my.selectel.ru/vpc/default/floating-ips/) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.
    3. Перейдите в раздел **Сеть** → вкладка **Публичные плавающие IP-адреса**.
    4. В карточке публичного плавающего IP-адреса нажмите <EditIcon />.
    5. Выберите приватный IP-адрес облачного сервера.
    6. Нажмите **Сохранить**.
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. [Откройте OpenStack CLI](/cloud-servers/tools/openstack-cli/).

    2. Посмотрите ID порта облачного сервера:

       ```bash
       openstack port list --server <server>
       ```

       Укажите `<server>` — ID или имя облачного сервера.

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

       ```bash
       openstack floating ip set --port <port> <floating_ip_address>
       ```

       Укажите:

       * `<port>` — ID порта облачного сервера;
       * `<floating_ip_address>` — ID или публичный плавающий IP-адрес, можно посмотреть с помощью команды `openstack floating ip list`.
  </TabItem>
</Tabs>

## Отключить публичный плавающий IP-адрес от облачного сервера \{#disconnect-public-floating-ip-from-cloud-server}

<Tabs queryString="disconnect-public-floating-ip-from-cloud-server">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    <DisconnectPublicIpFromAnyPortPanel />
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. [Откройте OpenStack CLI](/cloud-servers/tools/openstack-cli/).
    2. Отключите публичный плавающий IP-адрес от порта облачного сервера:

       ```bash
       openstack floating ip unset --port <floating_ip_address>
       ```

       Укажите `<floating_ip_address>` — ID или публичный плавающий IP-адрес, можно посмотреть с помощью команды `openstack floating ip list`.
  </TabItem>
</Tabs>

## Подключить публичный плавающий IP-адрес к балансировщику нагрузки \{#connect-public-floating-ip-to-load-balancer}

Публичный плавающий IP-адрес можно подключить при [создании балансировщика](/cloud-servers/load-balancers/create-load-balancer.mdx) или к уже созданному балансировщику.

<Tabs queryString="connect-public-floating-ip-to-load-balancer">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. Убедитесь, что балансировщик нагрузки находится в подсети, которая соответствует требованиям, подробнее в подразделе [Подготовить приватную подсеть для подключения публичного плавающего IP-адреса⁠⁠](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx#configure-subnet-for-internet-access). Подсети балансировщика можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/lbaas/): в верхнем меню нажмите **Продукты** → **Облачные серверы** → **Балансировщики** → вкладка **Балансировщики** → страница балансировщика → блок **Настройки** → поле **Сеть**.
    2. В [панели управления](https://my.selectel.ru/vpc/default/lbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.
    3. Перейдите в раздел **Сеть**.
    4. Откройте вкладку **Публичные плавающие IP-адреса**.
    5. В карточке публичного плавающего IP-адреса нажмите <EditIcon />.
    6. Выберите приватный IP-адрес балансировщика нагрузки.
    7. Нажмите **Сохранить**.
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    <ConnectPublicIpToLoadBalancerOpenstack />
  </TabItem>
</Tabs>

## Отключить публичный плавающий IP-адрес от балансировщика нагрузки \{#disconnect-public-floating-ip-from-load-balancer}

<Tabs queryString="disconnect-public-floating-ip-from-load-balancer">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    <DisconnectPublicIpFromAnyPortPanel />
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    <DisconnectPublicIpFromLoadBalancerOpenstack />
  </TabItem>
</Tabs>

## Подключить публичный плавающий IP-адрес к кластеру облачных баз данных \{#connect-public-floating-ip-to-dbaas}

Публичный плавающий IP-адрес можно подключить при [создании кластера баз данных (пример для PostgreSQL)](/managed-databases/postgresql/create-cluster.mdx) или к уже созданному кластеру.

<Tabs queryString="connect-public-floating-ip-to-dbaas">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. Убедитесь, что кластер облачных баз данных находится в подсети, которая соответствует требованиям, подробнее в подразделе [Подготовить приватную подсеть для подключения публичного плавающего IP-адреса⁠⁠](#configure-subnet-for-internet-access). Подсети кластера можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/dbaas/): в верхнем меню нажмите **Продукты** → **Облачные базы данных** → страница кластера → вкладка **Настройки** → поле **Сеть кластера**.
    2. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
    3. Перейдите в раздел **Сеть** → вкладка **Публичные плавающие IP-адреса**.
    4. В карточке публичного плавающего IP-адреса нажмите <EditIcon />.
    5. Выберите приватный IP-адрес ноды.
    6. Нажмите **Сохранить**.
  </TabItem>
</Tabs>

## Отключить публичный плавающий IP-адрес от кластера облачных баз данных \{#disconnect-public-floating-ip-from-dbaas}

<Tabs queryString="disconnect-public-floating-ip-from-dbaas">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
    2. Перейдите в раздел **Сеть** → вкладка **Публичные плавающие IP-адреса**.
    3. В карточке публичного плавающего IP-адреса нажмите <EditIcon />.
    4. В поле **Новый приватный адрес для натирования трафика** выберите **Отключить от текущего**.
    5. Нажмите **Сохранить**.
  </TabItem>
</Tabs>

## Переключить публичный плавающий IP-адрес между устройствами \{#switch-public-floating-ip}

<Tabs queryString="switch-public-floating-ip">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/networks) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.
    2. Перейдите в раздел **Сеть** → вкладка **Публичные плавающие IP-адреса**.
    3. В карточке публичного плавающего IP-адреса нажмите <EditIcon />.
    4. Выберите новый приватный IP-адрес для натирования трафика.
    5. Нажмите **Сохранить**.
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. [Откройте OpenStack CLI](/cloud-servers/tools/openstack-cli/).

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

       ```bash
       openstack floating ip unset --port <floating_ip_address>
       ```

       Укажите `<floating_ip_address>` — публичный плавающий IP-адрес.

    3. Скопируйте ID порта с приватным IP-адресом, к которому нужно подключить публичный плавающий IP-адрес. Для этого выведите список портов:

       ```bash
       openstack port list
       ```

       В строке порта скопируйте значение в поле `ID`.

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

       ```bash
       openstack floating ip set --port <port> <floating_ip_address>
       ```

       Укажите:

       * `<port>` — ID порта, который вы скопировали на шаге 3;
       * `<floating_ip_address>` — ID или публичный плавающий IP-адрес, можно посмотреть с помощью команды `openstack floating ip list`.
  </TabItem>
</Tabs>

## Настроить NAT \{#configure-nat}

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

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

В Selectel по умолчанию [заблокированы некоторые TCP/UDP-порты](/infrastructure/blocked-ports.mdx), трафик через них заблокирован.

<Tabs queryString="configure-nat">
  <TabItem value="openstack" default>
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. [Откройте OpenStack CLI](/cloud-servers/tools/openstack-cli/).
    2. Настройте проброс портов:

       ```bash
       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> \
         <floating_ip_address>
       ```

       Укажите:

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

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

       ```bash
       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
       ```
  </TabItem>
</Tabs>

## Удалить публичный плавающий IP-адрес \{#delete-public-floating-ip}

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

<Tabs queryString="delete-public-floating-ip">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/networks/) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.
    2. Перейдите в раздел **Сеть** → вкладка **Публичные плавающие IP-адреса**.
    3. В карточке публичного плавающего IP-адреса нажмите <TrashIcon />.
    4. Введите IP-адрес для подтверждения удаления.
    5. Нажмите **Удалить**.
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. [Откройте OpenStack CLI](/cloud-servers/tools/openstack-cli/).
    2. Удалите публичный плавающий IP-адрес:

       ```bash
       openstack floating ip delete <floating_ip_address>
       ```

       Укажите `<floating_ip_address>` — ID или публичный плавающий IP-адрес, можно посмотреть с помощью команды `openstack floating ip list`.
  </TabItem>
</Tabs>

<Formbricks />
