Импорт файла зоны

После создания основной зоны в панели управления вы можете добавить записи вручную или импортировать готовый файл зоны со всеми необходимыми записями.

Особенности импорта

Следующие условия и особенности являются общими для всех способов импорта:

  • Формат и размер файла: Файл для импорта должен быть в формате BIND. Поддерживаемые расширения: .txt, .bind. Максимальный размер файла: 1 Мб.

  • Лимиты аккаунта: Перед импортом система проверяет лимиты вашего аккаунта на количество записей. Если после импорта общее количество записей превысит заданный лимит, система не будет импортировать файл и завершит процедуру ошибкой. Для расширения лимита обратитесь в техническую поддержку или к вашему менеджеру.

  • Обработка SOA-записи:

    При импорте файла зоны SOA-запись обрабатывается. Servicepipe импортирует все поля из вашей SOA-записи, но заменяет исходный serial на собственное значение. Это стандартная практика, необходимая для корректного версионирования зоны на стороне Servicepipe.

    Если вы попытаетесь повторно импортировать SOA-запись, которая не содержит новых данных (помимо serial), система вернет ошибку с причиной "Nothing to update: operation aborted".

    {
      "dnsRecord": {
        "name": "servicepipe.ru.",
        "rtype": "SOA",
        "ttl": 600,
        "data": "ns1.servicepipe.ru. example.mail.ru. 123 1440 3600 2592000 600"
      },
      "reason": "Nothing to update: operation aborted"
    }
    В массиве с ошибками отображается оригинальное значение SOA-записи из вашего файла (включая serial), а в массиве успешных операций — значение, сохраненное на стороне Servicepipe, уже с новым serial.
  • Поддерживаемые типы записей: Система добавляет только поддерживаемые типы записей и пропускает другие типы, не фиксируя это как ошибку.

  • Исключение дубликатов: Система не добавляет записи с полным совпадением имени, типа и значения уже существующих записей, чтобы не создавать дубликаты.

Способы импорта

Импортировать файл зоны можно двумя способами: через интерфейс панели управления или напрямую через API.

Импорт через интерфейс панели управления

  1. Перейдите к управлению записями.

    В панели управления Servicepipe выберите раздел DNS → Основные зоны в боковом меню.

    Выбор раздела Основные зоны

    На вкладке Основные зоны выберите нужную зону, нажмите на иконку с тремя точками (…​) и выберите пункт меню Редактировать записи.

    Переход к редактированию записей
  2. Загрузите файл зоны.

    На открывшейся странице управления записями нажмите на кнопку импорта файла зоны:

    Кнопка Импорта файла зоны

    В диалоговом окне вашего компьютера выберите файл для загрузки:

    Выбор файла для импорта

    После выбора файла начнется его сканирование и добавление записей. Дождитесь завершения процедуры.

    Процесс загрузки и анализа файла
    После завершения импорта система отобразит статус процедуры. Если во время импорта не удалось добавить определённые записи, вы увидите сообщение с деталями.

Импорт через API

Вы можете автоматизировать процесс импорта записей, используя API Servicepipe.

Шаг 1. Авторизация в API

Для доступа к API Servicepipe вам необходим API-токен. Подробнее о типах токенов и их получении читайте в статье Управление API-ключами.

Шаг 2. Выполнение запроса на импорт

Отправьте POST-запрос с файлом зоны, закодированным в base64.

Метод: POST

URL:

https://api.servicepipe.ru/api/v1/dns/resource/primary/{id}/records/import

Параметры URL: {id} (обязательный):: Идентификатор вашей DNS-зоны (ресурса).

Заголовки: Authorization (обязательный):: Bearer {ваш_api_токен} Content-Type:: application/json

Тело запроса: Тело запроса должно содержать JSON-объект с одним ключом attachment. Значением для этого ключа является содержимое вашего файла зоны, предварительно закодированное в формат base64 и переданное в виде строки.

Пример тела запроса:

{
  "attachment": "ZXhhbXBsZS5ydS4gICAgICAgICAgIDM2MDAgICAgIElOIFNPQSAgbnMxLmV4YW1wbGUucnUuIGV4YW1wbGUucnUuIDQgODY0MDAgOTAwIDY5MTIwMCAzNjAwCmV4YW1wbGUucnUuICAgICAgICAgICAzNjAwICAgICBJTiBBICAgICAgIDEuMS4xLjEKZXhhbXBsZS5ydS4gICAgICAgICAgIDM2MDAgICAgIElOIE5TICAgIG5zMS5leGFtcGxlLnJ1LgpleGFtcGxlLnJ1LiAgICAgICAgICAgMzYwMCAgICAgSU4gTlMgICAgbnMyLmV4YW1wbGUucnUu"
}

Шаг 3. Обработка ответа

При успешном выполнении запроса сервер вернет статус 201 Created и JSON-объект с результатами импорта.

Структура успешного ответа (201): importedDnsRecords:: Массив объектов, содержащий список успешно импортированных DNS-записей. failedRecords:: Массив объектов, содержащий список записей, которые не удалось импортировать, и причину сбоя для каждой из них.

Пример ответа:

{
  "importedDnsRecords": [
    {
      "data": "192.168.1.1",
      "name": "example.com",
      "rtype": "A",
      "ttl": 3600
    }
  ],
  "failedRecords": [
    {
      "dnsRecord": {
        "data": "192.168.1.1",
        "name": "example.com",
        "rtype": "A",
        "ttl": 3600
      },
      "reason": "The DNS record with the same parameters already exists in the system"
    }
  ]
}

В случае ошибки в запросе (например, неверный формат данных) сервер вернет статус 400 Bad Request.

Важные проверки после импорта

После успешного завершения импорта мы настоятельно рекомендуем выполнить следующие проверки, чтобы убедиться в корректности конфигурации вашей зоны:

  • Проверьте SOA-запись. Убедитесь, что в качестве основного сервера (mname) в вашей SOA-записи указан ns1.servicepipe.ru. Это гарантирует корректную работу зоны в нашей инфраструктуре.

  • Проверьте NS-записи. В файле зоны должны остаться только NS-записи тех серверов, которые реально обслуживают ваш домен. Удалите записи всех старых или неиспользуемых DNS-провайдеров. В зоне должны присутствовать как минимум наши серверы (ns1.servicepipe.ru, ns2.servicepipe.ru), а также серверы ваших резервных DNS-провайдеров, если вы их используете.