Iniciativa DNS flag day 2020 pro řešení problémů s fragmentací a podporou TCP

Dnes se několik významných DNS služeb a výrobců DNS serverů zúčastní společného podniku DNS flag day 2020, jehož cílem je zaměřit pozornost na řešení problémech pro IP fragmentaci při zpracování velkých DNS zpráv. Toto je druhá taková akce, loni byl "DNS flag day" zaměřen na správné zpracování EDNS dotazů.

Účastníci iniciativy DNS flag day 2020 vyzývají k uzamčení doporučených velikostí bufferů pro EDNS na úroveň 1232 bytů (velikost MTU 1280 minus 48 bytů pro hlavičky), a také přeřadit zpracování dotazů přes TCP mezi nezbytně podporované na serverech. V RFC 1035 je povinně označena pouze podpora zpracování dotazů přes UDP, zatímco TCP je uvedeno jako žádoucí, ale nikoli nezbytné pro fungování. Nové RFC 7766 a RFC 5966 jasně řadí TCP mezi nezbytné funkce potřebné pro správné fungování DNS. V rámci probíhající iniciativy se navrhuje urychlit přechod od odesílání dotazů přes UDP k používání TCP v případech, kdy je doporučená velikost bufferu EDNS nedostatečná.

Navrhované změny odstraní zmatek při výběru velikosti bufferu EDNS a vyřeší problém s fragmentací 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 bufferu EDNS konstantní a velké odpovědi budou okamžitě odeslány klientovi přes TCP. Vyloučení odesílání velkých zpráv přes UDP také vyřeší problémy s odpadem velkých paketů na některých firewallech a 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).

Od dnešního dne se účastnící této iniciativy DNS, včetně CloudFlare, Quad 9, Cisco (OpenDNS) a Google, postupně změní velikost EDNS bufferu z 4096 na 1232 bajtů na svých DNS serverech (změna EDNS se bude rozprostírat na 4-6 týdnů a s časem se bude týkat stále většího počtu dotazů). Odpovědi na UDP dotazy, které se nevejdou do nového omezení, budou zasílány přes TCP. Výrobci DNS serverů, včetně BIND, Unbound, Knot, NSD a PowerDNS, vydají aktualizace se změnou výchozí velikosti EDNS bufferu z 4096 na 1232 bajtů.

Nakonec zaváděné změny mohou vést k problémům s resolvováním při přístupu k DNS serverům, jejichž odpovědi přes UDP překračují 1232 bajtů, a které nemohou poslat odpověď přes TCP. Experiment provedený Googlem ukázal, že změna velikosti EDNS bufferu prakticky nemá vliv na úroveň selhání — při bufferu 4096 bajtů je počet zkrácených UDP dotazů 0,345 %, a počet nedosažitelných opakovaných odpovědí přes TCP 0,115 %. Při bufferu 1232 bajtů jsou tyto ukazatele 0,367 % a 0,116 %. Převod podpory TCP na povinné schopnosti DNS povede k problémům při interakci s přibližně 0,1 % DNS serverů. Bylo poznamenáno, že za současných podmínek bez TCP jsou výkon těchto serverů již tak nestabilní.

Správci autoritativních (authoritative) DNS serverů by měli zajistit, aby jejich server odpovídal přes TCP na síťovém portu 53 a tento TCP port nebyl blokován firewallem. Autoritativní DNS server také nesmí posílat UDP odpovědi, jejichž velikost přesahuje
požadovanou velikost EDNS bufferu. Na samotném serveru by měla být nastavena velikost EDNS bufferu na 1232 bajtů. K resolverům se kladou zhruba stejné požadavky — povinná možnost odpovědi přes TCP, povinná podpora opakovaných dotazů přes TCP při získání zkrácené UDP odpovědi a nastavení EDNS bufferu na 1232 bajtů.

Za nastavení velikosti EDNS bufferu v různých DNS serverech odpovídají následující parametry:

  • BIND

    options {
    edns-udp-size 1232;
    max-udp-size 1232;
    };

  • Knot DNS

    max-udp-payload: 1232

  • Knot Resolver

    net.bufsize(1232)

  • PowerDNS Authoritative

    udp-truncation-threshold=1232

  • PowerDNS Recursor

    edns-outgoing-bufsize=1232
    udp-truncation-threshold=1232

  • Unbound

    edns-buffer-size: 1232

  • NSD

    ipv4-edns-size: 1232
    ipv6-edns-size: 1232

    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