KnotDNS zeichnet sich durch einen Fokus auf eine hohe Abfrageverarbeitungsleistung aus, die eine Multithread- und größtenteils nicht blockierende Implementierung verwendet, die sich gut auf SMP-Systemen skalieren lässt. Funktionen wie das Hinzufügen und Entfernen von Zonen im laufenden Betrieb, Zonenübertragungen zwischen Servern, DDNS (dynamische Updates), NSID (RFC 5001), EDNS0- und DNSSEC-Erweiterungen (einschließlich NSEC3) sowie Antwortratenlimits (RRL) werden bereitgestellt.
In der neuen Version:
- Volle Unterstützung für unterschiedliche Berechnung von Seriennummern (SOA) für die Zone auf dem Master- und Slave-Server implementiert, wenn die Zone auf dem Slave-Server digital signiert ist;
- Unterstützung für Einträge mit Platzhaltern zum GeoIP-Modul hinzugefügt;
- Neue Einstellung „rrsig-pre-refresh“ für DNSSEC hinzugefügt, um die Häufigkeit von Zonensignaturereignissen zu reduzieren;
- Einstellung „tcp-reuseport“ hinzugefügt, um den SO_REUSEPORT(_LB)-Modus für TCP-Sockets festzulegen;
- Einstellung „tcp-io-timeout“ hinzugefügt, um die Zeit eingehender E/A-Vorgänge über TCP zu begrenzen;
- Die Leistung von Zoneninhaltsänderungsvorgängen wurde erheblich gesteigert;
- Die Unterstützung für die Neukonfiguration von Netzwerkschnittstellen und Handlern wurde eingestellt, da sie nicht mehr durchgeführt werden kann, nachdem der Prozess seine Berechtigungen zurückgesetzt hat.
- Die Implementierung von DNS-Cookies wurde überarbeitet, um vollständig dem Entwurf der Draft-ietf-dnsop-server-cookies-Spezifikation zu entsprechen;
- Standardmäßig ist das TCP-Verbindungslimit jetzt auf die Hälfte des Systemlimits für die Anzahl der Dateideskriptoren begrenzt, und die Anzahl der geöffneten Dateien ist jetzt auf 1048576 festgelegt.
- Bei der Auswahl der Anzahl der Run-Handler wird nun die Anzahl der CPUs verwendet, jedoch nicht weniger als 10;
- Viele Optionen wurden umbenannt, zum Beispiel „server.tcp-reply-timeout“ in „server.tcp-remote-io-timeout“, „server.max-tcp-clients“ in „server.tcp-max-clients“, „template .journal-db‘ zu ‚database.journal-db‘ usw. Die Unterstützung älterer Namen wird mindestens bis zur nächsten Hauptversion fortgesetzt.
Source: opennet.ru