The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск кэшируюшего DNS-сервера PowerDNS Recursor 4.6.0

20.12.2021 12:26

Доступен релиз кэшируюшего DNS-сервера PowerDNS Recursor 4.6, отвечающего за рекурсивное преобразование имён. PowerDNS Recursor построен на одной кодовой базе с PowerDNS Authoritative Server, но рекурсивный и авторитетный DNS-серверы PowerDNS развиваются в рамках разных циклов разработки и выпускаются в форме отдельных продуктов. Код проекта распространяется под лицензией GPLv2.

Сервер предоставляет средства для удалённого сбора статистики, поддерживает мгновенный перезапуск, имеет встроенный движок для подключения обработчиков на языке Lua, полноценно поддерживает DNSSEC, DNS64, RPZ (Response Policy Zones), позволяет подключать чёрные списки. Имеется возможность записи результатов резолвинга в виде файлов зон BIND. Для обеспечения высокой производительности применяются современные механизмы мультиплексирования соединений во FreeBSD, Linux и Solaris (kqueue, epoll, /dev/poll), а также высокопроизводительный парсер DNS-пакетов, способный обрабатывать десятки тысяч параллельных запроcов.

В новой версии:

  • Добавлена функция "Zone to Cache", позволяющая периодически извлекать DNS-зону и подставлять её содержимое в кэш, для того, чтобы кэш всегда был в "горячем" состоянии и содержал связанные с зоной данные. Функция может использоваться с любым типом зон, включая корневые. Извлечение зоны может выполняться при помощи DNS AXFR, HTTP, HTTPS или через загрузку из локального файла.
  • Предоставлена возможность сброса записей из кэша при поступлении входящих notify-запросов.
  • Добавлена поддержка шифрования обращений к DNS-серверам при помощи DoT (DNS over TLS). По умолчанию DoT включается при указании для DNS Forwarder порта 853 или при явном перечислении DNS-серверов через параметр dot-to-auth-names. Проверка сертификатов пока не выполняется, как и автоматическое переключение на DoT при его поддержке DNS-сервером (указанные возможности будут включены после утверждения комитетом по стандартизации).
  • Переписан код для установки исходящих TCP-соединений, добавлена возможность повторного использования соединений. Для повторного использования соединений TCP (и DoT) соединения теперь не закрываются сразу после обработки запроса, а на какое-то время оставляются открытыми (поведение регулируется настройкой tcp-out-max-idle-ms).
  • Расширен диапазон собираемых и экспортируемых метрик со статистикой и информацией для систем мониторинга.
  • Добавлена экспериментальная функция трассировки событий (Event Tracing), позволяющая получить детальные сведения о времени выполнения каждой стадии резолвинга.

  1. Главная ссылка к новости (https://blog.powerdns.com/2021...)
  2. OpenNews: Выпуск PowerDNS Authoritative Server 4.5
  3. OpenNews: Выпуск DNS-серверов BIND 9.16.8 и PowerDNS Recursor 4.4.0
  4. OpenNews: Инициатива DNS flag day 2020 для решения проблем с фрагментацией и поддержкой TCP
  5. OpenNews: Крупнейшие DNS-сервисы и серверы прекратят поддержку проблемных реализаций DNS
  6. OpenNews: В BIND, Unbound и PowerDNS устранены уязвимости
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/56380-powerdns
Ключевые слова: powerdns, dns
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:52, 20/12/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     ....ответы скрыты (2)

  • 1.5, Брат Анон (ok), 15:44, 20/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Не, прекурсор гораздо интереснее!))
     
     
  • 2.22, Аноним (22), 04:26, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Угу, товарищу майору прекурсоры тоже больше нравятся.
     
     
  • 3.23, Брат Анон (ok), 11:23, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Угу, товарищу майору прекурсоры тоже больше нравятся.

    Нет. Товарищу майору вообще пофигу. Возьмёт черенок от лопаты и скажет, что это прекурсор. Что самое смешное -- так оно и будет.

     

  • 1.6, Гость (??), 16:51, 20/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Достали его частые "Failed to update . records, got an exception: Too much time waiting for .|NS", лучше взять dnsdist или dnsmask c нескольким публичными и/или провайдерским dns, гораздо надежней и быстрей!
     
     
  • 2.18, Аноним (18), 21:48, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не встречал. dnsdist рук этих же ребят кстати.
     
     
  • 3.20, Гость (??), 22:27, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    dnsdist интересная поделка, только жрущий +30мб каждый newServer немного огорчает!
     
     
  • 4.30, Sw00p aka Jerom (?), 23:57, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    на конфиг взлянуть можно? и желательно какая версия
     
     
  • 5.39, Гость (??), 12:13, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дело не в конфиге, а количестве бэкэндов (newServer) в нем, просто добавление каждого сразу занимает около 30 мегабайт, версия 1.6.1. Из-за этого на небольших vds, сильно не разгуляешься с балансировкой.
     
     
  • 6.48, Sw00p aka Jerom (?), 16:04, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Дело не в конфиге, а количестве бэкэндов (newServer) в нем, просто добавление
    > каждого сразу занимает около 30 мегабайт, версия 1.6.1. Из-за этого на
    > небольших vds, сильно не разгуляешься с балансировкой.

    https://github.com/PowerDNS/pdns/issues/9372

    вот такой багрепорт был, похоже на вашу ситуацию

     
  • 4.31, Sw00p aka Jerom (?), 23:59, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https://dnsdist.org/advanced/tuning.html#memory-usage

    раздел Memory usage, можно посчитать

     
     
  • 5.33, Аноним (33), 01:05, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Подтверждаю наблюдения пользователя Гость, жрет память оно как не в себя.

    setMaxUDPOutstanding(10240) -- default 65535
    setMaxTCPQueuedConnections(1000) -- default 10000
    setMaxTCPClientThreads(4) -- default 10
    setMaxCachedTCPConnectionsPerDownstream(4) -- default 10
    setRingBuffersSize(256, 4) -- default 10000, 10

    Вообще никак не повлияло на потребление (ну, может, ±1 Мб, на фоне 200 незаметно).

     
     
  • 6.38, Sw00p aka Jerom (?), 08:28, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    судя по ченджлогу в бета версии 1.7.0 куча фиксов с течкой памяти и расходами
     
     
  • 7.40, Аноним (33), 12:18, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Протестировали мы 1.7.0. В определенных конфигурациях, если апстримный сервер был up, а потом стал down, то dnsdist прекращает healthcheck-и и считает этот сервер вечно down, даже если он поднялся.
    Остались на 1.6.1.
     
     
  • 8.47, Sw00p aka Jerom (?), 15:53, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    странная ситуация, нужны подробности, ибо можно сказать, что хилзчек в этой верс... текст свёрнут, показать
     
  • 7.41, Гость (??), 12:19, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    1.6 не замечена значительными утечками, может связано с внедрением DoT и DoH на бэкенде
     
     
  • 8.45, Sw00p aka Jerom (?), 15:47, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    там не обязательно из-за утечек, судя по ченджлогам там всякие импрувы reduce me... текст свёрнут, показать
     

  • 1.7, timur.davletshin (ok), 16:51, 20/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В современном странном мире эффективность кэширования DNS очень сильно упала из-за безумно низких значений TTL в несколько секунд. Всё настолько плохо, что даже APNIC жалуется — https://blog.apnic.net/2019/11/12/stop-using-ridiculously-low-dns-ttls/
     
     
  • 2.9, Гость (??), 17:19, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Несколько минут - час простоя это не плохо, зато эффективность кэширования будет хорошая?
     
     
  • 3.10, timur.davletshin (ok), 17:26, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Откуда час простоя? Простоя чего? Зачем вы постоянно перенастраиваете DNS? Для балансировки такой низкий TTL точно не нужен.
     
     
  • 4.11, Гость (??), 17:33, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все просто: разные независимые каналы с разными ip, проверяем их каждую минуту, если проблемы, убираем отдачу записи, восстанавливается - возвращаем!
     
     
  • 5.12, timur.davletshin (ok), 17:44, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы простите, но я ничего не понял из вашего тезиса.
     
     
  • 6.19, YetAnotherOnanym (ok), 22:16, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно, речь идёт о ЦОДе, подключённом к нескольким провайдерам. При падении линка приходится переключаться на другого провайдера, соответственно, надо менять DNS-записи на IP-адреса этого провайдера.
     
     
  • 7.24, Аноним (33), 11:49, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если уж есть свои серваки и деньги на аренду стоек, то арендовать автономку вообще не проблема (20 к/мес).

    Это как купить машину и заливать в бачок омывателя воду из канавы, потому что на нормальную жидкость денег жалко.

     
     
  • 8.27, YetAnotherOnanym (ok), 13:35, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Экий ты резвый чужими деньгами распоряжаться А если это веб-сервер, почтовик ... текст свёрнут, показать
     
     
  • 9.34, Аноним (33), 01:14, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Суровый ЦОД, однако Какое отношение IP-адрес отправителя имеет к DKIM Открытые... текст свёрнут, показать
     
     
  • 10.42, YetAnotherOnanym (ok), 12:28, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Перепутал, да, SPF, конечно Шклерож, чо Сайт, на котором всё и так общедосту... текст свёрнут, показать
     
     
  • 11.43, Аноним (43), 14:54, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Совет дня в SPF можно указывать несколько адресов ... текст свёрнут, показать
     
     
  • 12.46, YetAnotherOnanym (ok), 15:51, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы при заражении офисного компа спам валился с гейта с валидным SPF ... текст свёрнут, показать
     
  • 8.29, _ (??), 23:22, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну то есть ты хочешь поговорить о том чего ни разу и близко не видел -D Hy Ok ... текст свёрнут, показать
     
  • 5.14, Аноним (43), 17:56, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >  Все просто: разные независимые каналы с разными ip, проверяем их каждую минуту, если проблемы, убираем отдачу записи, восстанавливается - возвращаем!

    Более того, в PowerDNS Authoritative (не сабж, а его родственник) поддерживаются LUA-записи с функциями ifurlup и ifportup, которые используют фоновые проверки доступности каждые 5 секунд.

     
  • 4.36, mikhailnov (ok), 01:18, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы, если хост упадёт, в А или иной записи поменять IP-адрес быстро
     
  • 2.28, Аноним (28), 23:21, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Поддерживаю, с ttl в минуту записи в кэше долго не живут. Заметил что при обращение на прямую к корневому днс очень долго отвечает, а тот же гугл отдаёт быстро, у cf такая же проблема. Гугл кладёт на все эти TTL?
     
     
  • 3.37, Аноним (33), 01:27, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Есть как минимум две фичи, позволяющие не тупить даже на малых TTL
    - prefetch: периодически просматривать кэш, и для часто запрашиваемых записей с истекающим TTL выполнять фоновое обновление раньше, чем истечет TTL.
    - serve-stale: если RR в данный момент не резолвится, отдавать из кэша, даже если TTL уже истек.

    Ну и да, можно просто задать минимальный TTL, "кладя" на все TTL ниже этого значения.

     

  • 1.8, Аноним (8), 16:55, 20/12/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     

  • 1.13, Аноним (43), 17:54, 20/12/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Делать prefetch, как в Unbound, видимо, не собираются.

    > Добавлена функция "Zone to Cache", позволяющая периодически извлекать DNS-зону и подставлять её содержимое в кэш, для того, чтобы кэш всегда был в "горячем" состоянии и содержал связанные с зоной данные.

    Работает только для "своих" зон. Какой-нибудь гугл AXFR кому попало не отдаст.
    А вот prefetch на все зоны работает одинаково.

     
     
  • 2.16, Аноним (16), 18:53, 20/12/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пидро-зум-евается, что эта херня будет стоять *перед* авторитативным сервером и заниматься кэшированием его ответов, а авторитативный сервер для всего, что ломится на 127.0.0.1 разрешает axfr.

    Вобщем, учитывая, то, насколько криво в своё время работал кэш этих всех powerdns-поделок при наличии ACL, лучше наверно использовать unbound.

    Во всяком случае unbound работает согласно стандартам и прозрачно. Да и кэш у него как-то поприятнее устроен. И префетч есть, и DoH, с валидацией ssl и подписей dnssec и свои зоны из bind-like файлов он умеет раздавать и чужие зоны частично переписывать и дополнять своими записями тоже могёт.

    Единственное, чем может похвастать recursor - не самым дурным lua-апи. Оно и быстрое и кое-чего может. Луа, как язык, конечно, максимально убог своими средствами и синтаксисом, но зато быстрый, пока за него не берутся питонисты и яваскрипткиддисы.

     
     
  • 3.21, Гость (??), 00:17, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    rec перед auth это просто вариант (не лучший и не всегда удобный) перехода когда auth перестал пропускать рекурсивные запросы, auth вполне самостоятелен и имеет свой кэш.
     
     
  • 4.25, Аноним (33), 11:55, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >  rec перед auth это просто вариант (не лучший и не всегда удобный) перехода когда auth перестал пропускать рекурсивные запросы

    Скорее, когда есть корпоративные резолверы, которым нужно быстро отдавать записи для корпоративного домена (возможно, даже внутреннего).
    Но у нас с этим и Unbound прекрасно справляется, и костыли типа Zone to Cache только помешали бы, потому что на auth некоторые особо ответственные записи генерируются на лету Lua-скриптами, которые делают health check (о чем уже писали выше по обсуждению).

    > auth вполне самостоятелен и имеет свой кэш.

    Ага, обычно даже два (query и packet).
    Ставить перед ним рекурсор "просто так" - вообще бессмысленно.
    Если не хватает производительности - сделать больше потоков, не хватает железа - сделать балансировку через dnsdist.

     
     
  • 5.32, Sw00p aka Jerom (?), 00:11, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >сделать балансировку через dnsdist.

    так и надо, ставится dnsdist который разделяет рекурсивные запросы во внешний мир и рекурсивные запросы на внутренний нейм сервер. Но можно и тем же unbound-дом понасоздавать всяких local-zone

     
     
  • 6.35, Аноним (33), 01:18, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да можно и не через local-zone.

    В Unbound есть stub-zone, когда он идет за зоной сразу на заданные серваки, минуя рекурсивный процесс для вышестоящих зон (и, в отличие от forward-zone, запрашивает их без флага RD, так что даже самый придирчивый auth сервер не будет ругаться).

     
  • 6.49, Аноним (49), 12:46, 23/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    local-zone под нагрузкой 300-400 запросов в секунду дают серьезную деградацию производительности. Споткнулись на 1.13.0. Применение stub-zone ситуацию выплавило, на чем и продолжаем жить.
     
  • 3.26, Аноним (33), 12:01, 21/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >  Пидро-зум-евается, что эта херня будет стоять *перед* авторитативным сервером и заниматься кэшированием его ответов, а авторитативный сервер для всего, что ломится на 127.0.0.1 разрешает axfr.

    Типа того. Многие до сих пор не могут смириться, что из auth убрали поддержку рекурсии.
    https://doc.powerdns.com/authoritative/guides/recursion.html
    В таких сценариях зайдет нормально.

    > Во всяком случае unbound работает согласно стандартам и прозрачно. Да и кэш у него как-то поприятнее устроен. И префетч есть, и DoH, с валидацией ssl и подписей dnssec и свои зоны из bind-like файлов он умеет раздавать и чужие зоны частично переписывать и дополнять своими записями тоже могёт.

    Все так. PDNS recursor на его фоне смотрится как игрушка.

     
  • 2.44, Аноним (43), 14:57, 22/12/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >  Делать prefetch, как в Unbound, видимо, не собираются.

    Попутал, все-таки сделали (refresh-on-ttl-perc) в 4.5.0. А вот serve stale (AKA serve expired) - нет.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру