Tänapäeval korraldavad mitmed suured DNS-teenuste pakkujad ja DNS-serverite tootjad ühisürituse , mille eesmärk on keskenduda IP-fragmentatsiooni kohta suure mahuga DNS-sõnumite töötlemisel. See on teine sarnane üritus, eelmisel aastal toimus "DNS flag day" 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 TCP-päringute töötlemine peab olema serverites kohustuslikult toetatud. RFC 1035 обязательной помечена только поддержка обработки запросов по UDP, а TCP указан как желательный, но не обязательный для работы. Новые ja 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 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, 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:
options {
edns-udp-size 1232;
max-udp-size 1232;
};
max-udp-payload: 1232
net.bufsize(1232)
udp-truncation-threshold=1232
edns-outgoing-bufsize=1232
udp-truncation-threshold=1232
edns-buffer-size: 1232
ipv4-edns-size: 1232
ipv6-edns-size: 1232
Allikas: opennet.ru
