Новые возможности для сценария синхронизации DNS

Привет!
Сорри за задержку с постами: я переезжал из Москвы на Кипр, где теперь живу и работаю.
Я всё ещё заканчиваю следующую часть саги о разворачивании инфраструктуры из командной строки, но тут, для выполнения рабочих задач, мне потребовалось добавить новую функциональность в мой сценарий синхронизации DNS-зон и я не могу вами ими не поделиться:

  1. Появились режимы запросов к NS. Пока их всего два:
    • «1» — Скрипт попытается найти авторитативные nameserver’ы для зоны и дальше, для разрешения имён из неё, будет использовать именно их.
    • «0» — Скрипт будет использовать nameserver, указанный в конфигурационном файле, как обычно.

    Выбранный режим для каждой зоны, записывайте в конфигурационном файле в колонке «Mode». Вместо нуля, кстати, можно ничего не писать.

  2. Из-за необходимости использовать авторитативные DNS-серверы, скрипт обзавёлся ещё одной функцией: теперь можно указывать в конфиге не только IP-адреса, но и DNS-имена. Так что, колонки «IntIP» и «ExtIP» теперь называются «IntNS» и «ExtNS».
  3. Ну и ещё, т.к. это было довольно просто сделать: вы можете оставить колонку ExtNS пустой — тогда для этой зоны сценарий будет использовать DNS-серверы, используемые операционной системой.

Вот таблица, как все эти новые функции работают вместе:

Режим Тип ExtNS Результат
0 IP-адрес Имена в зоне разрешаются через NS на IP-адресе ExtNS.
1 IP-адрес IP-адрес ExtNS используется для того, чтобы найти авторитативные NS для зоны.
Далее, первый авторитативный nameserver из списка используется для разрешения имён в зоне.
0 DNS-имя DNS-серверы операционной системы используются для разрешения имени ExtNS в IP-адрес.
Далее, этот IP-адрес используется для разрешения имён в зоне.
1 DNS-имя DNS-серверы операционной системы используются для разрешения имени ExtNS в IP-адрес.
Далее, этот IP-адрес используется для того, чтобы найти авторитативные NS для зоны.
Далее, первый авторитативный nameserver из списка используется для разрешения имён в зоне.
0 Empty
1 Empty DNS-серверы операционной системы используются для того, чтобы найти авторитативные NS для зоны.
Далее, первый авторитативный nameserver из списка используется для разрешения имён в зоне.

Обратите внимание, что режим запроса влияет только на ExtNS, но не на внутренний сервер. Вот таблица состояний для «IntNS»:

Тип IntNS Результат
IP-адрес Запросы отправляются на этот IP-алрес, как обычно.
DNS-имя DNS-серверы операционной системы используются для разрешения имени IntNS в IP-адрес.
Далее, все запросы отправляются на этот IP-адрес.
Empty Возникает ошибка. Event ID 52.

Как обычно, забирайте последнюю версию с GitHub`а!