Vydání PowerDNS Recursor 4.2 a iniciativa DNS flag day 2020

Po roce a půl vývoje prezentovány vydání serveru DNS do mezipaměti Zdroj PowerDNS 4.2, který je zodpovědný za rekurzivní překlad názvů. PowerDNS Recursor je postaven na stejné kódové základně jako PowerDNS Authoritative Server, ale PowerDNS rekurzivní a autoritativní DNS servery jsou vyvíjeny v různých vývojových cyklech a jsou vydávány jako samostatné produkty. Kód projektu distribuovány pod licencí GPLv2.

Nová verze odstraňuje všechny problémy související se zpracováním paketů DNS s příznaky EDNS. Ve starších verzích PowerDNS Recursor před rokem 2016 bylo praktikováno ignorování paketů s nepodporovanými příznaky EDNS, aniž by se odeslala odpověď ve starém formátu, přičemž příznaky EDNS byly zahozeny, jak to vyžaduje specifikace. Dříve bylo takové nestandardní chování podporováno v BIND formou řešení, ale v rámci provedl Únorové iniciativy Den příznaku DNS, se vývojáři DNS serverů rozhodli tento hack opustit.

V PowerDNS byly hlavní problémy při zpracování paketů pomocí EDNS opraveny již v roce 2017 ve verzi 4.1 a ve větvi 2016 vydané v roce 4.0 se objevily jednotlivé nekompatibility, které se vyskytly za určitých okolností a obecně nenarušovaly normální provoz. V PowerDNS Recursor 4.2, jako v ZÁVAZEK 9.14, odstranila zástupná řešení pro podporu autoritativních serverů, které nesprávně reagují na dotazy s příznaky EDNS. Až dosud platilo, že pokud po určité době po odeslání požadavku s příznaky EDNS nebyla přijata žádná odpověď, server DNS považoval rozšířené příznaky za nepodporované a odeslal druhý požadavek bez příznaků EDNS. Toto chování je nyní zakázáno, protože takový kód měl za následek zvýšené zpoždění kvůli opětovnému odesílání paketů, zvýšené zatížení sítě a nejednoznačnost při absenci odpovědi kvůli selhání sítě a také narušovalo implementaci funkcí založených na EDNS, jako je použití DNS cookies k ochraně před DDoS útoky.

Příští rok bylo rozhodnuto uspořádat akci Den vlajky DNS 2020navržený tak, aby se na něj zaměřil rozhodnutí проблем s fragmentací IP při zpracování velkých zpráv DNS. V rámci iniciativy je plánováno opravit doporučené velikosti vyrovnávací paměti pro EDNS na 1200 bajtů a překládat zpracování požadavků přes TCP v kategorii nezbytně podporované na serverech. Nyní je vyžadována podpora pro zpracování požadavků přes UDP a TCP je žádoucí, ale není vyžadován pro provoz (standard předepisuje možnost deaktivovat TCP). Navrhuje se odstranit možnost zakázat TCP ze standardu a standardizovat přechod z odesílání požadavků přes UDP na použití TCP v případech, kdy nastavená velikost EDNS bufferu nestačí.

Změny navrhované iniciativou odstraní zmatky ohledně volby velikosti EDNS bufferu a vyřeší problém fragmentace velkých UDP zpráv, jejichž zpracování často vede ke ztrátě paketů a timeoutům na straně klienta. Na straně klienta bude velikost vyrovnávací paměti EDNS konstantní a velké odpovědi budou okamžitě odeslány klientovi přes TCP. Zablokuje se také zamezení odesílání velkých zpráv přes UDP útoky o otravě mezipaměti DNS, založené na manipulaci s fragmentovanými UDP pakety (při rozdělení na fragmenty druhý fragment neobsahuje hlavičku s identifikátorem, takže může být zfalšován, k čemuž stačí jen spárovat kontrolní součet).

PowerDNS Recursor 4.2 řešil problémy s velkými UDP pakety a přešel k použití velikosti vyrovnávací paměti EDNS (edns-outgoing-bufsize) 1232 bajtů namísto dříve používaného limitu 1680 bajtů, což by mělo výrazně snížit možnost ztracených UDP paketů. Hodnota 1232 je zvolena, protože je to maximum, při kterém se velikost odpovědi DNS s přihlédnutím k IPv6 vejde do minimální hodnoty MTU (1280). Hodnota parametru truncation-threshold, který je zodpovědný za zkrácení odpovědí klientovi, byla také snížena na 1232.

Další změny v PowerDNS Recursor 4.2:

  • Přidána podpora mechanismu XPF (X-Proxied-For), což je ekvivalent DNS hlavičky HTTP X-Forwarded-For, která vám umožňuje předávat informace o IP adrese a čísle portu původního žadatele, předávané přes zprostředkující proxy a nástroje pro vyrovnávání zatížení (např. například dnsdist). Chcete-li povolit XPF, možnosti "xpf-allow-from"A"xpf-rr-kód";
  • Vylepšená podpora pro rozšíření EDNS Klientská podsíť (ECS), který umožňuje informace o podsíti, ze které byl původní dotaz otráven v DNS požadavku, na autoritativní DNS server (údaje o zdrojové podsíti klienta jsou nezbytné pro efektivní provoz sítí pro doručování obsahu). Nová verze přidává nastavení pro selektivní kontrolu nad používáním klientské podsítě EDNS: «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é neodpovídají zadaným maskám, se použije generická adresa uvedená v "ecs-scope-zero-address". Prostřednictvím směrniceuse-incoming-edns-subnet» můžete definovat podsítě, příchozí požadavky s vyplněnými hodnotami ECS, ze kterých nebudou nahrazeny;
  • Pro servery, které zpracovávají velké množství požadavků za sekundu (více než 100 tisíc), směrnice "distributor-závity", který určuje počet vláken pro příjem příchozích požadavků a jejich distribuci mezi pracovní vlákna (má smysl pouze při použití "pdns-distributes-queries=ano").
  • Přidáno nastavení public-suffix-list-file pro definování vlastního souboru seznam veřejných přípon domény, kde si uživatelé mohou zaregistrovat své subdomény namísto vestavěného seznamu PowerDNS Recursor.

Projekt PowerDNS také oznámil šestiměsíční vývojový cyklus, přičemž další hlavní vydání PowerDNS Recursor 4.3 se očekává v lednu 2020. Aktualizace pro hlavní verze budou zaváděny v průběhu roku, po kterých bude následovat dalších šest měsíců pro opravy zranitelnosti. Podpora pro větev PowerDNS Recursor 4.2 tedy potrvá do ledna 2021. Podobné změny vývojového cyklu byly přijaty pro produkt PowerDNS Authoritative Server, u kterého se očekává brzké vydání 4.2.

Klíčové vlastnosti PowerDNS Recursor:

  • Nástroje pro vzdálený sběr statistik;
  • Okamžitý restart;
  • Vestavěný engine pro připojení handlerů v jazyce Lua;
  • Plná podpora pro DNSSEC a DNS64;
  • Podpora RPZ (Response Policy Zones) a možnost definovat černé listiny;
  • Mechanismy proti falšování;
  • Schopnost zapisovat výsledky řešení jako soubory zóny BIND.
  • K zajištění vysokého výkonu se používají moderní mechanismy multiplexování připojení ve FreeBSD, Linuxu a Solarisu (kqueue, epoll, /dev/poll) a také vysoce výkonný analyzátor paketů DNS schopný zpracovat desítky tisíc paralelních dotazů.

Zdroj: opennet.ru

Přidat komentář