Pas dy vjet e gjysmë zhvillimi, konsorciumi ISC paraqiti lëshimin e parë stabil të degës së re të rëndësishme të serverit DNS BIND 9.20, i cili përfshin ndryshimet që janë zhvilluar në degën eksperimentale BIND 9.19. Mbështetje për degën 9.20 do të ofrohet në kuadër të një cikli të zgjatur të mbështetjes deri në tremujorin e parë të vitit 2028. Mbështetje për degën 9.18 do të ndalet në tremujorin e dytë të vitit 2025. Për zhvillimin e funksionalitetit të versionit të ardhshëm stabil të BIND do të formohet një degë eksperimentale BIND 9.21.0. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën MPL 2.0.
Ndryshimet kryesore:
- Kerni i aplikacionit, i cili ndërlidhet me të gjitha komponentët, është përkthyer për të përdorur një cikël të përpunimit të ngjarjeve në mënyrë jo bllokuese, i realizuar mbi bazën e bibliotekës libuv, e cila përdoret në projekte të tilla si Node.js, Knot DNS, H2O, Luvit dhe MoarVM. Në degën 9.16 është përkthyer menaxheri i lidhjeve rrjetërore në BIND, ndërsa tani janë përfshirë edhe pjesët që përdoren për ndërveprimin e komponentëve të brendshëm të infrastrukturës, si dhe menaxherët ndihmës që përperformohen për një kohë të gjatë në thread-e të ndryshme (threadpool), të cilët përdoren për verifikimin e DNSSEC, transferimin e zonave, ruajtjen e katalogut të zonave dhe përpunimin e RPZ (Response Policy Zone). Për ndërtimin e BIND tani kërkohet të paktën lëshimi libuv 1.34.0.
- ĂshtĂ« propozuar njĂ« backend i ri pĂ«r punĂ«n me DB-nĂ« â "QP trie", i cili zĂ«vendĂ«son RBTDB (Red-Black Tree Database) dhe Ă«shtĂ« aktivizuar si standard pĂ«r ruajtjen e njĂ« cache dhe bazĂ«s sĂ« zonave DNS. PĂ«r punĂ«n shumĂ«-thread Ă«shtĂ« pĂ«rdorur biblioteka liburcu me implementimin nĂ« hapĂ«sirĂ« tĂ« pĂ«rdoruesit tĂ« strukturave qĂ« nuk pĂ«rdorin bllokime, pĂ«r shkak tĂ« pĂ«rdorimit tĂ« mekanizmit tĂ« sinkronizimit RCU (read-copy-update) dhe metodĂ«s sĂ« lirimit tĂ« sigurt tĂ« memorjes QSBR (Quiescent-State-Based Reclamation).
- ĂshtĂ« aktivizuar njĂ« mekanizĂ«m i pĂ«rmirĂ«suar kompresimi emrash domenesh, i cili pĂ«rdor njĂ« metodĂ« mĂ« tĂ« kompakt pĂ«r kodimin e emrave me numĂ«r tĂ« madh etiketash.
- Janë zgjeruar mundësitë e DNSSEC: "dnssec-policy" tani lejohen për menaxhimin e zonave të nënshkruara (opsioni auto-dnssec është hequr); me përdorimin e "inline-signing" është shtuar mbështetje për RFC 8901 (modeli multi-nënshkrues DNSSEC 2); është rinisur mbështetje për PKCS#11 mbi OpenSSL 3.0.0 Engine API; në "dnssec-policy" është shtuar mbështetje për HSM (Hardware Security Module).
- Shtesa e mbështetjes për versionin e dytë të katalogut të zonave (Catalog Zone, RFC 9432), duke e thjeshtuar mbështetje për serverët e DNS-së dytësorë duke organizuar transferimin e katalogut të zonave dytësore midis serverëve primarë dhe dytësorë, në vend të përcaktimit të regjistrimeve të veçanta për çdo zonë dytësore. Pas konfigurimit të transferimit, si në rastin e transferimit të zonave të veçanta, zonat që krijohen në serverin primar dhe janë të etiketuar si të përfshira në katalog, krijohen automatikisht në serverin dytësor pa nevojën për të modifikuar skedarin e konfigurimit.
- Shtesa e mbështetjes për mekanizmin e gabimeve të zgjeruara (Extended DNS Errors, RFC 8914), i cili lejon kthimin e informacionit të shtuar në lidhje me shkakun e gabimit që ndodhi gjatë ekzekutimit të një kërkese DNS.
- Implementimi i teknologjive "DNS mbi HTTPS" (DoH, DNS over HTTPS) dhe DNS mbi TLS (DoT, DNS over TLS), të aplikuara për enkriptimin e kërkesave të klientëve në rezolutor dhe shkëmbimin e enkriptuar të të dhënave midis serverëve, është kaluar në përdorimin e transportit të unifikuar.
- Shtesa e mundësisë për të përdorur protokollin PROXYv2 me të gjitha transportet e mbështetura në BIND. Protokolli PROXY lejon transmetimin e informacionit mbi lidhjen për të ruajtur informacionin për adresën IP dhe numrin e portit të origjinës kur kalojnë kërkesat DNS përmes backend-eve të tjera, balancuesve të ngarkesës dhe proxy-ve.serverët.
- Shtesa e mbështetjes për modin USDT (User Statically Defined Tracing), duke ofruar mundësinë për të realizuar gjurmimin e aplikacionit duke përdorur komandën perf, pa krijuar ngarkesë shtesë kur gjurmimi është i çaktivizuar.
- Në statistikën e mbledhur është implementuar reflektimi i informacionit për operacionet e papërfunduara të transferimit të zonave.
- Kryerja e punës për reduktimin e vonesave, uljen e konsumit të memories dhe reduktimin e ngarkesës në CPU gjatë zgjidhjes, funksionimit të DNS-over-TLS dhe formimit të përgjigjeve përmes UDP dhe TCP.



Burimi: opennet.ru



