PowerDNS Authoritative Server 5.0: Новые Возможности и Усовершенствования для Управления DNS-Зонами

22 августа 2025 года состоялся релиз открытого проекта PowerDNS Authoritative Server версии 5.0, который предназначен для управления DNS-зонами. Ранее этот проект обслуживал до 30% всех доменов в Европе и 90% доменов с поддержкой DNSSEC. Исходный код реализован на языках C++ и Python и доступен на GitHub под лицензией GPLv2.

Согласно информации от OpenNET, PowerDNS Authoritative Server предлагает хранение данных о доменах в различных типах баз данных, таких как MySQL, PostgreSQL, SQLite3, LMDB, Oracle и Microsoft SQL Server, а также в LDAP и обычных текстовых файлах в формате BIND. Ответы могут быть дополнительно отфильтрованы (например, для устранения спама) или перенаправлены в специальные обработчики на языках Lua, Java, Perl, Python, Ruby, C и C++. Среди других функций выделяются средства для удалённого сбора статистики (включая SNMP и Web API), возможность мгновенного перезапуска, встроенный Lua-движок для подключения обработчиков, а также балансировка нагрузки с учетом геолокации клиента.

Ключевые изменения и новшества в PowerDNS Authoritative Server 5.0 включают:

– Поддержка представлений (views), аналогично DNS-серверу BIND, позволяющая выдавать разный контент DNS-зон в зависимости от IP-адреса отправителя запроса. Например, пользователям с внутренними адресами может предоставляться один вариант DNS-зоны, в то время как внешним пользователям — другой. Временный бэкенд для хранения разных представлений — LMDB;

– Добавлена возможность привязки к Unix-сокету вместо использования сокетов TCP/IP;

– Утилита sdig теперь поддерживает EDNS Cookie;

– В бэкенд LMDB добавлена функция поиска записей и поддержка RFC-2136 (DNS UPDATE);

– Новый синтаксис команды для утилиты pdnsutil — «pdnsutil тип_объекта команда аргументы» (остался поддерживаемым и старый синтаксис);

– Введена новая команда pdnsutil backend-lookup для поиска записей в бэкенде;

– Реализована поддержка RFC-9615 для автоматизированного аутентифицированного бутстраппинга DNSSEC;

– Добавлена функция ведения лога для пакетов с ошибками парсинга;

– Введена настройка «dnsupdate-require-tsig», обязывающая использовать TSIG (Transaction Signature) для операций обновления записей DNS;

– Добавлена настройка «direct-dnskey-signature» для прямого извлечения цифровой подписи DNSKEY из бэкенда;

– Настройка «resolve-across-zones» позволяет контролировать разрешение CNAME-записей, указывающих на другие зоны при отключении;

– Увеличены возможности создания обработчиков на языке Lua.