Релиз DNS-сервера BIND 9.12
25 января 2018 года
После двух лет разработки консорциум ISC представил первый стабильный релиз новой значительной ветки DNS-сервера BIND 9.12. Разработчики рекомендуют повременить с внедрением BIND 9.12 в промышленную эксплуатацию до первого корректирующего выпуска. Поддержка веток 9.9, 9.10 и 9.11 сохраняется; например, обновления для ветки 9.11 будут выпускаться до декабря 2021 года, а для веток 9.10 и 9.9 - до июня 2018 года.
Ключевые новшества BIND 9.12.0:
- Внесена большая порция оптимизаций, направленных на ускорение выполнения запросов и увеличение производительности операций, связанных с делегированием зон. Прекращена поддержка дополнительного кэша ("acache"), который не обладал должной эффективностью. Вместо acache в named добавлена возможность использования glue-cache, ускоряющего получение записей о привязке хоста к IP при отправке ответов на запросы делегирования. С целью увеличения производительности проведён рефакторинг некоторых функций, связанных с сжатием имён, хэшированием и работой с буферами. По умолчанию прекращено заполнение определённым значением выделяемых или освобождаемых областей памяти, что положительно сказалось на производительности, но затрудняет отладку некоторых проблем с памятью, если named запущен не в отладочном режиме;
- Часть кода переработана для улучшения читаемости, упрощения тестирования и повышения удобства сопровождения. Функции resquery_response() и query_find() разбиты на серию более мелких и хорошо откомментированных функций;
- Код обработки запросов выделен из процесса named во внешнюю библиотеку libns, что упрощает написание unit-тестов и позволяет использовать данную функциональность в новых утилитах;
- В качестве алгоритмов формирования цифровых подписей для DNSSEC теперь используются эллиптические кривые Ed25519 и Ed448, если они предоставляются в OpenSSL (пока доступны только в экспериментальной ветке OpenSSL);
- Обеспечена выдача негативных ответов (NXDOMAIN, NODATA) на основе прокэшированных верифицированных записей DNSSEC, ранее возвращённых авторитетными серверами. Кэширование позволяет снизить нагрузку на авторитетные серверы и повысить производительность резолвера при запросе несуществующих имён для зон, верифицируемых по цифровой подписи (NSEC). Для отключения данного поведения в named.conf предусмотрена опция synth-from-dnssec;
- При работе в качестве рекурсивного резолвера, named теперь продолжает отдавать записи, даже после истечения их времени жизни (TTL), если авторитетный сервер не отвечает, например, из-за DDoS-атаки. Для изменения подобного поведения добавлены опции stale-answer-enable, stale-answer-ttl и max-stale-ttl;
- Добавлен API DNSRPS (DNS Response Policy Service), позволяющий подключать внешние обработчики правил формирования ответов. Например, предложен модуль "FastRPZ" с альтернативным методом вычисления "репутации" для DNS-имен (аналог DNSBL для борьбы с хостами спамеров и мошенников). Вынос RPZ в отдельный обработчик позволяет сократить нагрузку на процесс named при использовании больших и частообновляемых RPZ-зон, а также даёт возможность разработки универсальных провайдеров правил, которые можно использовать не только с BIND. По умолчанию продолжает использоваться встроенная реализация RPZ, которая была дополнительно оптимизирована и переработана. Для включения DNSRPS необходима сборка с опцией "--enable-dnsrps" и активация директивы dnsrps-enable в named.conf;
- Расширены возможности Dnstap, появившегося в BIND 9.11 быстрого и гибкого метода для захвата и журналирования трафика DNS. Добавлена поддержка автоматической ротации логов при достижении заданного размера. Имена файлов с логами могут включать суффикс, определяющий время или номер инкремента (logfile.0, .1, .2). В опцию print-time, определяющую вид отражения времени в логе, добавлена поддержка форматов времени local, iso8601 и iso8601-utc;
- Добавлена новая команда dnssec-cds для генерации нового набора DS (dsset) в родительской зоне, на основе содержимого верифицированных записей CDS или CDNSKEY из дочерней зоны;
- В nsupdate и rndc добавлены опции -4 и -6 для принудительного использования только IPv4 или IPv6;
- Добавлена опция new-zones-directory, позволяющая сохранять параметры конфигурации для зон, добавленных при помощи команды "rndc addzone" в область вне рабочей директории;
- Добавлена поддержка режима EDNS TCP Keepalive (RFC 7828), обеспечивающего согласование соединения для продолжительных TCP-сеансов, не требующих установки отдельного соединения для каждого запроса;
- Добавлена поддержка режима EDNS Padding option (RFC 7830), обеспечивающего добавочное заполнение пакетов для запросов через шифрованные каналы связи;
- Реализована команда "named-checkconf -l" для вывода списка зон, указанных в named.conf;
- По умолчанию вместо /dev/random для генерации случайных чисел теперь вызываются соответствующие функции криптографических библиотек (например, OpenSSL), что решает проблемы с недостатком энтропии при запуске в виртуальных окружениях. Для отмены данного поведения требуется пересборка с опцией "--disable-crypto-rand";
- Добавлена команда "rndc managed-keys destroy" для отключения всех доверительных привязок DNSSEC и очистки базы ключей (например, можно использовать для реинициализации в исходное состояние после первого запуска или экспериментов);
- Проведена чистка неактуальных компонентов: удалены lwresd и liblwres, отключен сервис DLV (DSC DNSSEC Lookaside Validation), прекращена поддержка платформ Windows XP и Windows 2003, запрещено использование dnssec-keygen для генерации HMAC-ключей для TSIG-аутентификации (нужно использовать tsig-keygen), ключи HMAC-MD5 отнесены к категории нерекомендованых (по умолчанию теперь генерируются HMAC-SHA256);
- Отключена возможность запуска named, если рабочая директория (путь, указанный через опцию directory) или директория с генерируемыми ключами (managed-keys-directory) недоступны на запись для пользователя, под которым выполняется named.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.