DNS flag day-initiativet 2020 för att lösa problem med fragmentering och stöd för TCP

Idag kommer flera stora DNS-tjÀnster och tillverkare av DNS-servrar att genomföra ett gemensamt evenemang DNS flag day 2020, som syftar till att fokusera uppmÀrksamheten pÄ lösningen av problem med IP-fragmentering vid hantering av stora DNS-meddelanden. Detta Àr det andra liknande evenemanget, förra Äret var "DNS flag day" inriktad pÄ korrekt hantering av EDNS-förfrÄgningar.

Deltagarna i DNS flag day-initiativet 2020 uppmanar att faststÀlla de rekommenderade bufferstorlekarna för EDNS till nivÄer pÄ 1232 byte (MTU-storlek pÄ 1280 minus 48 byte för rubriker), och att översÀtta hanteringen av förfrÄgningar över TCP till en obligatorisk funktion pÄ servrar. I RFC 1035 Àr endast stöd för hantering av förfrÄgningar via UDP obligatoriskt, och TCP anges som önskvÀrt men icke obligatoriskt för driften. Nya RFC 7766 och RFC 5966 omfattar tydligt TCP som en av de obligatoriska funktionerna som krÀvs för korrekt DNS-funktion. Inom ramen för det genomförda initiativet föreslÄs att övergÄngen frÄn att skicka förfrÄgningar via UDP till att anvÀnda TCP tvingas i de fall dÀr den angivna bufferstorleken för EDNS Àr otillrÀcklig.

De föreslagna förÀndringarna kommer att eliminera förvirringen med att vÀlja bufferstorleken för EDNS och lösa problemet med fragmentering av stora UDP-meddelanden, vars hantering ofta leder till paketförlust och tidsgrÀnser pÄ klientsidan. PÄ klientsidan kommer bufferstorleken för EDNS att vara konstant, och stora svar kommer att skickas till klienten via TCP omedelbart. Undantaget för att skicka stora meddelanden via UDP kommer ocksÄ att lösa problem med avvisning av stora paket pÄ vissa brandvÀggar och möjliggöra blockering av attacker mot DNS-cacheförgiftning som Àr baserade pÄ manipulation av fragmenterade UDP-paket (vid fragmentering, inkluderas inte rubriken med identifierare i det andra fragmentet, vilket gör att det kan förfalskas sÄ lÀnge kontrollsumman stÀmmer).

FrÄn och med idag kommer de DNS-leverantörer som deltar i initiativet, inklusive CloudFlare, Quad 9, Cisco (OpenDNS) och Google, gradvis att förÀndras storleken pÄ EDNS-bufferten Àndras frÄn 4096 till 1232 byte pÄ sina DNS-servrar (Àndringen av EDNS kommer att strÀcka sig över 4-6 veckor och gradvis omfatta fler och fler förfrÄgningar). Svar pÄ UDP-förfrÄgningar som inte passar inom den nya begrÀnsningen kommer att skickas via TCP. Tillverkare av DNS-servrar, inklusive BIND, Unbound, Knot, NSD och PowerDNS kommer att slÀppa uppdateringar som Àndrar den standard EDNS-buffertstorleken frÄn 4096 till 1232 byte.

I slutĂ€ndan kan de införda Ă€ndringarna leda till problem med upplösning nĂ€r man kontaktar DNS-servrar vars DNS-svar över UDP överstiger 1232 byte och som inte kan skicka svar via TCP. En experiment som utfördes av Google visade att Ă€ndringen av EDNS-buffertstorleken praktiskt taget inte pĂ„verkar felprocenten — vid en buffert pĂ„ 4096 byte Ă€r andelen avkortade UDP-förfrĂ„gningar 0.345 %, medan antalet ouppnĂ„eliga svar via TCP Ă€r 0.115 %. Vid en buffert pĂ„ 1232 byte Ă€r dessa siffror 0.367 % och 0.116 %. ÖvergĂ„ngen till obligatorisk stöd för TCP i DNS-funktioner kommer att orsaka problem vid interaktion med cirka 0.1 % av DNS-servrarna. Det noteras att under moderna förhĂ„llanden, utan TCP, redan i sig gör dessa servrars funktion instabil.

Administratörer av auktoritativa DNS-servrar bör sÀkerstÀlla att deras server svarar via TCP pÄ nÀtverksport 53 och att denna TCP-port inte blockeras av en brandvÀgg. En auktoritativ DNS-server ska heller inte skicka UDP-svar vars storlek överskrider
den begĂ€rda EDNS-buffertstorleken. PĂ„ servern sjĂ€lv bör EDNS-buffertstorleken stĂ€llas in pĂ„ 1232 byte. Resolverare stĂ€lls inför ungefĂ€r samma krav — obligatoriskt möjligheten att svara via TCP, obligatorisk stöd för att skicka omförfrĂ„gningar via TCP vid mottagande av avkortat UDP-svar och instĂ€llning av EDNS-bufferten till 1232 byte.

Följande parametrar ansvarar för instÀllningen av EDNS-buffertstorleken pÄ olika DNS-servrar:

  • 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

    KĂ€lla: opennet.ru

  • Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster