Пускане на DNS сървъра BIND 9.20.0, преведен на libuv и нов бекенд за БД

След две години и половина разработки, консорциум ISC представи първата стабилна версия на новата значима версия на DNS сървъра BIND 9.20, която обединява измененията, развивали се в експерименталната версия BIND 9.19. Поддръжката на версия 9.20 ще се осъществява в рамките на разширен цикъл до първото тримесечие на 2028 година. Поддръжката на версия 9.18 ще приключи през второто тримесечие на 2025 година. За развитието на функционалността на следващата стабилна версия на BIND ще бъде създадена експериментална версия BIND 9.21.0. Кодът на проекта е написан на C и се разпространява под лиценза MPL 2.0.

Основни промени:

  • Ядрото на приложението, свързващо всички компоненти, е преминало на работа с цикъл на обработка на събития в неблокиращ режим, реализиран на базата на библиотеката libuv, която се използва в проекти като Node.js, Knot DNS, H2O, Luvit и MoarVM. В версия 9.16 мениджърът на мрежови връзки в BIND премина на libuv, а сега и частите, използвани за взаимодействие на вътрешните компоненти на инфраструктурата, както и дълготрайни помощни обработчици (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.
    Пускане на DNS сървъра BIND 9.20.0, преведен на libuv и нов бекенд за БД
    Пускане на DNS сървъра BIND 9.20.0, преведен на libuv и нов бекенд за БД
    Пускане на DNS сървъра BIND 9.20.0, преведен на libuv и нов бекенд за БД

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster