DNS flaggedei 2020-inisjatyf om problemen mei fragmintaasje en TCP-stipe oan te pakken

Tsjintwurdich sille in oantal grutte DNS-tsjinsten en DNS-serverfabrikanten in mienskiplik barren hâlde DNS flaggedei 2020ûntworpen om oandacht te rjochtsjen op it beslút problemen mei IP-fragmintaasje by it ferwurkjen fan grutte DNS-berjochten. Dit is it twadde sa'n evenemint, ferline jier "DNS flag day" wie rjochte oer de juste ferwurking fan EDNS-oanfragen.

Dielnimmers oan it inisjatyf fan DNS flaggedei 2020 roppe om oanrikkemandearre buffergrutte foar EDNS fêst te stellen op 1232 bytes (MTU-grutte 1280 minus 48 bytes foar kopteksten), lykas ek oersette ferwurkjen fan oanfragen fia TCP is in must-have funksje op servers. YN RFC 1035 Allinich stipe foar it ferwurkjen fan oanfragen fia UDP wurdt markearre as ferplichte, en TCP wurdt neamd as winsklik, mar net fereaske foar operaasje. Nij RFC 7766 и RFC 5966 list TCP eksplisyt as in fereaske mooglikheid foar DNS om goed te funksjonearjen. It inisjatyf stelt foar om de oergong te twingen fan it ferstjoeren fan oanfragen oer UDP nei it brûken fan TCP yn gefallen dêr't de fêststelde EDNS-buffergrutte net genôch is.

De foarstelde wizigingen sille betizing eliminearje mei it kiezen fan 'e EDNS-buffergrutte en it probleem fan fragmintaasje fan grutte UDP-berjochten oplosse, wêrfan de ferwurking faak liedt ta pakketferlies en timeouts op' e kliïntside. Oan 'e kant fan' e kliïnt sil de EDNS-buffergrutte konstant wêze en grutte antwurden wurde fuortendaliks nei de kliïnt oer TCP stjoerd. It foarkommen fan it ferstjoeren fan grutte berjochten oer UDP sil ek problemen oplosse mei grutte pakketten dy't op guon firewalls falle en blokkearje tastean oanfallen foar fergiftiging fan 'e DNS-cache, basearre op' e manipulaasje fan fragmintele UDP-pakketten (as splitst yn fragminten, it twadde fragmint omfettet gjin koptekst mei in identifier, sadat it kin wurde smeid, wêrfoar it allinich genôch is foar de kontrôlesum om te passen) .

Fan hjoed ôf binne dielnimmende DNS-oanbieders ynklusyf CloudFlare, Quad 9, Cisco (OpenDNS) en Google, sil stadichoan feroarje EDNS-buffergrutte fan 4096 oant 1232 bytes op syn DNS-tsjinners (de EDNS-feroaring sil ferspraat wurde oer 4-6 wiken en sil in tanimmend oantal oanfragen oer de tiid dekke). Antwurden op UDP-oanfragen dy't net passe yn 'e nije limyt sille fia TCP stjoerd wurde. DNS-tsjinnerferkeapers ynklusyf BIND, Unbound, Knot, NSD en PowerDNS sille updates frijlitte om de standert EDNS-buffergrutte te feroarjen fan 4096 bytes nei 1232 bytes.

Uteinlik kinne dizze wizigingen liede ta resolúsjeproblemen by tagong ta DNS-tsjinners wêrfan de UDP DNS-antwurden mear as 1232 bytes binne en gjin TCP-antwurd kinne stjoere. In eksperimint útfierd by Google die bliken dat it feroarjen fan de EDNS-buffergrutte praktysk gjin effekt hat op it mislearringsnivo - mei in buffer fan 4096 bytes is it oantal ôfkoarte UDP-oanfragen 0.345%, en it oantal net te berikken opnij besykjen oer TCP is 0.115%. Mei in buffer fan 1232 bytes binne dizze sifers 0.367% en 0.116%. It meitsjen fan TCP-stipe in fereaske DNS-funksje sil problemen feroarsaakje mei sawat 0.1% fan DNS-tsjinners. It wurdt opmurken dat yn moderne omstannichheden, sûnder TCP, de wurking fan dizze tsjinners is al ynstabyl.

Behearders fan autoritative DNS-tsjinners moatte derfoar soargje dat har tsjinner reagearret fia TCP op netwurkpoarte 53 en dat dizze TCP-poarte net blokkearre wurdt troch in firewall. In renommearre DNS-tsjinner moat ek gjin UDP-antwurden stjoere dy't grutter binne as
frege EDNS buffer grutte. Op de tsjinner sels moat de EDNS-buffergrutte wurde ynsteld op 1232 bytes. Resolvers hawwe sawat deselde easken - ferplichte mooglikheid om te reagearjen fia TCP, ferplichte stipe foar it ferstjoeren fan werhelle oanfragen fia TCP by it ûntfangen fan in ôfkoarte UDP-antwurd, en it ynstellen fan de EDNS-buffer op 1232 bytes.

De folgjende parameters binne ferantwurdlik foar it ynstellen fan de EDNS-buffergrutte yn ferskate DNS-tsjinners:

  • BINE

    opsjes {
    edns-udp-grutte 1232;
    max-udp-grutte 1232;
    };

  • Knoop DNS

    max-udp-lading: 1232

  • Knot Resolver

    net.bufsize(1232)

  • PowerDNS Authoritative

    udp-truncation-threshold=1232

  • PowerDNS Recursor

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

  • Fallen

    edns-buffergrutte: 1232

  • NSD

    ipv4-edns-grutte: 1232
    ipv6-edns-grutte: 1232

    Boarne: opennet.ru

  • Add a comment