POST /api/v1/dns/zone — создать DNS-зону

Создает новую DNS-зону в стандартной или указанной партиции.

Запрос

curl -k --negotiate -u : -X POST \
  "https://<server>:<port>/api/v1/dns/zone" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "example.com",
    "type": "ds-primary",
    "reverse": false,
    "directoryPartition": "domain",
    "customPartitionName": "",
    "customPartitionDN": "",
    "dynamicUpdate": "Secure",
    "defaultTtl": 3600,
    "masterIP": [],
    "nsHostname": "ns1.example.com",
    "responsibleParty": "hostmaster.example.com"
  }'

Поля тела запроса

Поле Тип Обязательное Описание и значения

name

string

✅

Имя зоны (автоматически нормализуется в ASCII)

type

string

–

Тип зоны: ds-primary (по умолчанию), primary, secondary, stub, ds-stub, forward, ds-forward

reverse

bool

–

true — зона обратного просмотра (требует .in-addr.arpa / .ip6.arpa)

directoryPartition

string

–

Партиция для размещения зоны: domain (по умолчанию), forest, legacy, custom

customPartitionName

string

⚠️

Имя пользовательской партиции. Обязательно, если directoryPartition=custom

customPartitionDN

string

⚠️

DN пользовательской партиции. Альтернатива customPartitionName

dynamicUpdate

string

–

Режим динамического обновления: None, Secure (по умолчанию), NonSecureAndSecure

defaultTtl

uint32

–

Значение SOA Minimum TTL в секундах (по умолчанию: 3600)

masterIP

array

⚠️

Обязательно для secondary, stub, ds-stub, forward, ds-forward

nsHostname

string

–

FQDN авторитативного DNS-сервера

responsibleParty

string

–

Контактная информация для SOA в формате файла зоны

Примеры запросов

Создание DNS-зоны в стандартной партиции:

curl -k --negotiate -u : -X POST \
  "https://api-host.example.com:9443/api/v1/dns/zone" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "example.com",
    "type": "ds-primary",
    "directoryPartition": "domain",
    "dynamicUpdate": "Secure"
  }'

Создание DNS-зоны в пользовательской партиции по имени:

curl -k --negotiate -u : -X POST \
  "https://api-host.example.com:9443/api/v1/dns/zone" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "apps.example.com",
    "type": "ds-primary",
    "directoryPartition": "custom",
    "customPartitionName": "MyAppPartition"
  }'

Создание DNS-зоны в пользовательской партиции по DN:

curl -k --negotiate -u : -X POST \
  "https://api-host.example.com:9443/api/v1/dns/zone" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "apps.example.com",
    "type": "ds-primary",
    "directoryPartition": "custom",
    "customPartitionDN": "DC=MyAppPartition,DC=example,DC=com"
  }'

Ответ "201 Created"

{
  "name": "example.com",
  "nameUnicode": "example.com",
  "partition": "domain",
  "type": "ds-primary",
  "zoneType": 1,
  "defaultTtl": 3600,
  "allowUpdate": 2,
  "noRefreshInterval": 168,
  "refreshInterval": 168,
  "agingEnabled": false,
  "masterIP": []
}

Ошибки

Код Причина

400

Некорректное имя зоны, неверный тип, неверный формат rdata, defaultTtl < 1, dynamicUpdate не из списка, masterIP не указан для требуемого типа или partition=custom без partitionName

401

Отсутствует или невалиден билет Kerberos

409

Зона уже существует в целевой партиции

422

Партиция недоступна

500

Внутренняя ошибка сервера при создании зоны

501

Тип зоны не реализован (например, primary file-based)

Обновлено: