Настройка трансфера зоны
Трансфер зоны (AXFR/IXFR) — это стандартный механизм DNS, который позволяет автоматически копировать содержимое основной (primary) зоны с серверов Servicepipe на один или несколько ваших резервных (secondary) DNS-серверов. Это обеспечивает отказоустойчивость и распределение нагрузки.
| Прежде чем настраивать трансфер зоны, убедитесь, что основная зона создана в панели управления Servicepipe. |
| Для работы с API Servicepipe необходимо авторизоваться. |
Принцип работы
Настройка трансфера в Servicepipe состоит из двух этапов:
-
Создание Списка контроля доступа (ACL): Сначала вы создаете именованный список IP-адресов или подсетей ваших резервных DNS-серверов. Эти списки централизованы и могут быть переиспользованы для нескольких DNS-зон.
-
Применение ACL к зоне: Затем вы "привязываете" созданный ACL к конкретной основной зоне. Это действие не только разрешает трансфер зоны, но и автоматически настраивает отправку DNS NOTIFY уведомлений с серверов Servicepipe на адреса из списка.
|
DNS NOTIFY уведомления приходят только на IP-адреса и не приходят на подсети. То есть, если вы указали в ACL "192.0.2.10, 198.51.100.25, 203.0.113.0/24", то при изменении основной зоны:
Рекомендуем указать хотя бы один IP-адрес, чтобы при изменении зоны хотя бы один сервер сразу обновлял настройки. |
Управление списками контроля доступа (ACL)
Управление через панель управления
Вы можете управлять списками ACL на вкладке Списки контроля доступа в разделе DNS → Основные зоны.
-
Создание: Нажмите
+ Создать список контроля доступа, задайте имя и укажите через запятую IP-адреса или подсети ваших резервных серверов.Максимум можно указать 10 объектов: например, 2 подсети и 8 IP-адресов. По запросу можем увеличить максимальное количество до 100 – напишите нам на support@servicepipe.ru.
-
Редактирование и удаление: В меню
…для каждого списка доступны действия "Редактировать" и "Удалить".
| Удаление ACL невозможно, если он связан хотя бы с одной DNS-зоной. |
Управление через API
Вы также можете создавать и управлять списками ACL с помощью API.
Создание ACL
Метод: POST
Тело запроса (application/json):
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
|
Да |
string |
Имя создаваемого списка |
|
Да |
array of strings |
Массив IP-адресов или подсетей |
|
Да |
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-адреса, не на целые подсети).
Применение через панель управления
-
Перейдите на вкладку Зоны.
-
В меню
…для нужной зоны выберите пунктНастроить трансфер зоны.
-
В открывшемся окне выберите ранее созданный ACL и нажмите
Сохранить.
Применение и отвязка через API
Применение ACL (разрешение трансфера)
Метод: POST
Параметры URL:
| Параметр | Обязательный | Описание |
|---|---|---|
|
Да |
Идентификатор DNS-зоны |
Тело запроса (application/json):
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
|
Да |
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-сервера:
-
Создайте зону с тем же именем, что и основная зона в Servicepipe.
-
В качестве серверов основного 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