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

# Создать внутреннюю зону DNS

Чтобы создать внутреннюю [зону DNS](../concepts/dns-zone.md):

{% list tabs group=instructions %}

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

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, где требуется создать зону DNS.
  1. [Перейдите](https://kz.console.yandex.cloud/link/dns) в сервис **Cloud DNS**.
  1. Нажмите кнопку **Создать зону**.
  1. Задайте настройки зоны:
     1. **Зона** — доменная зона. Название зоны должно заканчиваться точкой. Публичные зоны верхнего уровня (TLD-зоны) создавать нельзя. Чтобы создать доменную зону с нелатинскими символами, используйте кодировку [Punycode](https://ru.wikipedia.org/wiki/Punycode).
     1. **Тип** — `Внутренняя`.
     1. Укажите сети, ресурсы из которых будут входить в создаваемую зону.
     1. **Имя** зоны.
  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`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  Чтобы создать новую зону DNS:

  1. Посмотрите описание команды CLI для создания зоны:

     ```bash
     yc dns zone create --help
     ```

  1. Создайте новую внутреннюю зону DNS в каталоге по умолчанию:

     ```bash
     yc dns zone create --name <имя_зоны> \
       --zone <доменная_зона>. \
       --private-visibility=true \
       --network-ids="<идентификатор_сети_1>","<идентификатор_сети_2>"
     ```

     Где:

     * `--name` — имя зоны. Должно быть уникальным внутри каталога. Необязательный параметр.
     * `--zone` — доменная зона. Название зоны должно заканчиваться точкой. Публичные зоны верхнего уровня (TLD-зоны) создавать нельзя. Чтобы создать доменную зону с нелатинскими символами, используйте кодировку [Punycode](https://ru.wikipedia.org/wiki/Punycode). Обязательный параметр.
     * `--private-visibility` — параметр для создания внутренней зоны.
     * `--network-ids` — идентификаторы сетей, ресурсы из которых будут входить в зону.

     Результат:

     ```text
     id: aet29qhara5j********
     folder_id: aoerb349v3h4********
     created_at: "2021-02-21T09:21:03.935Z"
     name: test-zone
     zone: staging.
     private_visibility:
       network_ids:
       - c645mh47vsc********
       - b335fbs4fvv********
     ```

- Terraform {#tf}

  [Terraform](https://www.terraform.io/) позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
  
  Terraform распространяется под лицензией [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE), а [провайдер Yandex Cloud для Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) — под лицензией [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/).
  
  Подробная информация о ресурсах провайдера в документации на сайте [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) или в [зеркале](../../terraform/index.md).

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../terraform/authentication.md) соответствующим способом.

  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

     ```hcl
     resource "yandex_dns_zone" "zone1" {
       name        = "<имя_зоны>"
       description = "<описание_зоны>"

       labels = {
         label1 = "<метка_зоны>"
       }

       zone    = "<доменная_зона>."
       public           = false
       private_networks = ["<идентификатор_сети_1>","<идентификатор_сети_2>"]
     }
     ```

     Где:

     * `name` — имя зоны. Должно быть уникальным внутри каталога. Необязательный параметр.
     * `description` — описание зоны. Необязательный параметр.
     * `labels` — набор меток зоны DNS. Необязательный параметр.
     * `zone` — доменная зона. Название зоны должно заканчиваться точкой. Публичные зоны верхнего уровня (TLD-зоны) создавать нельзя. Чтобы создать доменную зону с нелатинскими символами, используйте кодировку [Punycode](https://ru.wikipedia.org/wiki/Punycode). Обязательный параметр.
     * `public` — видимость зоны: публичная или внутренняя. Необязательный параметр.
     * `private_networks` — идентификаторы сетей, которым доступны доменные имена из этой зоны. Необязательный параметр.
   
     Более подробно о параметрах ресурса `yandex_dns_zone` в [документации провайдера](../../terraform/resources/dns_zone.md).

  1. Создайте ресурсы:

     1. В терминале перейдите в директорию с конфигурационным файлом.
     1. Проверьте корректность конфигурации с помощью команды:
     
        ```bash
        terraform validate
        ```
     
        Если конфигурация является корректной, появится сообщение:
     
        ```bash
        Success! The configuration is valid.
        ```
     
     1. Выполните команду:
     
        ```bash
        terraform plan
        ```
     
        В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
     1. Примените изменения конфигурации:
     
        ```bash
        terraform apply
        ```
     
     1. Подтвердите изменения: введите в терминале слово `yes` и нажмите **Enter**.

     Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в [консоли управления](https://kz.console.yandex.cloud) или с помощью команды [CLI](../../cli/quickstart.md):

     ```bash
     yc dns zone get <имя_зоны>
     ```

- API {#api}

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

{% endlist %}