POST /api/v1/dns/zone/{zoneName}/delegation — создать делегирование DNS-зоны
Создает одну или несколько NS-записей в родительской зоне, делегирующих управление подзоной (name.parentZone) одному или нескольким авторитативным DNS-серверам. Операция атомарна: если любая часть (NS или glue) завершается ошибкой, все созданные записи откатываются.
Согласно RFC 1034/1035, данная операция создает только NS-запись или записи в родительской зоне. Дочерняя зона не создается автоматически — она должна быть управляема отдельно на сервере, указанном в поле nsServer, или серверах, указанных в поле nameservers.
Запрос
Устаревший формат (один NS-сервер, без glue-записей)
curl -k --negotiate -u : -X POST \
"https://<server>:<port>/api/v1/dns/zone/example.com/delegation?partition=domain" \
-H "Content-Type: application/json" \
-d '{
"name": "sub",
"nsServer": "ns1.sub.example.com",
"ttl": 3600
}'
Новый формат (несколько NS-серверов, с glue-записями)
curl -k --negotiate -u : -X POST \
"https://<server>:<port>/api/v1/dns/zone/example.com/delegation?partition=domain" \
-H "Content-Type: application/json" \
-d '{
"name": "sub",
"ttl": 3600,
"nameservers": [
{
"server": "ns1.sub.example.com",
"addresses": ["10.1.1.1", "2001:db8::1"]
},
{
"server": "ns2.sub.example.com",
"addresses": ["10.1.1.2"]
},
{
"server": "ns1.external.com"
}
]
}'
Параметры запроса
| Параметр | Тип | Обязательный | Описание и значения |
|---|---|---|---|
|
string |
✅ |
Имя родительской зоны (FQDN) |
|
string |
– |
Партиция, в которой находится зона: |
|
string |
– |
Имя пользовательской партиции (обязательно при |
Поля тела запроса
| Поле | Тип | Обязательное | Описание и значения |
|---|---|---|---|
|
string |
✅ |
Имя дочерней зоны (без родительского домена). Например: |
|
uint32 |
– |
Время жизни NS-записей в родительской зоне. Диапазон: 1–86400 секунд. По умолчанию: |
|
string |
✅ |
Устаревший формат: FQDN одного авторитативного DNS-сервера. Не совместим с |
|
array |
⚠️ |
Новый формат: массив объектов с описанием серверов. Обязательно, если
|
Glue-записи при делегировании
Для NS-серверов, имя которых находится внутри делегируемой зоны, в родительской зоне автоматически создаются glue-записи типов A и AAAA. Они позволяют разрешать адрес сервера имен без циклической зависимости от самой делегируемой зоны. Если NS-сервер находится вне делегируемой зоны, glue-записи не создаются.
Перед созданием делегирования сервер проверяет с помощью SOA-запроса, что указанный NS действительно является авторитативным для зоны.
Повторяющиеся IP-адреса после нормализации автоматически удаляются.
Создание делегирования выполняется атомарно: если на любом этапе возникает ошибка, все записи, созданные в рамках операции, откатываются.
Ответ "201 Created"
Устаревший формат (один NS-сервер, без glue-записей)
{
"name": "sub",
"nameUnicode": "sub",
"nsServer": "ns1.sub.example.com",
"nsServerUnicode": "ns1.sub.example.com",
"ttl": 3600
}
Новый формат (несколько NS-серверов, с glue-записями)
{
"name": "sub",
"nameUnicode": "sub",
"ttl": 3600,
"nameservers": [
{
"server": "ns1.sub.example.com",
"serverUnicode": "ns1.sub.example.com",
"inDomain": true,
"glueRecords": [
{
"name": "ns1.sub.example.com",
"type": "A",
"ip": "10.1.1.1"
},
{
"name": "ns1.sub.example.com",
"type": "AAAA",
"ip": "2001:db8::1"
}
],
"warnings": []
},
{
"server": "ns2.sub.example.com",
"serverUnicode": "ns2.sub.example.com",
"inDomain": true,
"glueRecords": [
{
"name": "ns2.sub.example.com",
"type": "A",
"ip": "10.1.1.2"
}
],
"warnings": []
},
{
"server": "ns1.external.com",
"serverUnicode": "ns1.external.com",
"inDomain": false,
"glueRecords": [],
"verified": true,
"warnings": []
}
]
}
Ошибки
| Код | Причина |
|---|---|
|
Некорректное имя зоны (пустое, содержит точки), отсутствует обязательное поле, TTL вне диапазона, внешний NS имеет адреса, IP-адрес в |
|
Отсутствует или невалиден билет Kerberos (SPNEGO) |
|
Родительская зона не найдена в указанной партиции |
|
Делегирование для указанной подзоны уже существует |
|
Внутренняя ошибка сервера при создании записи |
Обновлено: