Настройка трансфера зоны

Трансфер зоны (AXFR/IXFR) — это стандартный механизм DNS, который позволяет автоматически копировать содержимое основной (primary) зоны с серверов Servicepipe на один или несколько ваших резервных (secondary) DNS-серверов. Это обеспечивает отказоустойчивость и распределение нагрузки.

Прежде чем настраивать трансфер зоны, убедитесь, что основная зона создана в панели управления Servicepipe.
Для работы с API Servicepipe необходимо авторизоваться.

Принцип работы

Настройка трансфера в Servicepipe состоит из двух этапов:

  1. Создание Списка контроля доступа (ACL): Сначала вы создаете именованный список IP-адресов или подсетей ваших резервных DNS-серверов. Эти списки централизованы и могут быть переиспользованы для нескольких DNS-зон.

  2. Применение ACL к зоне: Затем вы "привязываете" созданный ACL к конкретной основной зоне. Это действие не только разрешает трансфер зоны, но и автоматически настраивает отправку DNS NOTIFY уведомлений с серверов Servicepipe на адреса из списка.

DNS NOTIFY уведомления приходят только на IP-адреса и не приходят на подсети. То есть, если вы указали в ACL "192.0.2.10, 198.51.100.25, 203.0.113.0/24", то при изменении основной зоны:

  • 192.0.2.10 – получит DNS NOTIFY уведомление

  • 198.51.100.25 – получит DNS NOTIFY уведомление

  • 203.0.113.0/24 – не получат уведомления

Рекомендуем указать хотя бы один IP-адрес, чтобы при изменении зоны хотя бы один сервер сразу обновлял настройки.

Управление списками контроля доступа (ACL)

Управление через панель управления

Вы можете управлять списками ACL на вкладке Списки контроля доступа в разделе DNS → Основные зоны.

Вкладка "Списки контроля доступа"
  1. Создание: Нажмите + Создать список контроля доступа, задайте имя и укажите через запятую IP-адреса или подсети ваших резервных серверов.

    Максимум можно указать 10 объектов: например, 2 подсети и 8 IP-адресов. По запросу можем увеличить максимальное количество до 100 – напишите нам на support@servicepipe.ru.

  2. Редактирование и удаление: В меню …​ для каждого списка доступны действия "Редактировать" и "Удалить".

Удаление ACL невозможно, если он связан хотя бы с одной DNS-зоной.

Управление через API

Вы также можете создавать и управлять списками ACL с помощью API.

Создание ACL

Метод: POST

Тело запроса (application/json):

Параметр Обязательный Тип Описание

name

Да

string

Имя создаваемого списка

address

Да

array of strings

Массив IP-адресов или подсетей

partnerClientAccountId

Да

integer

Идентификатор вашего аккаунта

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

{
  "name": "Мои резервные серверы",
  "address": [
    "1.1.1.1",
    "2.2.2.0/24"
  ],
  "partnerClientAccountId": 1
}

Пример успешного ответа (201 Created):

{
  "id": 1,
  "name": "Мои резервные серверы",
  "knotId": "ba510b6f-34cf-421a-a416-f50109c44c89",
  "createdAt": "2024-11-16T09:35:53.700Z",
  "updatedAt": "2024-11-16T09:55:34.185Z",
  "deletedAt": null,
  "partnerClientAccountId": 1,
  "address": [
    "1.1.1.1",
    "2.2.2.0/24"
  ]
}

Применение ACL к основной зоне

После создания ACL его необходимо привязать к нужной зоне. Это действие разрешит трансфер зоны (AXFR/IXFR) и автоматически настроит отправку DNS NOTIFY уведомлений с DNS-серверов Servicepipe на IP-адреса, указанные в списке контроля доступа (напоминаем: DNS NOTIFY отправляются только на конкретные IP-адреса, не на целые подсети).

Применение через панель управления

  1. Перейдите на вкладку Зоны.

  2. В меню …​ для нужной зоны выберите пункт Настроить трансфер зоны.

    Меню действий для основной зоны
  3. В открывшемся окне выберите ранее созданный ACL и нажмите Сохранить.

    Выбор ACL для трансфера зоны

Применение и отвязка через API

Применение ACL (разрешение трансфера)

Метод: POST

Параметры URL:

Параметр Обязательный Описание

{id}

Да

Идентификатор DNS-зоны

Тело запроса (application/json):

Параметр Обязательный Тип Описание

aclId

Да

integer

Идентификатор списка ACL, который вы хотите применить

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

{
  "aclId": 1
}

Пример успешного ответа (201 Created):

{
  "id": 1,
  "createdAt": "2024-11-16T09:35:53.700Z",
  "updatedAt": "2024-11-16T09:55:34.185Z",
  "deletedAt": null,
  "zone": "test.com",
  "delegated": false,
  "partnerClientAccountId": 1,
  "transferAclId": 1,
  "acl": {
    "id": "ba510b6f-34cf-421a-a416-f50109c44c89",
    "address": [
      "1.1.1.1",
      "2.2.2.2"
    ]
  }
}

Отвязка ACL (запрет трансфера)

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

Метод

POST

URL

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

Параметры запроса

id — Идентификатор DNS-зоны

Заголовок

Bearer token

Настройка резервного DNS-сервера

На стороне вашего резервного DNS-сервера:

  1. Создайте зону с тем же именем, что и основная зона в Servicepipe.

  2. В качестве серверов основного DNS (master servers) укажите IP-адреса DNS-серверов Servicepipe: 185.66.85.67 и 212.67.27.6.

Проверка синхронизации

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

Значения serial должны быть идентичны на обоих серверах.

Для проверки значения serial используйте следующую команду:

# Проверка на основном сервере Servicepipe
dig @ns1.servicepipe.ru yourdomain.com SOA +short

# Проверка на вашем резервном сервере
dig @your.secondary.ns.com yourdomain.com SOA +short

Настройка регистратора домена

На стороне регистратора домена добавьте серверы имен резервного DNS к уже существующим серверам имен Servicepipe.