← Cloudflare DNS / dns / manage-dns-records / how-to
Импорт и экспорт записей
Используйте импорт и экспорт, чтобы получить больше контроля над записями DNS и упростить такие процессы, как перенос домена или массовое редактирование комментарии к записи проще.
Импорт записей
Лимиты
-
Ограничение размера файла зоны составляет 256 KiB (262144 байт).
- Ограничение частоты запросов к API составляет три запроса в минуту на пользователя.
Отформатируйте файл зоны
Создайте Файл зоны BIND ↗ для вашего домена. Если вам нужна помощь, используйте сторонний инструмент ↗.
Если вы используете определённые типы записей, например CNAME, DNAME, MX, NS, PTR, или SRV записи, убедитесь, что содержимое из этих записей содержит полное доменное имя (FQDN), оканчивающееся точкой в конце (как в example.com.). Подробнее см. в RFC 1035 ↗ или этот публикация на Stack Exchange ↗.
Импорт файла зоны в Cloudflare
Чтобы импортировать файл зоны в панели управления:
-
На панели управления Cloudflare перейдите к разделу DNS-записи страницу.
Перейдите в Записи ↗ -
Выберите Импорт и экспорт.
-
Для Импорт записей DNS, выберите свой отформатированный файл.
-
Если вы не хотите применимые записи проксируется, снимите отметку с Проксирование импортированных DNS-записей.
Чтобы импортировать записи с помощью API, отправьте Запрос POST с правильно отформатированный файл.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:DNS Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/import" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--form "file=@your_formatted_file.txt"Экспорт записей
Вы также можете выполнить массовый экспорт записей из Cloudflare.
Чтобы экспортировать записи в панели управления:
-
На панели управления Cloudflare перейдите к разделу DNS-записи страницу.
Перейдите в Записи ↗ -
Выберите Импорт и экспорт.
-
Выберите Экспорт.
Чтобы экспортировать записи с помощью API, отправьте GET-запрос.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:DNS ReadDNS Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/export" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Атрибуты DNS-записи
При экспорте или импорте файла зоны Cloudflare форматирует комментарии и теги с использованием следующей структуры, добавляя атрибуты в виде встроенного комментария с помощью ; символ после каждой записи в соответствии с RFC 1035, раздел 5 ↗:
| Комбинация | Описание |
|---|---|
| Только теги | Имена тегов содержат небольшой набор символов. Кроме того, значения тегов должны быть заключены в двойные кавычки ( ") если они содержат ", =, ,, или \. Если заключено в двойные кавычки ("), значения тегов представлены в виде строк JSON, поэтому другие кавычки внутри значения можно экранировать как \".Тег с пустым значением можно представить либо как my-tag-name:"", my-tag-name:, или my-tag-name. |
| Только комментарий | Комментарии имеют меньше ограничений на символы, то есть комментарий включается дословно. Если комментарий содержит строку cf_tags=, вам нужно добавить дополнительный cf_tags= в конце строки. |
| Комментарий и теги | Комментарий в файле зоны будет иметь вид ; <comment> cf_tags=<tags>, как описано выше. Обратите внимание на добавленный пробел перед cf_tags=. |
| Ни один из атрибутов | Комментарий в файле зоны может быть пустым или отсутствовать вовсе. Комментарии в файле зоны, которые не идут сразу после записи, также игнорируются. |
; Only tags
a.example.com. 60 IN A 1.1.1.1 ; cf_tags=awesome
b.example.com. 60 IN A 1.1.1.1 ; cf_tags=tag1,tag2:value2,tag3:"value,with,commas",tag4:"value with \"escaped\" quotation marks"
; Only a comment
c.example.com. 60 IN A 1.1.1.1 ; just a comment without tags
d.example.com. 60 IN A 1.1.1.1 ; this comment contains cf_tags= as text cf_tags=
; Comments and tags
e.example.com. 60 IN A 1.1.1.1 ; simple example cf_tags=important,ticket:THIS-12345
f.example.com. 60 IN A 1.1.1.1 ; this is the comment cf_tags=tag1:value1,tag2:value2,tag-without-value,another-tag-without-value,tag-with-quoted-value:"because of the comma, quotes are needed"
; Neither attribute
g.example.com. 60 IN A 1.1.1.1Зарезервированные теги cf-
При экспорте и импорте специальные теги, начинающиеся с cf- позволяют управлять определёнными настройками Cloudflare. При экспорте эти теги добавляются автоматически, чтобы отразить текущую конфигурацию для каждой записи в вашей зоне.
;; CNAME Records
a.cloudflaredocs.com. 1 IN CNAME example.com. ; cf_tags=test:1,cf-flatten-cname
b.cloudflaredocs.com. 1 IN CNAME example.com. ; cf_tags=cf-proxied:false
c.cloudflaredocs.com. 1 IN CNAME example.com. ; cf_tags=tag-without-value,cf-proxied:truecf-proxied
При экспорте, проксируемые DNS-записи будет отображать тег cf-proxied:true тогда как у записей DNS-only этот тег будет установлен на cf-proxied:false.
При импорте файлов зоны значение в поле cf-proxied тег будет иметь приоритет при определении того, должна ли запись проксироваться. Это означает, что:
- Если тег присутствует, его значение будет учитываться для соответствующей записи независимо от Проксирование импортированных DNS-записей опции (через дашборд) или
proxiedпараметр обычно имеет значениеtrueилиfalse(через API). - Если тег отсутствует, статус проксирования будет определяться общим параметром импорта, то есть Проксирование импортированных DNS-записей выбрана она в панели управления или нет, либо
proxiedпараметр со значениемtrueилиfalse(через API).
cf-flatten-cname
Если у вас платная зона и вы хотите использовать Выравнивание CNAME для отдельных записей, используйте тег cf-flatten-cname рядом с каждой CNAME-записью с применением CNAME flattening в файле зоны. При экспорте этот тег добавляется автоматически и отражает конфигурацию записи, заданную в вашей зоне.
Директивы файла DNS-зоны
Файл DNS-зоны может быть построен с использованием директив в дополнение к ресурсным записям (RR). Директивы начинаются с $ и являются стандартизированными: $ORIGIN и $INCLUDE определены в RFC 1035 ↗, а также $TTL определён в RFC 2308 ↗. Кроме того, BIND предоставляет нестандартный ↗ $GENERATE директива.
Cloudflare поддерживает $ORIGIN, $TTL, а также $GENERATE директивы.
$INCLUDE не поддерживается. Если файл зоны содержит $INCLUDE директиве Cloudflare отвечает ошибкой разбора $INCLUDE directive not allowed.