[Документация Yandex Cloud](../../index.md) > [Yandex Cloud DNS](../index.md) > [Концепции](index.md) > Ресурсные записи

# Ресурсные записи

Ресурсная запись — это главная единица информации в DNS. С помощью ресурсных записей вы определяете, куда направить запросы, поступающие на определенные доменные имена. У ресурсных записей есть следующие параметры:

* Доменное имя.
* Тип записи.
* Время жизни записи (TTL, Time to live) в секундах до актуализации информации о значении записи.
* Значение записи.
* Описание набора записей.

{% note warning %}

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

{% endnote %}

Cloud DNS оперирует наборами записей. Набор может содержать одну запись или объединять ресурсные записи с одинаковым именем и типом, но с разными значениями.

Пример набора записей:

| Имя          | Тип | TTL | Значение                                                        |
|--------------|-----|-----|-----------------------------------------------------------------|
| example.com. | A   | 600 | <ul><li>192.0.2.1</li><li>192.0.2.2</li><li>192.0.2.3</li></ul> |

Наборы записей можно изменять, добавляя или удаляя записи.

{% note info %}

Все записи одного набора имеют одинаковое значение TTL.

{% endnote %}

Типы ресурсных записей, поддерживаемых Cloud DNS, указаны ниже.


## A {#a}

`A` — сопоставление доменного имени и IPv4-адреса. Например, запрос A-записи `www.example.com` должен вернуть IPv4-адрес вида `xxx.xxx.xxx.xxx`.

| Имя          | Тип | TTL | Значение  |
|--------------|-----|-----|-----------|
| example.com. | A   | 600 | 192.0.2.1 |

