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

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import MoreVerticalIcon from '@selectel/docux/icons/more-vertical'
import EditIcon from '@selectel/docux/icons/edit'
import CheckIcon from '@selectel/docux/icons/check'
import CopyIcon from '@selectel/docux/icons/copy'
import TrashIcon from '@selectel/docux/icons/trash'
import CreatePublicSubnet from '@site/docs/_partials/cloud-servers/cloud-networks/create-public-subnet.mdx'
import Formbricks from '@theme/MDXComponents/Formbricks'

# Публичные подсети

Публичная подсеть — это диапазон публичных статических IP-адресов, ограниченный размером префикса (маски). Все устройства в публичной подсети имеют публичный IP-адрес и доступ в интернет и из интернета. Настроить доступ через публичную подсеть можно для облачного сервера, облачного балансировщика нагрузки и кластера облачных баз данных — подробнее в инструкции [Настроить доступ в интернет и из интернета](/cloud-servers/cloud-networks/configure-access-to-internet.mdx).

IP-адреса из публичной подсети не обрабатываются [облачным роутером](/cloud-servers/cloud-networks/cloud-routers.mdx) с помощью 1:1 NAT, а подключаются напрямую к устройствам: облачному серверу, облачному балансировщику нагрузки, кластеру облачных баз данных. Из-за отсутствия NAT такой вид подключения устройств к интернету более отказоустойчивый и быстрый, но менее безопасный, чем [подключение через публичный плавающий IP-адрес](/cloud-servers/cloud-networks/configure-access-to-internet.mdx#internet-access-via-floating-ip).

Устройства в публичной подсети взаимодействуют друг с другом через публичные интерфейсы.

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

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

Работать с публичными подсетями можно в [панели управления](https://my.selectel.ru/vpc/default/networks/) или [Terraform](/terraform/providers/).

## Размеры публичных подсетей \{#public-subnet-size}

Доступны публичные подсети размером от `/29` (пять свободных адресов IPv4) до `/24` (253 свободных адреса IPv4). В каждой публичной подсети резервируется три служебных IP-адреса:

* первый IP-адрес — адрес сети;
* второй IP-адрес — адрес шлюза;
* последний IP-адрес — широковещательный адрес.

Остальные IP-адреса можно назначить на устройства.

Пример для подсети `192.0.2.0/29` — доступны пять адресов:

* 192.0.2.0 — адрес сети;
* 192.0.2.1 — адрес шлюза;
* 192.0.2.2 — можно использовать;
* 192.0.2.3 — можно использовать;
* 192.0.2.4 — можно использовать;
* 192.0.2.5 — можно использовать;
* 192.0.2.6 — можно использовать;
* 192.0.2.7 — широковещательный адрес.

Если в публичной подсети закончились свободные IP-адреса, можно [создать новую публичную подсеть](#create-public-subnet).

## Автоматические настройки публичной подсети \{#default-settings}

В публичных подсетях указываются настройки по умолчанию: шлюз по умолчанию и DNS-серверы. Настройки применяются к устройствам в подсети автоматически.

### Шлюз по умолчанию \{#default-gateway}

При создании публичной подсети для шлюза по умолчанию резервируется второй IP-адрес. Шлюз по умолчанию в публичной подсети нельзя изменить.

### DNS-серверы \{#dns-servers}

При создании публичной подсети на устройствах в подсети автоматически прописываются DNS-серверы Selectel. DNS-серверы можно изменить при [создании подсети](#create-public-subnet) или [изменить после создания](#change-dns-servers-on-public-subnet).

### Статические маршруты

По умолчанию в подсетях не указаны статические маршруты. Для публичных подсетей можно [настроить статические маршруты](/cloud-servers/cloud-networks/static-routes.mdx#configure-static-routing-on-subnet).

## Создать публичную подсеть \{#create-public-subnet}

<CreatePublicSubnet />

## Настроить доступ к публичной подсети в разных проектах \{#configure-access-to-public-subnet}

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

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

<Tabs queryString="configure-access-to-public-subnet">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

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

## Изменить DNS-серверы в публичной подсети \{#change-dns-servers-on-public-subnet}

При создании публичной подсети на устройствах в подсети автоматически прописываются [рекурсивные DNS-серверы Selectel](/infrastructure/dns/dns-recursive-servers-list.mdx). DNS-серверы можно изменить при [создании публичной подсети](#create-public-subnet) или для существующей публичной подсети.

<Tabs queryString="change-dns-servers-on-public-subnet">
  <TabItem value="panel" default>
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

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

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

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

    2. Если вам нужно полностью заменить список DNS-серверов, удалите IP-адреса указанных DNS-серверов и добавьте новые:

       ```bash
       openstack subnet set \
         --no-dns-nameservers \
         --dns-nameserver <dns_server> \
         <subnet>
       ```

       Укажите:

       * `<dns_server>` — IP-адрес DNS-сервера. Можно добавить несколько DNS-серверов — каждый добавляется с помощью опции `--dns-nameserver <dns_server>`;
       * `<subnet>` — ID или имя публичной подсети, можно посмотреть с помощью команды `openstack subnet list`.

       Пример изменения DNS-серверов по умолчанию на `192.0.2.3` и `192.0.2.4`:

       ```bash
       openstack subnet set \
         --no-dns-nameservers \
         --dns-nameserver 192.0.2.3 \
         --dns-nameserver 192.0.2.4 \
         <subnet>
       ```

    3. Если вам нужно дополнить список DNS-серверов, добавьте IP-адреса новых DNS-серверов:

       ```bash
       openstack subnet set \
         --dns-nameserver <dns_server> \
         <subnet>
       ```

       Укажите:

       * `<dns_server>` — IP-адрес DNS-сервера. Можно добавить несколько DNS-серверов — каждый добавляется с помощью опции `--dns-nameserver <dns_server>`;
       * `<subnet>` — ID или имя публичной подсети, можно посмотреть с помощью команды `openstack subnet list`.
  </TabItem>
</Tabs>

## Удалить публичную подсеть \{#delete-public-subnet}

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

    1. В [панели управления](https://my.selectel.ru/vpc/default/networks/) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.

    2. Перейдите в раздел **Сеть** → вкладка **Публичные сети**.

    3. Откройте карточку подсети → вкладка **Порты**.

    4. Если есть порты с неактивной кнопкой <TrashIcon />, подготовьте их к удалению:

       4.1. В столбце **Подключен к** посмотрите, к какому устройству подключен порт.

       4.2. Подготовьте порт к удалению в зависимости от устройства:

       * облачный сервер — переведите сервер в [статус](/cloud-servers/manage/server-statuses.mdx) `ACTIVE`, `PAUSED` или `STOPPED`;
       * любое другое устройство — удалите устройство, порт будет автоматически удален вместе с устройством.

       4.3. Если в подсети еще остались порты с неактивной кнопкой <TrashIcon />, повторите шаги 4.1–4.2 для каждого из них.

    5. Перейдите в раздел **Сеть** → вкладка **Публичные сети**.

    6. В меню <MoreVerticalIcon /> публичной подсети выберите **Удалить подсеть**.

    7. Введите адрес подсети для подтверждения удаления.

    8. Нажмите **Удалить**.
  </TabItem>
</Tabs>

<Formbricks />
