Die Freigabe des DNS-Servers BIND 9.20.0, der auf libuv und ein neues Backend für die Datenbank umgestellt wurde.

Nach zweieinhalb Jahren Entwicklung hat das ISC-Konsortium die erste stabile Version des neuen, bedeutenden Zweigs des DNS-Servers BIND 9.20 vorgestellt, die die Änderungen der experimentellen Version BIND 9.19 enthält. Die Unterstützung für den Zweig 9.20 wird im Rahmen eines erweiterten Wartungszyklus bis zum ersten Quartal 2028 erfolgen. Die Unterstützung für den Zweig 9.18 wird im zweiten Quartal 2025 eingestellt. Für die Entwicklung der Funktionalität der nächsten stabilen Version von BIND wird ein experimenteller Zweig BIND 9.21.0 gebildet. Der Projektcode ist in C geschrieben und wird unter der Lizenz MPL 2.0 veröffentlicht.

Hauptänderungen:

  • Der Kern der Anwendung, der alle Komponenten verbindet, wurde auf die Verwendung eines nicht-blockierenden Ereignisverarbeitungszyklus umgestellt, der auf der Bibliothek libuv basiert, die in Projekten wie Node.js, Knot DNS, H2O, Luvit und MoarVM verwendet wird. In der Version 9.16 wurde der Netzwerkverbindungsmanager in BIND auf libuv umgestellt, und nun auch Teile, die für die Interaktion interner Infrastrukturkomponenten verwendet werden, sowie langfristig in separaten Threads ausgeführte Hilfsverarbeiter (Threadpool), die zur Verifizierung von DNSSEC, zur Zonenübertragung, zur Pflege des Zonenkatalogs und zur Verarbeitung von RPZ (Response Policy Zone) verwendet werden. Für den Aufbau von BIND ist jetzt mindestens die Version libuv 1.34.0 erforderlich.
  • Ein neuer Backend für die Arbeit mit Datenbanken – „QP trie“, der RBTDB (Red-Black Tree Database) ersetzt hat und standardmäßig zur Speicherung von Cache und DNS-Zonendaten verwendet wird. Für die Multithread-Arbeit im QP trie wird die Bibliothek liburcu eingesetzt, die nicht blockierende Datenstrukturen im Benutzerspeicher implementiert, dank des RCU-Synchronisationsmechanismus (read-copy-update) und der QSBR-Speicherfreigabemethode (Quiescent-State-Based Reclamation).
  • Ein aktualisierter Komprimierungsmechanismus wurde implementiert Domainnamen, der eine kompaktere Kodierungsmethode für Namen mit einer größeren Anzahl von Labels verwendet.
  • Die Funktionen von DNSSEC wurden erweitert: „dnssec-policy“ darf zur Verwaltung signierter Zonen verwendet werden (die Option auto-dnssec wurde entfernt); bei Verwendung von „inline-signing“ wurde die Unterstützung für RFC 8901 (DNSSEC-Multi-Signer-Modell 2) hinzugefügt; die Unterstützung von PKCS#11 basierend auf der OpenSSL 3.0.0 Engine API wurde wiederhergestellt; die Unterstützung von HSM (Hardware Security Module) wurde in „dnssec-policy“ hinzugefügt.
  • Die Unterstützung der zweiten Version des Zonenkatalogs (Catalog Zone, RFC 9432) wurde hinzugefügt, der die Pflege sekundärer DNS-Server erleichtert, indem anstelle der Definition einzelner Einträge für jede sekundäre Zone auf dem sekundären Server eine Übertragung des Katalogs der sekundären Zonen zwischen primärem und sekundärem Server organisiert wird. Nach der Konfiguration der Übertragung, ähnlich der Übertragung einzelner Zonen, werden Zonen, die auf dem primären Server als im Katalog enthalten markiert sind, automatisch auf dem sekundären Server erstellt, ohne dass Konfigurationsdateien bearbeitet werden müssen.
  • Die Unterstützung des Mechanismus für erweiterte Fehler (Extended DNS Errors, RFC 8914) wurde hinzugefügt, der zusätzliche Informationen über die Ursache eines Fehlers zurückgeben kann, der bei der Ausführung einer DNS-Anfrage aufgetreten ist.
  • Die Implementierung der Technologien „DNS über HTTPS“ (DoH, DNS over HTTPS) und DNS über TLS (DoT, DNS over TLS), die zur Verschlüsselung von Client-Anfragen an den Resolver und zum sicheren Datenaustausch zwischen Servern verwendet werden, wurde auf einen einheitlichen Transport umgestellt.
  • Die Möglichkeit zur Verwendung des PROXYv2-Protokolls mit allen in BIND unterstützten Transporten wurde hinzugefügt. Das PROXY-Protokoll ermöglicht es, Verbindungsinformationen zu übertragen, um Informationen über die ursprüngliche IP-Adresse und die Portnummer beim Durchleiten von DNS-Anfragen über andere Backend-Systeme, Load Balancer und Proxys zu speichern.Server.
  • Die Unterstützung des USDT-Modus (User Statically Defined Tracing) wurde hinzugefügt, der es ermöglicht, Anwendungs-Trace durch den Befehl perf durchzuführen, ohne zusätzliche Overhead-Kosten zu verursachen, wenn das Tracing deaktiviert ist.
  • In der gesammelten Statistik wurde die Information über nicht abgeschlossene eingehende Zonenübertragungsoperationen implementiert.
  • Die Arbeit an der Reduzierung der Latenz, des Speicherverbrauchs und der CPU-Belastung beim Resolvieren, beim DNS-over-TLS und bei der Generierung von Antworten über UDP und TCP wurde durchgeführt.
    Die Freigabe des DNS-Servers BIND 9.20.0, der auf libuv und ein neues Backend für die Datenbank umgestellt wurde.
    Die Freigabe des DNS-Servers BIND 9.20.0, der auf libuv und ein neues Backend für die Datenbank umgestellt wurde.
    Die Freigabe des DNS-Servers BIND 9.20.0, der auf libuv und ein neues Backend für die Datenbank umgestellt wurde.

Quelle: opennet.ru

60GB SSD 8Gb DDR4