Uvolnění PowerDNS Recursor 4.2 a iniciativa DNS Flag Day 2020

Po roce a půl vývoje byl představen uvolnění kešujícího DNS serveru PowerDNS Recursor 4.2, odpovídající za rekurzivní přetváření názvů. PowerDNS Recursor je postaven na jedné kódové základně s PowerDNS Authoritative Server, ale rekurzivní a autoritativní DNS servery PowerDNS se vyvíjejí v rámci různých vývojových cyklů a jsou vydávány jako samostatné produkty. Kód projektu distribuováno pod licencí GPLv2.

V nové verzi byly odstraněny všechny poznámky týkající se zpracování DNS paketů s volbami EDNS. Ve starších verzích PowerDNS Recursor před rokem 2016 byla běžná praxe ignorovat pakety s nepodporovanými volbami EDNS, aniž by se posílala odpověď ve starém formátu, zatímco byly vyhazovány EDNS volby, jak to vyžaduje specifikace. Dříve toto nestandardní chování podporoval BIND jako obcházení, ale v rámci prováděné v únoru iniciativy DNS flag day, vývojáři DNS serverů se rozhodli vzdát se tohoto hacku.

V PowerDNS byly hlavní problémy při zpracování paketů s EDNS odstraněny již v roce 2017 ve vydání 4.1, zatímco v roce 2016 vydaná větev 4.0 vykazovala určité nekompatibility, které vznikaly za určitých okolností a obvykle nebránily normální funkci. V PowerDNS Recursor 4.2, stejně jako v BIND 9.14, byly odstraněny obcházení podpory autoritativních serverů, které nesprávně reagovaly na dotazy s volbami EDNS. Dosud, pokud po odeslání dotazu s volbami EDNS během určité doby nedorazila odpověď, DNS server považoval, že rozšířené volby nejsou podporovány, a odesílal opakovaný dotaz bez EDNS voleb. Toto chování bylo nyní deaktivováno, protože přítomnost takového kódu vedla k prodlením kvůli opakovanému odesílání paketů, zvyšování zátěže na síti a nejednoznačnosti v případě nedostatku odpovědi kvůli síťovým výpadkům, a také bránilo zavádění EDNS funkcí, jako je použití DNS Cookies na ochranu proti DDoS útokům.

V příštím roce bylo rozhodnuto uskutečnit akci DNS flag day 2020, jehož cílem je zaměřit pozornost na řešení problémech s IP fragmentací při zpracování velkých DNS zpráv. V rámci iniciativy plánuje stanovit doporučené velikosti bufferů pro EDNS na úroveň 1200 bajtů, a také přeřadit zpracování dotazů přes TCP jako obligatorně podporované na serverech. V současnosti je povinná podpora zpracování dotazů přes UDP, a TCP je žádoucí, ale není povinné pro fungování (standard předepsal možnost vypnout TCP). Navrhuje se odstranit z standardu možnost vypnutí TCP a standardizovat přechod od odesílání dotazů přes UDP k použití TCP v případech, kdy stanovená velikost bufferu EDNS nestačí.

Navrhované změny v rámci iniciativy odstraní zmatek při výběru velikosti buferu EDNS a vyřeší problém s fragmentací velkých UDP zpráv, jejichž zpracování často vede ke ztrátě paketů a časovým prodlevám na straně klienta. Na straně klienta bude velikost buferu EDNS konstantní a velké odpovědi budou okamžitě zasílány klientovi přes TCP. Vyloučení zasílání velkých zpráv přes UDP také umožní blokovat útokům utoky na DNS cache, založené na manipulaci s fragmentovanými UDP pakety (při fragmentaci druhý fragment neobsahuje hlavičku s identifikátorem, a proto může být falšován tak, aby byla známa pouze kontrolní suma).

Ve verzi PowerDNS Recursor 4.2 byly zohledněny problémy s velkými UDP pakety a došlo k přechodu na používání velikosti buferu EDNS (edns-outgoing-bufsize) o velikosti 1232 bajtů, místo dříve používaného limitu 1680 bajtů, což by mělo významně snížit pravděpodobnost ztráty UDP paketů. Hodnota 1232 byla zvolena, protože je maximem, při kterém velikost DNS odpovědi včetně IPv6 odpovídá minimální hodnotě MTU (1280). Také byla snížena hodnota parametru truncation-threshold, který odpovídá za zkracování odpovědí klientovi.

Další změny ve verzi PowerDNS Recursor 4.2:

  • Byla přidána podpora mechanismu XPF (X-Proxied-For), což je ekvivalent HTTP hlavičky X-Forwarded-For pro DNS, umožňující předat informace o IP adrese a portu původního iniciátora požadavku, který byl přesměrován přes mezilehlé proxy a vyvažovače zátěže (např. dnsdist). Pro aktivaci XPF jsou k dispozici možnosti "xpf-allow-from“ a „xpf-rr-code«;
  • Byla vylepšena podpora rozšíření EDNS Client Subnet (ECS), která umožňuje předávat v DNS požadavcích autoritativnímu DNS serveru informace o podsíti, ze které byl odeslán původní požadavek (data o výchozí podsíti klienta jsou nezbytná pro efektivní fungování sítí pro doručování obsahu). V této verzi byly přidány nastavení pro selektivní kontrolu nad aplikací EDNS Client Subnet: "ecs-add-for" se seznamem síťových masek, pro které bude IP použita v ECS v odchozích požadavcích. Pro adresy, které nespadají pod uvedené masky, bude použena společná adresa uvedená v direktivě "ecs-scope-zero-address". Pomocí direktivy "use-incoming-edns-subnet" lze definovat podsítě, z nichž příchozí požadavky se zaplněnými hodnotami ECS nebudou nahrazovány;
  • Pro servery zpracovávající velké množství požadavků za sekundu (více než 100 tisíc) byla navržena direktiva "distributor-threads«, určující počet vláken pro příjem příchozích požadavků a jejich rozdělení mezi pracovními vlákny (má smysl pouze při použití režimu «pdns-distributes-queries=yes«).
  • Přidáno nastavení public-suffix-list-file pro určení vlastního souboru s seznamem veřejných sufixů domén, ve kterých mohou uživatelé registrovat své subdomény, místo integrovaného seznamu v PowerDNS Recursor.

Projekt PowerDNS také oznámil přechod na šestiměsíční vývojový cyklus, podle kterého se očekává další významné vydání PowerDNS Recursor 4.3 v lednu 2020. Aktualizace pro významná vydání budou vyvíjena po celý rok, po kterém budou dalších šest měsíců vydávána opravy zranitelností. Tím pádem podpora větve PowerDNS Recursor 4.2 potrvá do ledna 2021. Podobné změny ve vývojovém cyklu byly přijaty pro produkt PowerDNS Authoritative Server, vydání 4.2, které se očekává v blízké době.

Hlavní vlastnosti PowerDNS Recursor:

  • Nástroje pro vzdálený sběr statistik;
  • Okamžité restartování;
  • Vestavěný engine pro připojení zpracovatelů v jazyce Lua;
  • Úplná podpora DNSSEC a DNS64;
  • Podpora RPZ (Response Policy Zones) a možnost definice černých seznamů;
  • Mechanizmy boje proti spoofingu;
  • Možnost zaznamenávat výsledky resolvování ve formě zónových souborů BIND.
  • Pro zajištění vysokého výkonu se používají moderní mechanismy multiplexerování připojení ve FreeBSD, Linuxu a Solaris (kqueue, epoll, /dev/poll), a také vysoce výkonný parser DNS paketů, schopný zpracovávat desítky tisíc paralelních požadavků.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster