Pärast kahte ja pool aastat arendust esitles ISC konsortsium uue olulise haru DNS-serverist BIND 9.20 esimest stabiilset väljaannet, mis sisaldab muudatusi, mis on arenenud eksperimentaalses harus BIND 9.19. Haru 9.20 toetamine jätkub pikendatud hooldustsükli raames kuni 2028. aasta esimesse kvartalisse. Haru 9.18 toetamist lõpetatakse 2025. aasta teises kvartalis. Järgmise stabiilse versiooni BIND funktsionaalsuse arendamiseks luuakse eksperimentaalne haru BIND 9.21.0. Projekti kood on kirjutatud C keeles ja levitamise all MPL 2.0 litsents.
Peamised muudatused:
- Rakenduse tuum, mis ühendab kõiki komponente, on tõlgitud kasutama mitteblokeerivat sisend-väljund tsüklit, mis põhineb libuv teekil, mida kasutatakse sellistes projektides nagu Node.js, Knot DNS, H2O, Luvit ja MoarVM. Haru 9.16 puhul on libuv-sse tõlgitud BIND-i võrguühenduste haldur, ning nüüd ka osad, mida kasutatakse infrastruktuuri siseosaluste suhtlemiseks, samuti pikaajalised abiprotsessorid (threadpool), mida kasutatakse DNSSEC-i verifitseerimiseks, tsoonide ülekandmiseks, tsoonide katalooge hoidmiseks ja RPZ (Response Policy Zone) töötlemiseks. BIND-i kogumiseks on nüüd vajalik vähemalt libuv versioon 1.34.0.
- Uus andmebaasi töötluse tagaplane on „QP trie“, mis on asendanud RBTDB (punase-musta puu andmebaasi) ja on vaikimisi kasutusel vahemälu ja DNS-tsoonide andmebaasi salvestamiseks. QP trie mitme lõime töötluseks on rakendatud liburcu teek, mis kasutab kasutaja ruumis struktuure, mis ei kasuta lukustusi, tänu RCU (read-copy-update) sünkroonimismehhanismi ja QSBR (Quiescent-State-Based Reclamation) mälu vabastamise meetodi rakendamisele.
- Kasutusele on võetud uuendatud kompressioonimehhanism domeeninimesid, kasutades kompaktsemat nimekoodimise meetodit suure arvu siltidega.
- DNSSEC-i võimalusi on laiendatud: «dnssec-policy» on lubatud hallata allkirjastatud tsoone (valik auto-dnssec on eemaldatud); «inline-signing» kasutamisel on lisatud tugi RFC 8901-le (DNSSEC multi-signer mudel 2); taastatud tugi PKCS#11 alusel OpenSSL 3.0.0 Engine API; «dnssec-policy» on lisatud HSM (Hardware Security Module) tugi.
- Lisatud toetus teise versiooni tsoonikataloogile (Catalog Zone, RFC 9432), mis lihtsustab sekundaarsete DNS-serverite hooldamist, võimaldades primaarse ja sekundaarse serveri vahel katalogiseerimise edastamist, selle asemel et määrata sekundaarserveris eraldi kirjed iga sekundaarsesse tsooni jaoks. Pärast katalogiseerimise edastamise seadistamist, sarnaselt eraldi tsoonide edastamisele, luuakse primaarserveris loodud tsoonid, mis on märgitud kuuluvana katalooge, automaatselt sekundaarserveris ilma konfiguratsioonifailide muutmiseta.
- Lisatud laiendatud viga mehanismi (Extended DNS Errors, RFC 8914) tugi, mis võimaldab tagastada täiendavat teavet vea põhjuse kohta, mis tekkis DNS-päringu töötlemisel.
- Tehnoloogiate „DNS üle HTTPS” (DoH, DNS over HTTPS) ja DNS üle TLS (DoT, DNS over TLS) rakendamine, mida kasutatakse kliendi päringute krüpteerimiseks resolvendi vastu ja krüpteeritud andmevahetuseks serverite vahel, on üle viidud ühisele transpordile.
- Lisatud PROXYv2 protokolli kasutamise võimalus kõikide BINDis toetatud transportide puhul. PROXY protokoll võimaldab edastada ühenduse teavet, et säilitada info algse IP-aadressi ja sadama numbri kohta, kui DNS-päringud suunatakse läbi teiste taustteenuste, koormuse tasakaalustajate ja prokside.serverid.
- Lisatud USDT (User Statically Defined Tracing) režiimi tugi, mis võimaldab rakenduse jälgimist perf käsu abil, ilma et tekiks lisakulusid, kui jälgimine on keelatud.
- Kogutud statistikas on rakendatud katkestamata sisenevate tsooni edastamise operatsioonide teabe kajastamine.
- Tööd on tehtud latentsuse vähendamiseks, mälu kasutuse vähendamiseks ja CPU koormuse alandamiseks DNS-over-TLS resolveerimisel ning vastuste vormistamisel UDP ja TCP kaudu.



Allikas: opennet.ru



