KnotDNS se caracteriza por un enfoque en el alto rendimiento del procesamiento de consultas, que utiliza una implementación de subprocesos múltiples y en su mayoría sin bloqueo que se adapta bien a los sistemas SMP. Se proporcionan funciones como agregar y eliminar zonas sobre la marcha, transferencias de zona entre servidores, DDNS (actualizaciones dinámicas), NSID (RFC 5001), EDNS0 y extensiones DNSSEC (incluido NSEC3), límites de tasa de respuesta (RRL).
En el nuevo lanzamiento:
- Se implementó soporte completo para diferentes cálculos de números de serie (SOA) para la zona en los servidores maestro y esclavo, cuando la zona está firmada digitalmente en el servidor esclavo;
- Se agregó soporte para entradas con comodines al módulo geoip;
- Se agregó una nueva configuración 'rrsig-pre-refresh' para DNSSEC para reducir la frecuencia de los eventos de firma de zona;
- Se agregó la configuración "tcp-reuseport" para establecer el modo SO_REUSEPORT(_LB) para los sockets TCP;
- Se agregó la configuración "tcp-io-timeout" para limitar el tiempo de las operaciones de E/S entrantes a través de TCP;
- Incrementó significativamente el rendimiento de las operaciones de modificación del contenido de la zona;
- Se suspendió el soporte para la reconfiguración de interfaces de red y controladores, ya que no se puede realizar después de que el proceso haya restablecido sus privilegios;
- La implementación de las cookies DNS se modificó para cumplir plenamente con el borrador de la especificación draft-ietf-dnsop-server-cookies;
- De forma predeterminada, el límite de conexión TCP ahora se limita a la mitad del límite del sistema en la cantidad de descriptores de archivos, y la cantidad de archivos abiertos ahora se establece en 1048576;
- Al elegir la cantidad de controladores de ejecución, ahora se usa la cantidad de CPU, pero no menos de 10;
- Se cambió el nombre de muchas opciones, por ejemplo, 'server.tcp-reply-timeout' a 'server.tcp-remote-io-timeout', 'server.max-tcp-clients' a 'server.tcp-max-clients', 'template .journal-db' a 'database.journal-db', etc. El soporte para nombres más antiguos continuará hasta al menos la próxima versión principal.
Fuente: opennet.ru