DNS flag day 2020 algatus probleemide lahendamiseks fraktsioonimise ja TCP toe osas.

Tänapäeval korraldavad mitmed suured DNS-teenuste pakkujad ja DNS-serverite tootjad ühisürituse DNS lipupäev 2020, mille eesmärk on keskenduda lahendusele probleemide IP-fragmentatsiooni kohta suure mahuga DNS-sõnumite töötlemisel. See on teine ​​sarnane üritus, eelmisel aastal toimus "DNS flag day" oli keskendunud EDNS-i päringute korrektsele töötlemisele.

DNS flag day 2020 algatuse osalised kutsuvad üles fikseerima EDNS-i soovitatavad puufferi suurused kuni 1232 baitini (MTU suurus 1280 miinus 48 baiti päiste jaoks), samuti tõlkida TCP-päringute töötlemine peab olema serverites kohustuslikult toetatud. RFC 1035 tähistab kohustuslikult vaid UDP-päringute töötlemise toetust, samas kui TCP on märgitud soovitatavaks, kuid mitte kohustuslikuks. Uued обязательной помечена только поддержка обработки запросов по UDP, а TCP указан как желательный, но не обязательный для работы. Новые RFC 7766 ja RFC 5966 seavad TCP selgelt kohustuslike võimaluste hulka, mis on DNS-i korrektseks toimimiseks hädavajalikud. Käimasoleva algatuse raames pakutakse välja, et tulla üle UDP-päringute saatmiselt TCP kasutamisele olukordades, kus EDNS-i puufferi seadistatud suurus ei ole piisav.

Ettepanekud kõrvaldab segaduse EDNS-i puhvri suuruse valikul ja lahendavad probleemid suurte UDP-sõnumite fragmenteerimisega, mille töötlemine toob sageli kaasa pakettide kadumise ja klientide poolseid taimerite ületamisi. Klientide poolel on EDNS-i puhvri suurus konstantne ning suured vastused saadetakse kohe kliendile TCP kaudu. Suurte sõnumite saatmise välistamine UDP-u kaudu lahendab ka probleemid suurte pakettide kõrvaldamisega mõnedes tulemüürides ja võimaldab blokeerida rünnaku DNS vahemälu rikke korral võivad tekkida probleemid, mis on tingitud fragmentide UDP-pakettide manipuleerimisest (fragmentimisel ei hõlma teine fragment identifikaatori pead, seetõttu saab selle manipuleerida, et ainult kontrollsumma vastaks).

Alates tänasest osalevad DNS-i teenusepakkujad, sealhulgas CloudFlare, Quad 9, Cisco (OpenDNS) ja Google, hakkavad järk-järgult muutma EDNS-i puhvri suurust 4096 baitilt 1232 baitini oma DNS-serverites (EDNS-i muudatus kestab 4–6 nädalat ja aja jooksul hõlmab see üha rohkem küsimusi). UDP-päringutele, mis ei mahu uude piirangusse, saadetakse vastused TCP kaudu. DNS-serverite tootjad, sealhulgas BIND, Unbound, Knot, NSD ja PowerDNS, avaldavad värskendused, mis muudavad vaikimisi EDNS-i puhvri suuruse 4096 baitilt 1232 baitini.

Lõppkokkuvõttes võivad sisseviidud muudatused põhjustada probleeme nimede lahendamisel, kui pöörduda DNS-serverite poole, mille UDP vastused ületavad 1232 baiti ja mis ei saa vastust TCP kaudu saata. Google'is läbi viidud eksperimendi põhjal muutus EDNS-i puhvri suuruse muutmine praktiliselt ebaefektiivseks, kuna 4096-baitise puhvri kasutamisel oli kärbitud UDP päringute osakaal 0,345% ja TCP kaudu kättesaamatute korduvate vastuste osakaal 0,115%. 1232-baitise puhvri korral olid need näitajad vastavalt 0,367% ja 0,116%. TCP toe muutmine DNS-i kohustuslikuks funktsiooniks põhjustab probleeme umbes 0,1% DNS-serveritega. Toodud asjaolusid arvestades on tänapäeva tingimustes nende serverite töö TCP-ita ikkagi ebastabiilne.

Autoriteetsete DNS-serverite administraatorid peaksid veenduma, et nende server vastab TCP-le võrgupordil 53 ja et antud TCP-port ei ole tulemüüriga blokeeritud. Autoriteetne DNS-server ei tohi samuti saata UDP vastuseid, mille suurus ületab
taotletud EDNS-i puhvri suurus. Serveris peab EDNS-i puhvri suurus olema seatud 1232 baitiks. Resolutoreid kehtivad sarnased nõuded — kohustuslik TCP-vastuse võimalus, kohustuslik TCP korduspalvete saatmise tugi vähendatud UDP vastuse saamisel, ja EDNS-i puhvri seadmine 1232 baitiks.

EDNS-i puhvri suuruse seadistamine erinevates DNS-serverites sõltub järgmistest parameetritest:

  • 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

    Allikas: opennet.ru

  • Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster