Вопрос или проблема
Я ищу решение для управления DNS. Желательные функции:
- добавление и удаление зон
- добавление, редактирование или удаление записей в зонах
- интуитивно понятный веб-интерфейс
- автоматическая проверка перед фиксацией
- ограничение прав пользователей на редактирование определённых зон
Технические требования:
- лицензия с открытым исходным кодом или бесплатная лицензия на программное обеспечение
- работа на Linux
- совместимость с BIND
- REST API
- предпочтительно написан на Perl, JavaScript или Python (без Java, Ruby или PHP)
Мои поиски не привели к чему-то актуальному по этой теме. Википедия содержит наиболее авторитетный список вариантов, но включает в себя “mysqlBind”, который, похоже, исчез, и другие варианты, которым уже более десяти лет.
На данный момент nictool кажется явным победителем, но ему не хватает REST API, и я не уверен, насколько активное у него сообщество. Есть ли более подходящий выбор на данный момент?
Недавно я наткнулся на AtomiaDNS, и он может быть стоящим внимания. Предоставляет все запрашиваемые функции. Также доступен API, даже если это не чистый REST API.
После многих лет поиска я наткнулся на DNSControl, который разработан известным Томом Лимончелли.
DNSControl — это система для поддержания DNS-зон. Она состоит из двух частей: языка, специфичного для предметной области (DSL) для описания DNS-зон, и программного обеспечения, которое обрабатывает DSL и отправляет полученные зоны провайдерам DNS, таким как Route53, Cloudflare и Gandi. Оно может отправлять одинаковые DNS-записи нескольким провайдерам. Она даже генерирует самые красивые файлы зон BIND. Работает везде, где работает Go (Linux, macOS, Windows). Модель провайдера расширяемая, поэтому можно добавлять больше провайдеров.
Список провайдеров, с которыми она связывается, впечатляющий. DNSControl не охватывает аспект веб-интерфейса, но иметь всё под контролем версий — это значительный прогресс для меня.
Ответ или решение
Открытое управление DNS: выбор лучшего решения
Решение для управления DNS важно для обеспечения стабильности и эффективности управления сетевыми ресурсами. В этом контексте ищется система для управления DNS, обладающая рядом функций и текущими техническими требованиями.
Функциональные требования:
- Добавление и удаление зон.
- Добавление, редактирование и удаление записей в зонах.
- Интуитивно понятный веб-интерфейс.
- Автоматическая проверка перед фиксацией изменений (lint).
- Ограничение прав пользователей на изменение определенных зон.
Технические требования:
- Открытый исходный код или лицензия на бесплатное программное обеспечение.
- Работа под управлением Linux.
- Совместимость с BIND.
- Наличие REST API.
- Предпочтительно написано на Perl, JavaScript или Python (не Java, Ruby или PHP).
Анализ рынка решений показал следующее:
-
NicTool: Это, кажется, один из сильнейших конкурентов, хотя и не предоставляет REST API. Об активности сообщества также отсутствуют четкие данные, что может быть риском.
-
AtomiaDNS: Это программное обеспечение предоставляет все запрашиваемые функции, включая API, хотя и не чистый REST API. AtomiaDNS стоит рассмотреть, особенно с учетом полного удовлетворения функциональных требований.
-
DNSControl: Это решение, разработанное Томом Лимончелли, обеспечивает мощное управление DNS с использованием DSL для описания зон. DNSControl поддерживает большое количество DNS-провайдеров и может работать на различных операционных системах, таких как Linux, MacOS и Windows. Основной недостаток — отсутствие веб-интерфейса, хотя наличие возможности контроля через исходный код является значительным плюсом.
Для выбора решения важно учитывать как функциональные, так и технические требования. AtomiaDNS представляется наиболее полным решением, соответствующим большинству требований, однако DNSControl может быть предпочтительным выбором для тех, кто ценит работу с исходным кодом и широкую поддержку DNS-провайдеров.