После полутора лет разработки представлен релиз кэшируюшего DNS-сервера PowerDNS Recursor 4.1, отвечающего за рекурсивное преобразование имён. PowerDNS Recursor построен на одной кодовой базе с PowerDNS Authoritative Server, но рекурсивный и авторитетный DNS-серверы PowerDNS развиваются в рамках разных циклов разработки и выпускаются в форме отдельных продуктов. Код проекта распространяется под лицензией GPLv2. В новой версии устранены все замечания в области поддержки стандартов, связанных с обработкой DNS-пакетов с флагами EDNS. В старых версиях PowerDNS Recursor до 2016 года практиковалось игнорирование пакетов с не поддерживаемыми флагами EDNS, без отправки ответа в старом формате, отбрасывая флаги EDNS, как того требует спецификация. Ранее подобное нестандартное поведение поддерживалось в BIND в форме обходного манёвра, но в рамках проведённой в феврале инициативы DNS flag day, разработчики DNS-серверов приняли решение отказаться от данного хака. В PowerDNS основные проблемы в обработке пакетов с EDNS были устранены ещё в 2017 году в выпуске 4.1, а в выпущенной в 2016 году ветке 4.0 всплывали лишь отдельные несовместимости, возникающие при определённом стечении обстоятельств и в общем виде не мешающие нормальной работе. В PowerDNS Recursor 4.2, как и в BIND 9.14, удалены обходные пути поддержки авторитетных серверов, некорректно отвечающих на запросы с флагами EDNS. До сих пор, если после отправки запроса с флагами EDNS через определённый промежуток времени не поступал ответ, DNS-сервер считал, что расширенные флаги не поддерживаются и отправлял повторный запрос без флагов EDNS. Отныне данное поведение отключено, так как наличие подобного кода приводило к увеличению задержек из-за повторной отправки пакетов, повышению нагрузки на сеть и неоднозначности при отсутствии ответа из-за сетевых сбоев, а также мешало внедрению основанных на EDNS возможностей, таких как применение DNS Cookies для защиты от DDoS-атак. В рамках планируемого в следующем году мероприятия DNS flag day 2020 внимание будет сфокусировано на решениипроблем с IP-фрагментацией при обработке DNS-сообщений большого размера. В рамках инициативы планируется увеличить рекомендованные размеры буферов для EDNS до значений на уровне 1200 байт, а также перевести обработку запросов по TCP в разряд обязательно поддерживаемых на серверах. Сейчас обязательна поддержка обработки запросов по UDP, а TCP желателен, но не обязателен для работы (стандарт предписывает наличие возможности отключения TCP). Предлагается удалить из стандарта опцию отключения TCP и стандартизировать переход от отправки запроcов по UDP к применению TCP в случаях, когда установленного размера буфера EDNS недостаточно. Предложенные в рамках инициативы изменения избавят от путаницы с выбором размера буфера EDNS и решат проблему с фрагментацией больших UDP-сообщений, обработка которых нередко приводит к потере пакетов и таймаутам на стороне клиента. На стороне клиента размер буфера EDNS будет постоянным, а большие ответы сразу будут отправляться клиенту по TCP. Исключение отправки больших сообщений по UDP также позволит блокировать атаки по отравлению кэша DNS, основанные на манипуляции фрагментированными UDP-пакетами (при разбиении на фрагменты, второй фрагмент не включает заголовок с идентификатором, поэтому может быть подделан для чего достаточно только чтобы совпадала контрольная сумма). В PowerDNS Recursor 4.2 учтены проблемы с большими UDP-пакетами и осуществлён переход на использование размера буфера EDNS (edns-outgoing-bufsize) в 1232 байт, вместо ранее применявшегося лимита в 1680 байт, что должно существенно снизить вероятность потери UDP-пакетов. Значение 1232 выбрано, так как оно является максимумом, при котором размер DNS-ответа с учётом IPv6 укладывается в минимальное значение MTU (1280). До 1232 также уменьшено значение параметра truncation-threshold, отвечающего за обрезание ответов клиенту. Другие изменения в PowerDNS Recursor 4.2:
Проект PowerDNS также объявил о переходе на шестимесячный цикл разработки, в соответствии с которым следующий значительный релиз PowerDNS Recursor 4.3 ожидается в январе 2020 года. Обновления для значительных выпусков будут формироваться в течение года, после чего ещё полгода будут выпускаться исправления уязвимостей. Таким образом поддержка ветки PowerDNS Recursor 4.2 продлится до января 2021 года. Аналогичные изменения цикла разработки приняты для продукта PowerDNS Authoritative Server, выпуск 4.2 которого ожидается в ближайшее время. Основные особенности PowerDNS Recursor:
| |