İki buçuk yıllık geliştirme sürecinin ardından ISC konsorsiyumu, BIND 9.20 DNS sunucusunun ilk kararlı sürümünü tanıttı. Bu sürüm, BIND 9.19 deneysel sürümünde geliştirilen değişiklikleri içermektedir. 9.20 sürümünün desteği, 2028'in ilk çeyreğine kadar genişletilmiş destek döngüsü çerçevesinde sağlanacaktır. 9.18 sürümünün desteği ise 2025'in ikinci çeyreğinde sona erecektir. BIND'ın bir sonraki kararlı sürümünün işlevselliğini geliştirmek için BIND 9.21.0 deneysel bir dal oluşturulacaktır. Proje kodu C dilinde yazılmıştır ve MPL 2.0 lisansı altında dağıtılmaktadır.
Əsas dəyişikliklər:
- Tüm bileşenleri birbirine bağlayan uygulamanın çekirdeği, Node.js, Knot DNS, H2O, Luvit ve MoarVM gibi projelerde kullanılan libuv kütüphanesi temelinde gerçekleştirilen engelleme yapmadan olay döngüsü işleme moduna geçirilmiştir. 9.16 dalında, BIND'deki ağ bağlantı yöneticisi libuv'ye taşınmışken, şimdi de altyapının iç bileşenleriyle etkileşim için kullanılan kısımlar ve DNSSEC doğrulaması, alan aktarımı, alan dizini yönetimi ve RPZ (Response Policy Zone) işlemleri için kullanılan uzun süreli yardımcı iş parçacıkları (threadpool) taşınmıştır. BIND'ın derlenmesi için artık en az libuv 1.34.0 sürümü gereklidir.
- Yeni bir veritabanı arka ucu önerilmiştir — 'QP trie'. Bu, RBTDB (Kırmızı-Siyah Ağaç Veritabanı) yerine geçmiştir ve DNS alanlarının ve önbelleğin depolanması için varsayılan olarak kullanılmaktadır. QP trie'de çoklu iş parçacığı çalışması için, bloklama kullanmayan yapıların kullanıcı alanında gerçekleştirilmesi için RCU (read-copy-update) senkronizasyon mekanizması ve QSBR (Quiescent-State-Based Reclamation) bellek güvenli serbest bırakma yöntemi uygulayan liburcu kütüphanesi kullanılmıştır.
- Güncellenmiş sıkıştırma mekanizması kullanıma sunulmuştur, domain adları, daha fazla etiket sayısına sahip adları kodlamak için daha kompakt bir kodlama yöntemi kullanmaktadır.
- DNSSEC yetenekleri genişletilmiştir: 'dnssec-policy', imzalı alanları yönetmek için kullanılması için izin verilmiştir (auto-dnssec seçeneği kaldırılmıştır); 'inline-signing' kullanıldığında RFC 8901 (DNSSEC çok imzalayıcı modeli 2) desteği eklenmiştir; OpenSSL 3.0.0 Engine API tabanlı PKCS#11 desteği tekrar sağlanmıştır; 'dnssec-policy'ye HSM (Hardware Security Module) desteği eklenmiştir.
- İkinci zon kataloğu sürümünün (Catalog Zone, RFC 9432) desteği eklendi; bu, ikincil DNS sunucularının bakımını kolaylaştırıyor. İkincil sunucuda her bir ikincil zon için ayrı kayıtlar tanımlamak yerine, birincil ve ikincil sunucular arasında ikincil zonlar kataloğunun aktarımı organize ediliyor. Kataloğun aktarımı, ayrıntılı zonların aktarımıyla benzer şekilde ayarlandığında, birincil sunucuda katalogda yer alan zonlar otomatik olarak ikincil sunucuda oluşturulur, yapılandırma dosyalarını düzenleme gereği duyulmaz.
- Gelişmiş hata mekanizmasının (Extended DNS Errors, RFC 8914) desteği eklendi; bu, DNS isteği gerçekleştirildiğinde meydana gelen hatanın sebebi hakkında ek bilgi döndermeye olanak tanır.
- DNS üzerinden HTTPS (DoH, DNS over HTTPS) ve DNS üzerinden TLS (DoT, DNS over TLS) teknolojilerinin uygulanması, istemcilerin resolver'a olan taleplerini şifrelemek ve sunucular arasında şifreli veri alışverişi yapmak için tek tip taşıma yöntemine geçirildi.
- BIND'da desteklenen tüm taşıma yöntemleri ile PROXYv2 protokolünün kullanımı eklendi. PROXY protokolü, DNS isteklerini diğer backend'ler, yük dengeleyiciler ve proxy aracılığıyla geçirirken, bağlantı bilgilerini ileterek kaynak IP adresi ve bağlantı noktası hakkında bilgi saklamayı sağlar.serverlər.
- Kullanıcı Statik Olarak Tanımlanan İzleme (USDT) modunun desteği eklendi; bu, izleme kapalıyken ek maliyet oluşturmadan uygulamanın izlenmesini sağlamak için perf komutunu kullanmaya olanak tanır.
- Toplanan istatistiklerde, tamamlanmamış gelen zon aktarım işlemleri hakkında bilgi yansıtma uygulandı.
- DNS çözümleme, DNS-over-TLS ile çalışma ve UDP ve TCP üzerinde yanıt oluşturma işlemlerinde gecikmeleri azaltma, bellek tüketimini düşürme ve CPU yükünü azaltma çalışmaları yapıldı.



Mənbə: opennet.ru



