Рэліз PowerDNS Recursor 4.2 і ініцыятыва DNS flag day 2020

Пасля паўтара года распрацоўкі прадстаўлены рэліз кэшуе DNS-сервера Рэсурс PowerDNS 4.2, які адказвае за рэкурсіўнае пераўтварэнне імёнаў. 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, як і ў ЗВЯЗАНЫ 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:

  • Дададзена падтрымка механізму XPF (X-Proxied-For), уяўлялага сабой эквівалент HTTP-загалоўка X-Forwarded-For для DNS, які дазваляе перадаць звесткі аб IP-адрасе і нумары порта першапачатковага ініцыятара запыту, перанакіраванага праз прамежкавыя проксі і балансавальнікі нагрузкі (напрыклад dnsdist). Для ўключэння XPF прадугледжаны опцыі.xpf-allow-from»І«xpf-rr-code";
  • Палепшана падтрымка EDNS-пашырэння Client Subnet (ECS), якая дазваляе перадаваць у DNS-запытах аўтарытэтнаму DNS-серверу звесткі аб падсетцы, з якой быў атручаны які транслюецца па ланцужку першапачатковы запыт (дадзеныя аб зыходнай падсетцы кліента неабходныя для эфектыўнай працы сетак дастаўкі кантэнту). У новым выпуску дададзены наладкі для выбарачнага кантролю за прымяненнем EDNS Client Subnet: «ecs-add-for» са спісам сеткавых масак, для якіх IP будзе выкарыстаны ў ECS у выходных запытах. Для адрасоў, якія не падпадаюць пад названыя маскі, будзе выкарыстаны агульны адрас, указаны ў дырэктыве.ecs-scope-zero-address“. Праз дырэктыву «use-incoming-edns-subnet» можна вызначыць падсеткі, якія ўваходзяць запыты з запоўненымі значэннямі ECS з якіх не будуць замяняцца;
  • Для сервераў, якія апрацоўваюць вялікую колькасць запытаў у секунду (больш за 100 тысяч), прапанавана дырэктыва.distributor-threads", вызначальная колькасць патокаў для прыёму ўваходзяць запытаў і іх размеркавання паміж працоўнымі патокамі (мае сэнс толькі пры выкарыстанні рэжыму "pdns-distributes-queries=yes").
  • Дададзена настройка public-suffix-list-file для вызначэння ўласнага файла са спісам публічных суфіксаў даменаў, у якіх карыстачы могуць рэгістраваць свае паддамены, замест убудаванага ў PowerDNS Recursor спісу.

Праект PowerDNS таксама аб'явіў аб пераходзе на шасцімесячны цыкл распрацоўкі, у адпаведнасці з якім наступны значны рэліз PowerDNS Recursor 4.3 чакаецца ў студзені 2020 года. Абнаўленні для значных выпускаў будуць фармавацца на працягу года, пасля чаго яшчэ паўгода будуць выпускацца выпраўленні ўразлівасцяў. Такім чынам падтрымка галіны PowerDNS Recursor 4.2 працягнецца да студзеня 2021 гады. Аналагічныя змены цыклу распрацоўкі прыняты для прадукта PowerDNS Authoritative Server, выпуск 4.2 якога чакаецца хуткім часам.

Асноўныя асаблівасці PowerDNS Recursor:

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

Крыніца: opennet.ru

Дадаць каментар