Iniciativa e ditës së flamurit DNS 2020 për të adresuar çështjet e fragmentimit dhe mbështetjes TCP

Sot, një numër shërbimesh të mëdha DNS dhe prodhues të serverëve DNS do të mbajnë një ngjarje të përbashkët Dita e flamurit DNS 2020projektuar për të përqendruar vëmendjen në vendimi problem me fragmentim IP gjatë përpunimit të mesazheve të mëdha DNS. Kjo është ngjarja e dytë e tillë, vitin e kaluar "Dita e flamurit DNS" ishte i fokusuar mbi përpunimin e saktë të kërkesave EDNS.

Pjesëmarrësit në nismën e ditës së flamurit DNS 2020 po bëjnë thirrje që madhësitë e rekomanduara të tamponit për EDNS të fiksohen në 1232 bajt (madhësia MTU 1280 minus 48 bajt për kokat), si dhe përkthej përpunimi i kërkesave nëpërmjet TCP është një veçori e domosdoshme në serverë. NË RFC1035 Vetëm mbështetja për përpunimin e kërkesave nëpërmjet UDP shënohet si e detyrueshme dhe TCP renditet si e dëshirueshme, por nuk kërkohet për funksionim. I ri RFC7766 и RFC5966 listoni në mënyrë eksplicite TCP si një aftësi të kërkuar që DNS të funksionojë siç duhet. Nisma propozon të detyrohet kalimi nga dërgimi i kërkesave mbi UDP në përdorimin e TCP në rastet kur madhësia e vendosur e tamponit EDNS është e pamjaftueshme.

Ndryshimet e propozuara do të eliminojnë konfuzionin me zgjedhjen e madhësisë së tamponit EDNS dhe do të zgjidhin problemin e fragmentimit të mesazheve të mëdha UDP, përpunimi i të cilave shpesh çon në humbje të paketave dhe ndërprerje kohore nga ana e klientit. Nga ana e klientit, madhësia e buferit EDNS do të jetë konstante dhe përgjigjet e mëdha do t'i dërgohen menjëherë klientit përmes TCP. Shmangia e dërgimit të mesazheve të mëdha përmes UDP do të zgjidhë gjithashtu problemet me paketat e mëdha që hidhen në disa mure zjarri dhe do të lejojë bllokimin sulmet për helmimin e memories DNS, bazuar në manipulimin e paketave të fragmentuara UDP (kur ndahet në fragmente, fragmenti i dytë nuk përfshin një kokë me një identifikues, kështu që mund të falsifikohet, për të cilin mjafton vetëm që shuma e kontrollit të përputhet) .

Duke filluar nga sot, ofruesit pjesëmarrës DNS duke përfshirë CloudFlare, Quad 9, Cisco (OpenDNS) dhe Google, gradualisht do të ndryshojë Madhësia e buferit EDNS nga 4096 në 1232 byte në serverët e tij DNS (ndryshimi EDNS do të shpërndahet në 4-6 javë dhe do të mbulojë një numër në rritje kërkesash me kalimin e kohës). Përgjigjet ndaj kërkesave të UDP që nuk përshtaten në kufirin e ri do të dërgohen përmes TCP. Shitësit e serverëve DNS duke përfshirë BIND, Unbound, Knot, NSD dhe PowerDNS do të lëshojnë përditësime për të ndryshuar madhësinë e parazgjedhur të tamponit EDNS nga 4096 byte në 1232 bytes.

Në fund të fundit, këto ndryshime mund të çojnë në probleme zgjidhjeje kur hyni në serverët DNS, përgjigjet e të cilëve UDP DNS kalojnë 1232 bajt dhe nuk mund të dërgojnë një përgjigje TCP. Një eksperiment i kryer në Google tregoi se ndryshimi i madhësisë së tamponit EDNS praktikisht nuk ka asnjë efekt në shkallën e dështimit - me një tampon prej 4096 bajte, numri i kërkesave të shkurtuara të UDP është 0.345%, dhe numri i riprovave të paarritshme mbi TCP është 0.115%. Me një buffer prej 1232 byte, këto shifra janë 0.367% dhe 0.116%. Bërja e mbështetjes TCP si një veçori e kërkuar DNS do të shkaktojë probleme me rreth 0.1% të serverëve DNS. Vihet re se në kushtet moderne, pa TCP, funksionimi i këtyre serverëve është tashmë i paqëndrueshëm.

Administratorët e serverëve autoritativ DNS duhet të sigurojnë që serveri i tyre të përgjigjet nëpërmjet TCP në portën e rrjetit 53 dhe që kjo portë TCP të mos bllokohet nga një mur zjarri. Një server me reputacion DNS gjithashtu nuk duhet të dërgojë përgjigje UDP që janë më të mëdha se
kërkoi madhësinë e tamponit EDNS. Në vetë serverin, madhësia e buferit EDNS duhet të vendoset në 1232 byte. Zgjidhësit kanë afërsisht të njëjtat kërkesa - aftësia e detyrueshme për t'u përgjigjur përmes TCP, mbështetje e detyrueshme për dërgimin e kërkesave të përsëritura përmes TCP kur marrin një përgjigje të shkurtuar UDP dhe vendosjen e bufferit EDNS në 1232 bajt.

Parametrat e mëposhtëm janë përgjegjës për vendosjen e madhësisë së buferit EDNS në serverë të ndryshëm DNS:

  • BIND

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

  • Nyjë DNS

    max-udp-payload: 1232

  • Zgjidhës nyjesh

    net.bufsize(1232)

  • PowerDNS Autoritet

    udp-truncation-threshold=1232

  • Rekursor PowerDNS

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

  • i pavarur

    edns-buffer-size: 1232

  • NSD

    ipv4-edns-madhësia: 1232
    ipv6-edns-madhësia: 1232

    Burimi: opennet.ru

  • Shto një koment