Пуск на 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.

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

  • Ядрото на приложението, което свързва всички компоненти, е преведенo на използване на цикъл за обработка на събития в неблокиращ режим, реализиран на базата на библиотеката 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