Компания NLNet Labs объявила о выпуске DNS-сервера NSD 4.0, спустя семь лет с момента релиза NSD 3.0. Сервер поддерживает только работу в авторитативном режиме (обработка DNS-зон) и максимально оптимизирован для решения данной задачи. Стабильность и надёжность NSD подтверждена использованием данного DNS-сервера на нескольких корневых серверах DNS и серверах, обслуживающих домены первого уровня. Код NSD распространяется под лицензией BSD.
На уровне поддержки протоколов NSD полностью совместим с другими авторитативными и рекурсивными серверами DNS, на уровне файлов зон NSD совместим с BIND и может работать файлами зон BIND, без необходимости внесения в них изменений. Перед использованием исходные файлы зон компилируются в бинарное индексированное представление, которое обеспечивает минимальное время запуска, оптимальную производительность и гарантию отсутствия ошибок (все проблемы выявляются на стадии компиляции).
Ключевые особенности выпуска NSD 4.0:
- Значительное повышение производительности, по сравнению с NSD 3;
- Возможность динамического изменения конфигурации и управления работой DNS-сервера на лету при помощи новой утилиты nsd-control. Поддержка утилиты nsdc прекращена (для перезапуска и остановки следует использовать nsd-control или kill -HUP/kill -TERM). Также прекращена поддержка запускаемой через cron команды "nsdc patch", вместо которой для создания файлов зон предлагается использовать операцию "nsd-control write". Nsd-control может использоваться для управления не только локальным сервером, но и удалённым с использованием ключей шифрования для организации доступа (для генерации ключей подготовлена утилита nsd-control-setup);
- Поддержка технологии RRL (Response Rate Limiting) для ограничения интенсивности отправки ответов в привязке к адресу получателя (ограничения действуют только на исходящие запросы и не влияют на входящие). RRL является одним из способов противодействия использования DNS-сервера в качестве усилителя в DDoS-атаках;
- Средства для использования NSD для обслуживания огромного числа зон;
- Директива tcp-count, определяющая максимальное допустимое число одновременных запросов, теперь может принимать значения больше 1000. Добавлена поддержка epoll/kqueue через libevent;
- Изменения формата базы nsd.db и перевод внутренних структур на Radix Tree. Новый формат предоставляет средства автоматической упаковки после внесения изменений, что избавляет от необходимости периодического выполнения "nsdc patch". Для доступа к nsd.db теперь используется маппинг в память.