Выпуск DNS-сервера BIND 9.20.0, переведённый на libuv и новый бэкенд для БД

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3128
Зарегистрирован: 20.08.2022

#

Выпуск DNS-сервера BIND 9.20.0, переведённый на libuv и новый бэкенд для БД
Дата публикации:Tue, 23 Jul 2024 21:06:32 +0300




После двух с половиной лет разработки консорциум ISC представил первый стабильный релиз новой значительной ветки DNS-сервера BIND 9.20, который вобрал в себя изменения, развивавшиеся в экспериментальной ветке BIND 9.19. Поддержка ветки 9.20 будет осуществляться в рамках расширенного цикла сопровождения до первого квартала 2028 года. Поддержка ветки 9.18 прекратится во 2 квартале 2025 года. Для развития функциональности следующей стабильной версии BIND будет сформирована экспериментальная ветка BIND 9.21.0. Код проекта написан на языке Си и распространяется под лицензией MPL 2.0.



Основные изменения:
  • Ядро приложения, связывающее все компоненты, переведено на использование цикла обработки событий в неблокирующем режиме, реализованного на основе библиотеки libuv, применяемой в таких проектах, как Node.js, Knot DNS, H2O, Luvit и MoarVM. В ветке 9.16 на libuv был переведён менеджер сетевых соединений в BIND, а теперь и части, используемые для взаимодействия внутренних компонентов инфраструктуры, а также длительно выполняемые в отдельных потоках вспомогательные обработчики (threadpool), используемые для верификации DNSSEC, трансфера зон, поддержания каталога зон и обработки RPZ (Response Policy Zone). Для сборки BIND теперь требуется как минимум выпуск libuv 1.34.0.

    Предложен новый бэкенд для работы с БД - "QP trie", который пришёл на смену RBTDB (Red-Black Tree Database) и задействован по умолчанию для хранения кэша и базы DNS-зон. Для многопоточной работы в QP trie задействована библиотека liburcu с реализацией в пространстве пользователя структур, не использующих блокировки, благодаря применению механизма синхронизации RCU (read-copy-update) и метода безопасного освобождения памяти QSBR (Quiescent-State-Based Reclamation).

    Задействован обновлённый механизм сжатия доменных имён, использующий более компактный метод кодирования имён с большим числом меток.

    Расширены возможности DNSSEC: "dnssec-policy" разрешено применять для управления подписанными зонами (опция auto-dnssec удалена); при использовании "inline-signing" добавлена поддержка RFC 8901 (DNSSEC multi-signer model 2); возобновлена поддержка PKCS#11 на базе OpenSSL 3.0.0 Engine API; в "dnssec-policy" добавлена поддержка HSM (Hardware Security Module).

    Добавлена поддержка второй версии каталога зон (Catalog Zone, RFC 9432), упрощающего поддержание вторичных DNS-серверов за счёт того, что вместо определения на вторичном сервере отдельных записей для каждой вторичной зоны, между первичным и вторичным серверами организуется передача каталога вторичных зон. После настройки передачи каталога по аналогии с передачей отдельных зон, заводимые на первичном сервере зоны, помеченные как входящие в каталог, автоматически создаются на вторичном сервере без необходимости правки файлов конфигурации.

    Добавлена поддержка механизма расширенных ошибок (Extended DNS Errors, RFC 8914), позволяющего возвращать дополнительную информацию о причине ошибки, возникшей при выполнении DNS-запроса.


    Реализация технологий "DNS поверх HTTPS" (DoH, DNS over HTTPS) и DNS поверх TLS (DoT, DNS over TLS), применяемых для шифрования запросов клиентов к резолверу и шифрованного обмена данными между серверами, переведена на использование унифицированного транспорта.

    Добавлена возможность использования протокола PROXYv2 со всеми транспортами, поддерживаемыми в BIND. Протокол PROXY позволяет передавать информацию о соединении для сохранения сведений об исходном IP-адресе и номере порта при пробросе DNS-запросов через другие бэкенды, балансировщики нагрузки и прокси-серверы.

    Добавлена поддержка режима USDT (User Statically Defined Tracing), дающего возможность выполнять трассировку приложения при помощи команды perf, не создавая дополнительные накладные расходы, когда трассировка отключена.

    В собираемой статистике реализовано отражения информации о незавершённых входящих операциях передачи зон.

    Проведена работа по сокращению задержек, уменьшению потребления памяти и снижению нагрузки на CPU при резолвинге, работе DNS-over-TLS и формировании ответов по UDP и TCP.
    Изображение
    Изображение
    Изображение


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61599

Жизнь за Нер'зула!

Ответить