Управление DNS с открытым исходным кодом

Вопрос или проблема

Я ищу решение для управления 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).

Анализ рынка решений показал следующее:

  1. NicTool: Это, кажется, один из сильнейших конкурентов, хотя и не предоставляет REST API. Об активности сообщества также отсутствуют четкие данные, что может быть риском.

  2. AtomiaDNS: Это программное обеспечение предоставляет все запрашиваемые функции, включая API, хотя и не чистый REST API. AtomiaDNS стоит рассмотреть, особенно с учетом полного удовлетворения функциональных требований.

  3. DNSControl: Это решение, разработанное Томом Лимончелли, обеспечивает мощное управление DNS с использованием DSL для описания зон. DNSControl поддерживает большое количество DNS-провайдеров и может работать на различных операционных системах, таких как Linux, MacOS и Windows. Основной недостаток — отсутствие веб-интерфейса, хотя наличие возможности контроля через исходный код является значительным плюсом.

Для выбора решения важно учитывать как функциональные, так и технические требования. AtomiaDNS представляется наиболее полным решением, соответствующим большинству требований, однако DNSControl может быть предпочтительным выбором для тех, кто ценит работу с исходным кодом и широкую поддержку DNS-провайдеров.

Оцените материал
Добавить комментарий

Капча загружается...