[Документация Yandex Cloud](../../index.md) > [Yandex BareMetal](../index.md) > [Пошаговые инструкции](index.md) > Сеть > Заказать выделенную публичную подсеть

# Заказать выделенную публичную подсеть

[Выделенная публичная подсеть](../concepts/public-network.md#public-subnet) — это публичная подсеть, состоящая из определенного диапазона публичных IP-адресов, которые будут доступны вашим серверам в выбранных [пулах](../concepts/servers.md#server-pools).

Вы можете арендовать новую выделенную публичную подсеть или преобразовать имеющуюся [эфемерную публичную подсеть](../concepts/public-network.md#ephemeral-public-subnet) в выделенную.

### Арендовать новую выделенную публичную подсеть {#reserve-new-subnet}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите [каталог](../../resource-manager/concepts/resources-hierarchy.md#folder), в котором хотите зарезервировать [выделенную публичную подсеть](../concepts/public-network.md#public-subnet).
  1. [Перейдите](https://kz.console.yandex.cloud/link/baremetal) в сервис **BareMetal**.
  1. На панели слева выберите ![globe](../../_assets/console-icons/globe.svg) **Публичные адреса и подсети**.
  1. Справа вверху нажмите кнопку **Заказать публичную подсеть**.
  1. В поле **Зона доступности** выберите [зону доступности](../../overview/concepts/geo-scope.md), в которой будет доступна подсеть.
  1. В поле **Пул** выберите [пулы](../concepts/servers.md#server-pools), в которых будет доступна подсеть.
     
     Вы можете привязать выделенную публичную подсеть одновременно к нескольким пулам.
  1. Выберите размер заказываемой подсети.
  
      В консоли управления можно заказать только подсети размером `/29` (шесть доступных IP-адресов) и `/28` (четырнадцать доступных IP-адресов). Если вам необходима более широкая публичная подсеть, запросите ее через [обращение](https://kz.center.yandex.cloud/support/tickets/create) в службу технической поддержки.
  1. В блоке **Общая информация**:
     
     1. В поле **Имя** введите имя публичной подсети.
     1. (Опционально) В поле **Описание** добавьте описание подсети.
     1. (Опционально) В поле **Метки** задайте [метки](../../resource-manager/concepts/labels.md).
  1. Нажмите кнопку **Заказать**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды для аренды новой [выделенной публичной подсети](../concepts/public-network.md#public-subnet):

     ```bash
     yc baremetal public-subnet create --help
     ```
  
  1. Арендуйте подсеть:
     
     ```bash
     yc baremetal public-subnet create \
       --hardware-pool-id <пул> \
       --prefix-length 29 \
       --name <имя_публичной_подсети> \
       --description "<описание_публичной_подсети>" \
       --labels <ключ>=<значение>
     ```

     Где:
     * `--hardware-pool-id` — [пулы](../concepts/servers.md#server-pools), в которых будет доступна подсеть.

       Вы можете привязать выделенную публичную подсеть одновременно к нескольким пулам.

     * `--prefix-length` — размер заказываемой подсети.

       Можно заказать только подсети размером `/29` (шесть доступных IP-адресов) и `/28` (четырнадцать доступных IP-адресов).
     
     * `--name` — имя подсети. Требования к имени:
       
       * длина — от 3 до 63 символов;
       * может содержать строчные буквы латинского алфавита, цифры и дефисы;
       * первый символ — буква, последний — не дефис.
       
     * `--description` — описание подсети. Необязательный параметр.
     * `--labels` — [метки](../../resource-manager/concepts/labels.md) подсети. Необязательный параметр.

- API {#api}

  Чтобы арендовать новую выделенную публичную подсеть, воспользуйтесь методом REST API [create](../api-ref/PublicSubnet/create.md) для ресурса [PublicSubnet](../api-ref/PublicSubnet/index.md) или вызовом gRPC API [PublicSubnetService/Create](../api-ref/grpc/PublicSubnet/create.md).

{% endlist %}

### Преобразовать эфемерную публичную подсеть в выделенную {#transform-ephemeral-to-dedicated}

{% note info %}

Эфемерную публичную подсеть можно преобразовать только в выделенную публичную подсеть размера `/31`.

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором находится эфемерная публичная подсеть, которую вы хотите преобразовать в выделенную.
  1. [Перейдите](https://kz.console.yandex.cloud/link/baremetal) в сервис **BareMetal**.
  1. На панели слева выберите ![globe](../../_assets/console-icons/globe.svg) **Публичные адреса и подсети**.
  1. В открывшемся списке публичных подсетей в строке с нужной эфемерной подсетью нажмите значок ![ellipsis](../../_assets/console-icons/ellipsis.svg) и выберите **Сделать выделенной**.
  1. В поле **Пул** выберите [пулы](../concepts/servers.md#server-pools), в которых будет доступна подсеть.
     
     Вы можете привязать выделенную публичную подсеть одновременно к нескольким пулам.
  1. В блоке **Общая информация**:
     
     1. В поле **Имя** введите имя публичной подсети.
     1. (Опционально) В поле **Описание** добавьте описание подсети.
     1. (Опционально) В поле **Метки** задайте [метки](../../resource-manager/concepts/labels.md).
  1. Нажмите кнопку **Заказать**.

- CLI {#cli}

  1. Посмотрите описание команды для преобразования эфемерной публичной подсети:

     ```bash
     yc baremetal public-subnet update --help
     ```
  
  1. Преобразуйте подсеть:
     
     ```bash
     yc baremetal public-subnet update \
       --id <идентификатор_публичной_эфимерной_подсети> \
       --type dedicated \
       --hardware-pool-id <пул> \
       --name <имя_публичной_подсети> \
       --description "<описание_публичной_подсети>" \
       --labels <ключ>=<значение>
     ```

     Где:
     * `--id` — идентификатор эфимерной публичной подсети.
     * `--type` — тип, в который преобразуется подсеть.
     * `--hardware-pool-id` — [пулы](../concepts/servers.md#server-pools), в которых будет доступна подсеть.

       Вы можете привязать выделенную публичную подсеть одновременно к нескольким пулам.
     
     * `--name` — имя подсети.
     * `--description` — описание подсети. Необязательный параметр.
     * `--labels` — [метки](../../resource-manager/concepts/labels.md) подсети. Необязательный параметр.

- API {#api}

  Чтобы преобразовать эфемерную публичную подсеть в выделенную, воспользуйтесь методом REST API [update](../api-ref/PublicSubnet/update.md) для ресурса [PublicSubnet](../api-ref/PublicSubnet/index.md) или вызовом gRPC API [PublicSubnetService/Update](../api-ref/grpc/PublicSubnet/update.md).

{% endlist %}

## Примеры {#examples}

### Аренда новой выделенной публичной подсети {#reserve-new-subnet-example}

Арендуйте новую выделенную публичную подсеть размером `/29`:

{% list tabs group=instructions %}

- CLI {#cli}

  ```bash
  yc baremetal public-subnet create \
    --hardware-pool-id ru-central1-m3 \
    --prefix-length 29 \
    --name demo-public-subnet \
    --description "My first public subnet" \
    --labels env=test
  ```

  Результат

  ```text
  id: ly5jmqxxrcsu********
  cloud_id: b1gia87mbaom********
  folder_id: b1g0ijbfaqsn********
  name: demo-public-subnet
  description: My first public subnet
  zone_id: ru-central1-m
  hardware_pool_ids:
    - ru-central1-m3
  type: DEDICATED
  prefix_length: "29"
  cidr: 94.139.248.184/29
  gateway_ip: 94.139.248.185
  created_at: "2025-06-26T14:11:49.458568Z"
  labels:
    env: test
  ```

- API {#api}

  ```bash
  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <IAM-токен>" \
    -d '{
      "folderId": "b1g07hj5r6i4********",
      "name": "new-public-subnet",
      "description": "New public subnet",
      "hardwarePoolIds": [
        "ru-central1-m3"
      ],
      "prefixLength": "29",
      "labels": {
        "key": "public-subnet"
      }
    }' \
    "https://baremetal.api.cloud.yandex.net/baremetal/v1alpha/publicSubnets"
  ```

  Где:

  * `<IAM-токен>` — IAM-токен для аутентификации.
  * `folderId` — [идентификатор каталога](../../resource-manager/operations/folder/get-id.md).
  * `hardwarePoolIds` — идентификаторы [пулов](../concepts/servers.md#server-pools).
  * `prefixLength` — размер заказываемой подсети.
  * `name` — имя публичной подсети. Требования к имени:
    
    * длина — от 3 до 63 символов;
    * может содержать строчные буквы латинского алфавита, цифры и дефисы;
    * первый символ — буква, последний — не дефис.
    
  * `description` — описание подсети. Необязательный параметр.
  * `labels` — метки подсети. Необязательный параметр.

  Результат:

  ```bash
  {
    "done": true,
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.baremetal.v1alpha.CreatePublicSubnetMetadata",
      "publicSubnetId": "ly52xefxa2hi********"
    },
    "response": {
      "@type": "type.googleapis.com/yandex.cloud.baremetal.v1alpha.PublicSubnet",
      "id": "ly52xefxa2hi********",
      "cloudId": "b1gia87mbaom********",
      "folderId": "b1g07hj5r6i4********",
      "name": "new-public-subnet",
      "description": "New public subnet",
      "zoneId": "ru-central1-m",
      "hardwarePoolId": "ru-central1-m3",
      "type": "EPHEMERAL",
      "prefixLength": "29",
      "cidr": "10.0.*.*/29",
      "dhcpOptions": {
          "startIp": "10.0.*.*",
          "endIp": "10.0.*.*"
        },
      "gatewayIp": "10.0.*.*"
      "createdAt": "2025-12-14T14:42:58.372557Z"
      "labels": {
        "env": "test"
      },
    "id": "ly5hcnsbx3l4********",
    "description": "Public subnet create",
    "createdAt": "2025-12-14T14:42:58.375290Z",
    "createdBy": "ajeb9l33h6mu********",
    "modifiedAt": "2025-12-14T14:42:58.375290Z"
  }
  ```
  Отслеживайте статус операции по полю `done`.

{% endlist %}

### Преобразование эфемерной публичной подсети в выделенную {#transform-ephemeral-to-dedicated-example}

Измените тип публичной подсети с `ephemeral` на `dedicated`:

{% list tabs group=instructions %}

- CLI {#cli}

  ```bash
  yc baremetal public-subnet update \
    --id ly5vr6tugxk7******** \
    --type dedicated \
    --description "Transformed dedicated public subnet"
  ```

  Результат

  ```text
  id: ly5vr6tugxk7********
  cloud_id: b1gia87mbaom********
  folder_id: b1g0ijbfaqsn********
  name: transformed-public-subnet
  description: Transformed dedicated public subnet
  zone_id: ru-central1-m
  hardware_pool_ids:
    - ru-central1-m3
  type: DEDICATED
  prefix_length: "29"
  cidr: 94.139.248.184/29
  gateway_ip: 94.139.248.185
  created_at: "2025-06-26T14:11:49.458568Z"
  ```
- API {#api}

  ```bash
  curl -X PATCH \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <IAM-токен>" \
    -d '{
      "updateMask": "type,hardwarePoolIds,name,description",
      "type": "DEDICATED",
      "hardwarePoolIds": ["ru-central1-m3"],
      "name": "transformed-public-subnet",
      "description": "Transformed dedicated public subnet"
    }' \
    "https://baremetal.api.cloud.yandex.net/baremetal/v1alpha/publicSubnets/<идентификатор_подсети>"
  ```

  Где:
  
  * `updateMask` — список параметров для обновления, разделенный запятыми.
  * `type` — новый тип подсети. Значение `DEDICATED` для преобразования в выделенную подсеть.
  * `name` — имя выделенной подсети. Требования к имени:
    
    * длина — от 3 до 63 символов;
    * может содержать строчные буквы латинского алфавита, цифры и дефисы;
    * первый символ — буква, последний — не дефис.
    
  * `description` — описание выделенной подсети. Необязательный параметр.
  
  Результат:

  ```bash
  {
    "done": true,
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.baremetal.v1alpha.CreatePublicSubnetMetadata",
      "publicSubnetId": "ly52xefxa2hi********"
    },
    "response": {
      "@type": "type.googleapis.com/yandex.cloud.baremetal.v1alpha.PublicSubnet",
      "id": "ly52xefxa2hi********",
      "cloudId": "b1gia87mbaom********",
      "folderId": "b1g07hj5r6i4********",
      "name": "new-public-subnet",
      "description": "New public subnet",
      "zoneId": "ru-central1-m",
      "hardwarePoolId": "ru-central1-m3",
      "type": "DEDICATED",
      "prefixLength": "29",
      "cidr": "10.0.*.*/29",
      "dhcpOptions": {
          "startIp": "10.0.*.*",
          "endIp": "10.0.*.*"
        },
      "gatewayIp": "10.0.*.*"
      "createdAt": "2025-12-14T14:42:58.372557Z"
      "labels": {
        "env": "test"
      },
    "id": "ly5hcnsbx3l4********",
    "description": "Public subnet create",
    "createdAt": "2025-12-14T14:42:58.375290Z",
    "createdBy": "ajeb9l33h6mu********",
    "modifiedAt": "2025-12-14T14:42:58.375290Z"
  }
  ```

  Отслеживайте статус операции по полю `done`.

{% endlist %}