Подробнее об A-записях в [RFC-1035](https://www.ietf.org/rfc/rfc1035.html#section-3.4.1).


## AAAA {#aaaa}

`AAAA` — сопоставление доменного имени и IPv6-адреса. Работает аналогично A-записям.

| Имя          | Тип  | TTL | Значение    |
|--------------|------|-----|-------------|
| example.com. | AAAA | 600 | 2001:db8::1 |

Подробнее об AAAA-записях в [RFC-3596](https://tools.ietf.org/html/rfc3596).


## CAA {#caa}

`CAA` — указание авторизованных центров сертификации (Certification Authority Authorization), которым разрешено выпускать сертификаты для зоны и ее подзон.

Запись состоит из следующих частей:

* `FLAG` (флаг) — однобайтовое беззнаковое целое, принимающее два значения:
    * `0` — запись не является критичной. Центр сертификации может выпустить сертификат по своему усмотрению.
    * `128` — запись является критичной. Центр сертификации не должен выдавать сертификат для [FQDN](../../glossary/fqdn.md), если соответствующая CAA-запись содержит критическое свойство для неизвестного или неподдерживаемого тега.
* `TAG` (тег) — строка, состоящая из символов латинского алфавита и цифр, определяющая предназначение записи:
    * `issue` — определяет центр сертификации, которому разрешен выпуск сертификата для зоны или подзоны.
    * `issuewild` — определяет центр сертификации, которому разрешен выпуск сертификатов для зоны и всех ее подзон (wildcard, `*.example.com`).
    * Контактные данные, которые должен использовать центр сертификации для уведомлений владельца зоны о получении запроса на выпуск сертификата с нарушением правил, определенных в CAA-записях:
        * `iodef` — номер телефона, адрес сайта или email в произвольной форме;
        * `contactemail` — адрес email;
        * `contactphone` — номер телефона.

    Если сервер не может обработать незнакомый ему тег, анализируется значение флага:

    * `0` — тег игнорируется;
    * `128` — независимо от значения в поле `VALUE` запись запрещает выпуск сертификатов для указанной зоны.

* `VALUE` — запись, заключенная в двойные кавычки: `""`. Обработка значения в этом поле определяется значением тега.

| Имя          | Тип | TTL | Значение                                | Расшифровка                                                                                                                                           |
|--------------|-----|-----|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| example.com. | CAA | 600 | 128 issue "ca.example.net"              | Выпуск сертификата для зоны `example.com` разрешен только удостоверяющему центру `ca.example.net`                                                    |
| example.com. | CAA | 600 | 0 issuewild "ca.example.net"            | Центр сертификации `ca.example.net` может по своему усмотрению выпускать сертификаты для зоны `example.com` и ее подзон                               |
| example.com. | CAA | 600 | 0 issue ";"                             | Центрам сертификации запрещено выпускать сертификаты для зоны `example.com`                                                                           |
| example.com. | CAA | 600 | 0 iodef "mailto:security@example.com"   | При нарушении одного из условий, описанных в CAA-записях, следует связаться с владельцем зоны `example.com` по адресу `security@example.com`          |
| example.com. | CAA | 600 | 0 iodef "https://security.example.com/" | При нарушении одного из условий, описанных в CAA-записях, следует связаться с владельцем зоны `example.com` через сайт `https://security.example.com` |

Подробнее о CAA-записях в [RFC-8659](https://tools.ietf.org/html/rfc8659).


## CNAME {#cname}

`CNAME` — псевдоним для FQDN. С помощью CNAME можно обращаться к разным службам, работающим на одном IP-адресе. Например, CNAME-записи `first.example.com` и `second.example.com` могут указывать на одну A-запись `host.example.com`.

| Имя                 | Тип   | TTL | Значение          |
|---------------------|-------|-----|-------------------|
| first.example.com.  | CNAME | 600 | host.example.com. |
| second.example.com. | CNAME | 600 | host.example.com. |
| host.example.com.   | A     | 600 | 192.0.2.100       |

Обратите внимание, что CNAME нельзя совмещать с другими записями в одном домене. Подробнее о CNAME-записях и их [ограничениях](https://www.rfc-editor.org/rfc/rfc1912#section-2.4) в [RFC-1035](https://www.ietf.org/rfc/rfc1035.html#section-3.3.1).

## ANAME {#aname}

`ANAME` — запись работает аналогично записи `CNAME`, но может использоваться в одном домене с другими записями. Например, можно использовать `ANAME` в домене второго уровне вместе с `MX`-записями.

| Имя                  | Тип   | TTL | Значение                           |
|----------------------|-------|-----|------------------------------------|
| example.com.         | ANAME | 600 | example.com.website.yandexcloud.kz |
| example.com.         | MX    | 600 | 10 mx.example.com                  |
| example.com.         | TXT   | 600 | v=spf1 redirect=_spf.example.com   |
| example.com.         | TXT   | 600 | v=DKIM1; k=rsa; t=s; p=<ключ>      |

{% note info %}

Не используйте ресурсную запись `ANAME` с доменными именами для раздачи контента [Yandex Cloud CDN](../../cdn/index.md), поскольку в таком случае конечный пользователь получит ответ от CDN-сервера, не связанного с геолокацией пользователя. Ответ всегда будет одинаков для всех пользователей.

{% endnote %}

## MX {#mx}

`MX` — имя сервера, обрабатывающего электронную почту, например `mx.example.com`.

Запись состоит из двух частей:

* `PREFERENCE` — 16-битное целое, задающее приоритет хоста. Чем ниже значение, тем более предпочтительным считается хост.
* `EXCHANGE` — FQDN хоста, обрабатывающего почту в указанной зоне. Значение в этом поле должно указывать на A- или AAAA-запись.

| Имя          | Тип | TTL | Значение                   |
|--------------|-----|-----|----------------------------|
| example.com. | MX  | 600 | 10 mx-primary.example.com. |
| example.com. | MX  | 600 | 50 mx-reserve.example.com. |

Подробнее о MX-записях в [RFC-1035](https://www.ietf.org/rfc/rfc1035.html#section-3.3.9).


## NS {#ns}

`NS` — запись, содержащая адрес сервера имен, обслуживающего указанную зону.

| Имя          | Тип | TTL | Значение         |
|--------------|-----|-----|------------------|
| example.com. | NS  | 600 | ns1.example.com. |
| example.com. | NS  | 600 | ns2.example.com. |

Подробнее о NS-записях в [RFC-1035](https://www.ietf.org/rfc/rfc1035.html#section-3.3.11).


## PTR {#ptr}

`PTR` — сопоставление IP-адреса и доменного имени.

| IP-адрес  | Тип | TTL | Значение           |
|-----------|-----|-----|--------------------|
| 192.0.2.1 | PTR | 600 | host1.example.com. |
| 192.0.2.2 | PTR | 600 | host2.example.com. |

Подробнее о PTR-записях в [RFC-1035](https://www.ietf.org/rfc/rfc1035.html#section-3.3.12).


## SOA {#soa}

`SOA` — запись, содержащая базовую информацию о зоне. Создается автоматически.

Состоит из следующих частей:

* `MNAME` — доменное имя сервера, обслуживающего зону. Значение по умолчанию:
    * `ns.internal.` — для внутренних зон;
    * `ns1.yandexcloud.kz.` — для публичных зон.
* `RNAME` — доменное имя почтового сервера, обслуживающего зону. Значение по умолчанию — `mx.cloud.yandex.net.`.
* `SERIAL` — 32-битное беззнаковое целое, указывающее на номер копии зоны. При синхронизации данных между DNS-серверами проверяется значение в поле `SERIAL`. Чем оно больше, тем более свежими считаются данные. Значение по умолчанию — `1`.

    {% note warning %}

    Сервис Cloud DNS не изменяет значение поля `SERIAL` в SOA-записях при редактировании ресурсных записей зоны. Если вы хотите принудительно обновить кеш DNS-серверов, содержащих информацию о ваших ресурсных записях, увеличьте значение в этом поле вручную.

    {% endnote %}

* `REFRESH` — время в секундах между обновлениями информации о ресурсных записях в зоне. Значение по умолчанию — `10800` (3 часа).
* `RETRY` — время в секундах до очередной попытки обновить сведения о ресурсных записях зоны, если предыдущая была неудачной. Значение по умолчанию — `900` (15 минут).
* `EXPIRE` — время в секундах, по прошествии которого зона перестанет быть авторитетной. Значение по умолчанию — `604800` (7 суток).
* `MINIMUM` — минимальное значение TTL в секундах для любой ресурсной записи, экспортируемой из зоны. Значение по умолчанию — `86400` (24 часа).

| Имя          | Тип | TTL  | Значение                                                           |
|--------------|-----|------|--------------------------------------------------------------------|
| example.com. | SOA | 3600 | ns1.yandexcloud.kz. mx.cloud.yandex.net. 1 10800 900 604800 86400 |
| example.com. | SOA | 3600 | ns.internal. mx.cloud.yandex.net. 1 10800 900 604800 86400         |

Подробнее о SOA-записях в [RFC-1035](https://www.ietf.org/rfc/rfc1035.html#section-3.3.13).


## SRV {#srv}

`SRV` — запись, указывающая имя хоста и порт сервера, на котором работает определенная служба. SRV-запись должна указывать на A- или AAAA-запись.

Состоит из следующих частей:

* `Priority` (приоритет) — 16-битное беззнаковое целое число, задающее приоритет хоста. Чем ниже значение, тем более предпочтительным считается хост.
* `Weight` (вес) — 16-битное беззнаковое целое число, задающее вес для хостов с одинаковым приоритетом. Чем ближе значение в этом поле к 0, тем меньше шансов, что хост будет выбран. Если служба работает только на одном хосте, в этом поле укажите значение `0`.
* `Port` (порт) — 16-битное беззнаковое целое число, указывающее порт, используемый службой.
* `Target` — FQDN хоста, на котором размещается служба.

Клиент обращается к серверу с наименьшим приоритетом. Если приоритеты одинаковые у нескольких серверов, нагрузка распределяется согласно весам. Укажите приоритет и вес записей, чтобы распределить нагрузку не только между группами серверов, но и внутри групп из нескольких серверов.

| Имя                           | Тип | TTL | Значение                          |
|-------------------------------|-----|-----|-----------------------------------|
| _sip._tcp.example.com.        | SRV | 600 | 10 70 8080 host.example.com.      |
| _postgresql._tcp.example.com. | SRV | 600 | 10 60 6432 pg-master.example.com. |
| _postgresql._tcp.example.com. | SRV | 600 | 10 30 6432 pg-repl1.example.com.  |
| _postgresql._tcp.example.com. | SRV | 600 | 10 10 6432 pg-repl2.example.com.  |

{% note warning %}

Сервис Cloud DNS поддерживает только SRV-записи класса `IN`. При создании записей указывать префикс `IN` не нужно.

{% endnote %}

Подробнее о SRV-записях в [RFC-2782](https://www.ietf.org/rfc/rfc2782.html).

## SVCB и HTTPS {#svcb-https}

`SVCB` — запись, указывающая имя хоста и порт сервера, на котором работает определенная служба. Предоставляет клиенту дополнительную информацию о том, как он должен подключаться к серверу.

`HTTPS` — запись, предоставляющая информацию о HTTPS-соединениях. Частный случай SVCB-записи.

Состоит из следующих частей:

* `priority` (приоритет) — 16-битное беззнаковое целое число, задающее приоритет хоста. Когда `priority` равен 0, SVCB-запись находится в режиме `AliasMode`, в противном случае она находится в режиме `ServiceMode`.

    * `AliasMode` — режим, в котором SVCB-запись создает псевдоним для `target`. Позволяет создавать псевдонимы в домене зоны.
    * `ServiceMode` — режим, в котором SVCB-запись указывает на альтернативное имя хоста. Чем ниже значение `priority`, тем предпочтительнее хост.

* `target` — FQDN хоста, на котором размещается служба.
* `port` (порт) — 16-битное беззнаковое целое число, порт службы.
* `alpn` (Application-Layer Protocol Negotiation) — определяет набор идентификаторов и связанных с ними транспортных протоколов, поддерживаемых хостом.

    * `no-default-alpn` — параметр, который указывает, что по умолчанию не следует использовать никаких дополнительных протоколов при установке защищенного соединения с указанным хостом.

* `ipv4hint` и `ipv6hint` — описывают IP-адреса, которые клиенты могут использовать для доступа к службе.
* `echconfig` — параметр, который указывает, что хост поддерживает Encrypted Client Hello.
* `mandatory` — параметр, который используется для указания обязательных ключей для данной записи, в дополнение к присутствующим ключам.

| Имя                         | Тип   | TTL  | Значение                                            |
|-----------------------------|-------|------|-----------------------------------------------------|
| _1234._bar.example.com.     | SVCB  | 300  | 1 svc1.example.net. ipv6hint=2001:db8::1 port=1234  |
| _1234._bar.example.com.     | SVCB  | 300  | 2 svc2.example.net. ipv6hint=2001:db8::2 port=1234  |
| _8443._foo.api.example.com. | SVCB  | 7200 | 0 svc4.example.net.                                 |
| svc4.example.net.           | SVCB  | 7200 | 3 svc4.example.net. alpn=bar port=8004              |
| svc2.example.net.           | HTTPS | 7200 | 1 . port=8002                                       |
| example.net.                | HTTPS | 1800 | 1 . alpn=h3,h3-29,h2 ipv4hint=10.0.0.1 ipv6hint=::1 |

Подробнее об SVCB-записях в [RFC-9460](https://www.ietf.org/rfc/rfc9460.html), [RFC-9461](https://www.ietf.org/rfc/rfc9461.html).

## TXT {#txt}

`TXT` — произвольная запись, позволяющая хранить человекочитаемый текст или структурированные машиночитаемые данные.

В основном применяется для проверки:

* владения доменом;
* подлинности сообщений электронной почты:

    * DMARC, [RFC-7489](https://www.ietf.org/rfc/rfc7489.html);
    * DKIM, [RFC-6376](https://datatracker.ietf.org/doc/html/rfc6376/);
    * SPF, [RFC-7208](https://datatracker.ietf.org/doc/html/rfc7208).

Реализация работы TXT-записей в Yandex Cloud DNS имеет следующие особенности и ограничения:

* Сервис использует формат [MASTER FILES](https://www.ietf.org/rfc/rfc1035.html#section-5). Согласно спецификации этого формата, с символа `;` начинается комментарий, т. е. все содержимое после него игнорируется. Если вы хотите использовать символ `;` в значении TXT-записи, заключите содержащую его строку в двойные кавычки `""`.

* Сервис поддерживает одну TXT-запись.

* Значение TXT-записи должно быть не более 1024 знаков.

* TXT-запись может хранить несколько значений. При необходимости заключите каждое значение в двойные кавычки `""`.

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

    Например, введена строка:

    ```text
    Long string "string with spaces in quotes" #1 and_without_spaces
    ```

    При сохранении эта строка не изменится, но будет обработана как 5 строк:

    ```text
    "Long"
    "string"
    "string with spaces in quotes"
    "#1"
    "and_without_spaces"
    ```

    Если необходимо сохранить пробелы, заключите всю строку в двойные кавычки `""`.

| Имя                              | Тип | TTL  | Значение                                                                           |
|----------------------------------|-----|------|------------------------------------------------------------------------------------|
| example.com.                     | TXT | 600  | "v=DMARC1; p=none; sp=quarantine; pct=100; rua=mailto: dmarcreports@example.com;"  |
| big-email._domainkey.example.com | TXT | 6000 | "v=DKIM1; p=76E629F05F70 9EF665853333 EEC3F5ADE69A 2362BECE4065 8267AB2FC3CB 6CBE" |
| example.com.                     | TXT | 6000 | "v=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.email -all"              |

Подробнее о TXT-записях в [RFC-1035](https://www.ietf.org/rfc/rfc1035.html#section-3.3.14) и [RFC-1464](https://tools.ietf.org/html/rfc1464).


## Сервисные записи {#service-records}

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

* Yandex API Gateway — [запись ANAME](#aname) необходима для [привязки](../../api-gateway/operations/api-gw-domains.md) домена к API-шлюзу и помечена значком ![logo](../../_assets/api-gateway/api-gateway-logo.svg)
* Yandex Certificate Manager — [запись CNAME](#cname) необходима для прохождения [проверки прав на домен](../../certificate-manager/concepts/challenges.md) и помечена значком ![logo](../../_assets/certificate-manager/certificate-manager-logo.svg)
* Yandex Object Storage — [запись ANAME](#aname) необходима для [привязки](../../storage/operations/hosting/own-domain.md) домена к бакету и помечена значком ![logo](../../_assets/storage/storage-logo.svg)

Сервисные записи нельзя изменять, а удалять можно только по одной. После удаления ресурса, для которого создавалась сервисная ресурсная запись, эту ресурсную запись необходимо [удалить](../operations/resource-record-delete.md) вручную.


## Примеры использования {#examples}

* [Перенесите записи](../tutorials/connect-migration.md#yaconnect-records-move)
* [Создайте ресурсную запись типа A](../tutorials/bind-domain-vm/console.md#create-record)
* [Публикация обновлений для игр с помощью Yandex Cloud CDN](../tutorials/prefetch.md)
* [Настройте DNS для сайта](../tutorials/tls-termination/console.md#configure-dns)