Автоматическое определение DNS-зоны

Клиент elles-dns-cli автоматически извлекает имя DNS-зоны из FQDN узла, если параметр --zonename не указан. Это упрощает выполнение типовых операций и снижает вероятность ошибок при вводе имени зоны вручную.

Принцип работы автоопределения

Клиент извлекает имя зоны путем удаления первой метки (label) из FQDN узла.

Пример команды без явного указания зоны:

dnscli RecordAdd --name www.example.com --type A --data "192.168.1.10"

В примере зона определяется как example.com, а узел — www.

Когда требуется явно указывать --zonename

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

Имя узла Правильный вызов

Имя с подчеркиваниями (SRV, TXT)

dnscli RecordAdd --name _ldap._tcp.example.com --zonename example.com --type SRV --data "0 100 389 dc1.example.com."

Многоуровневый узел (a.b.c.example.com)

dnscli RecordAdd --name a.b.c.example.com --zonename example.com --type A --data 10.0.0.1

Обратная зона (in-addr.arpa)

dnscli RecordAddPTR --name 10.1.1.10.in-addr.arpa --zonename 1.1.10.in-addr.arpa --data www.example.com.

Узел в пользовательской (custom) партиции с нестандартным именем

dnscli RecordAdd --name apps.example.com --zonename f1.dom --type A --data 10.0.0.1

Если значение --zonename не указано, а имя узла не соответствует шаблону host.domain.tld, команда завершится ошибкой:

error: zone name could not be auto-detected from --name, use --zonename

Особенности и ограничения

При указании имени зоны учитывайте:

  • флаг --zonename обязателен в команде RecordBulk, так как автоопределение в пакетном режиме не поддерживается;

  • все имена зон и узлов нормализуются в ASCII и регистронезависимы;

  • для имен с подчеркиваниями (_) автоопределение отключено по умолчанию, так как они не являются стандартными FQDN-именами хостов;

  • команда NodeDelete использует тот же механизм автоопределения зоны, но требует --force для удаления и проверяет наличие зоны в единственной партиции.

Обновлено: