Импорт файла зоны
Как импортировать ваш файл зоны с готовыми DNS-записями через UI или API.
| У вас уже должна быть создана основная зона — в неё будут добавлены записи при импорте. Также записи можно добавить вручную. |
1. Прочитайте об особенностях импорта.
Ограничения
Импортируются только записи A, AAAA, CAA, CNAME, MX, NS, SRV, SOA и TXT. Все остальные будут проигнорированы.
Дубликаты тоже игнорируются. Дубликатом считается запись, у которой совпадают тип и значение с уже существующей.
Перед импортом система проверяет, позволяет ли ваш лимит аккаунта на число записей добавить все выбранные записи. Если лимита не хватает, система выдаст ошибку и импорт не начнётся.
| Чтобы увеличить лимит аккаунта на число записей, напишите в техподдержку support@servicepipe.ru. |
Как будут добавлены записи
Наборы записей
В нашей системе записи одного типа, которые относятся к одному и тому же домену/поддомену (пример: несколько A-записей для домена example.com), автоматически объединяются в набор. Если нужный набор уже есть, импортированные записи добавятся к нему. Если нет — автоматически создастся новый. Подробнее о наборах записей.
TTL
У набора записей обновится TTL, если при импорте туда добавится хотя бы одна запись. Новое значение будет равно самому маленькому TTL среди импортируемых записей.
Пример: у набора уже стоял TTL 60. Вы импортировали в набор три записи со значениями TTL 300, 3600 и 86400. Новый TTL набора — 300.
Балансировка
Если при импорте запись добавится в набор, у которого была включена расширенная балансировка, то для записи автоматически будет назначено стандартное значение:
-
Для балансировки по весам:
Вес:1 -
Для балансировки по географии:
Страна:*
SOA-запись, поле serial
Все поля SOA-записи будут импортированы как есть, кроме serial — его значение увеличится автоматически на число изменений с записями зоны, сделанных в ходе импорта.
Что будет, если импортировать SOA-запись, которая отличается от текущей только значением serial?
Система вернёт ошибку с причиной "Nothing to update: operation aborted".
2. Импортируйте файл.
Можно двумя способами: через интерфейс панели управления или через API.
Через UI
-
Откройте
DNS-хостинг→Основные зоны.
-
Выберите нужную зону и нажмите напротив неё
…→Посмотреть записи.
-
Нажите кнопку со стрелкой, указывающей вниз; она находится справа от кнопки
+ Создать набор записей.
-
Нажмите
Загрузить файли загрузите файл со своего компьютера.
-
Нажмите
Импортировать записи.
Поздравляем, вы импортировали записи!
Через API
Отправьте POST-запрос с файлом зоны в формате multipart/form-data.
| Для доступа к API вам нужен API-токен. Чтобы получить его, воспользуйтесь инструкцией из статьи Управление API-ключами. |
Запрос
Метод
POST /api/v1/dns/resource/primary/{id}/rrsets/import
Параметры URL
| Параметр | Описание |
|---|---|
|
Идентификатор вашей DNS-зоны |
Заголовки
| Заголовок | Значение |
|---|---|
Authorization |
|
Content-Type |
|
Тело запроса
Передайте файл зоны (размер файла до 1МБ, формат BIND) в поле attachment через multipart/form-data:
--form 'attachment=@"/path/to/file"'
Пример запроса
curl --request POST
--url 'https://api.servicepipe.ru/api/v1/dns/resource/primary/{id}/rrsets/import'
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUzLCJ0eXBlIjoiUEFSVE5FUl9DTElFTlRfQUNDT1VOVF9FTVBMT1lFRSIsInJvbGUiOiJBRE1JTiIsInBhcnRuZXJDbGllbnRBY2NvdW50SWQiOjYzLCJpYXQiOjE2OTQ0MjAwOTIsImV4cCI6MTY5NDUwNjQ5Mn0.wKpNn_HjAFAvkZcRY4EwYqyHaQ7Q1spIRtTOBOppbuQ'
--header 'Content-Type: multipart/form-data'
--form 'attachment=@"/Users/Alex/Documents/DNS_records.txt"'
Ответ
При успехе сервер вернёт статус 200 и JSON-объект с результатами импорта. Структура успешного ответа:
-
importedDnsRecordSets— массив объектов, содержащий список импортированных наборов DNS-записей -
failedRecordSets— массив объектов, содержащий наборы записей, которые не удалось импортировать, и описание ошибки
Пример ответа:
{
"importedDnsRecordSets": [
{
"name": "example.com.",
"rtype": "A",
"ttl": 3600,
"mode": "OFF",
"records": [
{
"data": "192.168.1.1",
"keys": []
}
]
}
],
"failedRecordSets": [
{
"dnsRecordSet": {
"name": "example.com.",
"rtype": "A",
"ttl": 3600,
"mode": "OFF",
"records": [
{
"data": "192.168.1.1",
"keys": []
}
]
},
"reason": "No changes for record set"
}
]
}
В случае ошибки сервер вернёт один из статусов:
-
400 Bad Request -
401 Unauthorized -
404 Error: Not Found -
422 The zone file cannot be imported: the record limit is reached
Пример ошибки:
{
"statusCode": 400,
"message": "Bad Request Exception"
}
3. Сделайте проверку.
-
Проверьте, что все важные записи добавились с нужными значениями и TTL. Если включена расширенная балансировка, проверьте и переназначьте значения балансировки (если необходимо).
-
Проверьте SOA-запись: убедитесь, что в качестве основного сервера (
mname) SOA-записи указан сервер, на котором хранится эталон вашей зоны. В большинстве случаев этоns1.servicepipe.ru -
Проверьте NS-записи: в файле зоны должны остаться только NS-записи серверов, которые действительно обслуживают ваш домен. Удалите записи всех старых или неиспользуемых DNS-провайдеров. В зоне должны присутствовать как минимум наши серверы (
ns1.servicepipe.ru,ns2.servicepipe.ru), а также серверы ваших резервных DNS-провайдеров, если вы их используете.
Если возникнут вопросы или проблемы, напишите нам на support@servicepipe.ru — с радостью проконсультируем и поможем всё настроить.