Efter tvÄ och ett halvt Ärs utveckling har konsortiet ISC presenterat den första stabila versionen av den nya betydande grenen av DNS-servern BIND 9.20, som har inkluderat Àndringar som har utvecklats i den experimentella grenen BIND 9.19. Stödet för grenen 9.20 kommer att ges inom ramen för ett utökat underhÄllscykel fram till första kvartalet 2028. Stödet för grenen 9.18 upphör under andra kvartalet 2025. För att utveckla funktionaliteten i nÀsta stabila version av BIND kommer en experimentell gren, BIND 9.21.0, att skapas. Projektets kod Àr skriven i C och distribueras under licensen MPL 2.0.
Huvudsakliga förÀndringar:
- KÀrnan i applikationen, som kopplar ihop alla komponenter, har översatts till att anvÀnda en hÀndelsehanteringscykel i icke-blockerande lÀge, implementerad med hjÀlp av biblioteket libuv, som anvÀnds i projekt som Node.js, Knot DNS, H2O, Luvit och MoarVM. I grenen 9.16 har nÀtverksanslutningshanteraren i BIND översatts till libuv, och nu Àven delar som anvÀnds för att interagera med interna komponenter i infrastrukturen, samt lÄngvariga uppgifter i separata trÄdar, hjÀlpprocesser (threadpool) som anvÀnds för att verifiera DNSSEC, zonöverföringar, underhÄlla zonkataloger och hantera RPZ (Response Policy Zone). För att bygga BIND krÀvs nu minst version 1.34.0 av libuv.
- En ny backend för databasarbete har föreslagits â "QP trie", som ersĂ€tter RBTDB (Red-Black Tree Database) och anvĂ€nds som standard för lagring av cache och DNS-zon databaser. För flertrĂ„dad verksamhet i QP trie anvĂ€nder man biblioteket liburcu med implementeringar i anvĂ€ndarutrymmet av strukturer som inte anvĂ€nder lĂ„s, tack vare bruket av RCU (read-copy-update) synkroniseringsmekanismen och QSBR (Quiescent-State-Based Reclamation) metoden för sĂ€ker minneshantering.
- Den uppdaterade komprimeringsmetoden har anvÀnts domÀnnamn, vilket anvÀnder en mer kompakt kodningsmetod för namn med ett stort antal etiketter.
- Möjligheterna för DNSSEC har utökats: "dnssec-policy" fÄr anvÀndas för att hantera signerade zoner (auto-dnssec-alternativet har tagits bort); vid anvÀndning av "inline-signing" har stödet för RFC 8901 (DNSSEC multi-signer model 2) lagts till; stödet för PKCS#11 baserat pÄ OpenSSL 3.0.0 Engine API har Äterinförts; i "dnssec-policy" har stöd för HSM (Hardware Security Module) lagts till.
- Stöd för den andra versionen av zonekatalogen (Catalog Zone, RFC 9432) har lagts till, vilket förenklar hanteringen av sekundÀra DNS-servrar genom att istÀllet för att definiera enskilda poster för varje sekundÀr zon pÄ den sekundÀra servern, möjliggör en överföring av katalogen av sekundÀra zoner mellan den primÀra och den sekundÀra servern. Efter att ha konfigurerat överföringen av katalogen pÄ samma sÀtt som enskilda zoner, skapas de zoner som lÀggs till pÄ den primÀra servern och som Àr markerade som ingÄende i katalogen automatiskt pÄ den sekundÀra servern utan behov av att redigera konfigurationsfiler.
- Stöd för mekanismen för utökade fel (Extended DNS Errors, RFC 8914) har lagts till, vilket gör det möjligt att returnera ytterligare information om orsaken till ett fel som uppstÄtt vid utförandet av en DNS-förfrÄgan.
- Genomförandet av teknologierna "DNS över HTTPS" (DoH, DNS over HTTPS) och DNS över TLS (DoT, DNS over TLS), som anvÀnds för att kryptera kundernas förfrÄgningar till resolvern och krypterad datautbyte mellan servrar, har övergÄtt till anvÀndning av en enhetlig transport.
- Möjligheten att anvÀnda PROXYv2-protokollet med alla transportlösningar som stöds av BIND har lagts till. PROXY-protokollet tillÄter överföring av anslutningsinformation för att bevara information om den ursprungliga IP-adressen och portnumret vid vid vidarebefordran av DNS-förfrÄgningar genom andra backend-lösningar, lastbalanserare och proxyer.servrar.
- Stöd för USDT-lÀget (User Statically Defined Tracing) har lagts till, vilket gör det möjligt att utföra applikationstracering med hjÀlp av kommandot perf, utan att skapa ytterligare overhead nÀr spÄrning Àr avstÀngd.
- Den insamlade statistiken speglar information om ofullstÀndiga inkommande zonöverföringsoperationer.
- Arbete har utförts för att minska fördröjningar, sÀnka minnesanvÀndningen och avlasta CPU:n vid namnupplösning, anvÀndning av DNS-over-TLS och generering av svar via UDP och TCP.



KĂ€lla: opennet.ru



