I dag holder en række store DNS-tjenester og producenter af DNS-servere et fælles arrangement , der har til formål at fokusere opmærksomheden på af IP-fragmentering ved behandling af store DNS-beskeder. Dette er det andet arrangement af sin art; sidste år blev "DNS flag day" på korrekt behandling af EDNS-anmodninger.
Deltagerne i initiativet DNS flag day 2020 opfordrer til at fastsætte de anbefalede bufferstørrelser for EDNS til niveauer på 1232 bytes (MTU størrelse 1280 minus 48 bytes til overskrifter), samt håndtering af anmodninger over TCP til en obligatorisk understøttet funktion på servere. I er understøttelsen af behandling af anmodninger over UDP kun obligatorisk, mens TCP er angivet som ønskelig, men ikke nødvendig for funktion. De nye og tilføjer tydeligt TCP blandt de obligatoriske funktioner, der er nødvendige for korrekt DNS-drift. I forbindelse med det gennemførte initiativ foreslås det at tvinge overgangen fra at sende anmodninger over UDP til at anvende TCP i tilfælde, hvor den fastsatte bufferstørrelse for EDNS er utilstrækkelig.
De foreslåede ændringer vil eliminere forvirringen omkring valget af EDNS-bufferstørrelse og løse problemet med fragmentering af store UDP-beskeder, hvis behandling ofte fører til tab af pakker og timeout på klientsiden. På klientsiden vil EDNS-bufferstørrelsen være konstant, og store svar vil straks blive sendt til klienten over TCP. Undtagelsen til at sende store beskeder over UDP vil også løse problemer med udsmidning af store pakker på nogle firewall-enheder og muliggøre blokering af DNS-cache-forgiftning baseret på manipulation af fragmenterede UDP-pakker (ved fragmentering inkluderer det andet fragment ikke overskriften med identificeringen, hvorfor det kan forfalskes, så længe kontrolsummen passer).
Fra i dag vil de deltagende DNS-udbydere, herunder CloudFlare, Quad 9, Cisco (OpenDNS) og Google, Ændringen af EDNS-bufferen fra 4096 til 1232 byte på deres DNS-servere (ændringen af EDNS vil blive udrullet over 4-6 uger og vil gradvist omfatte flere anmodninger). Svar på UDP-anmodninger, der ikke overholder den nye grænse, vil blive sendt via TCP. Producenter af DNS-servere, herunder BIND, Unbound, Knot, NSD og PowerDNS, vil frigive opdateringer, der ændrer standard-størrelsen på EDNS-bufferen fra 4096 til 1232 byte.
I sidste ende kan de indførte ændringer føre til problemer med opløsning, når man henvender sig til DNS-servere, hvis DNS-svar via UDP overstiger 1232 byte, og som ikke kan sende svar via TCP. Et eksperiment udført af Google viste, at ændringen af EDNS-bufferens størrelse praktisk talt ikke vil påvirke niveauet af fejl — ved en bufferstørrelse på 4096 byte er antallet af beskårede UDP-anmodninger 0,345%, mens antallet af uopnåelige gentagne svar via TCP er 0,115%. Ved en buffer på 1232 byte er disse tal 0,367% og 0,116%. At gøre TCP-support til et krav vil føre til problemer med interaktionen med omkring 0,1% af DNS-serverne. Det er bemærket, at under moderne forhold er driften af disse servere allerede ustabil uden TCP.
Administratorer af autoritative DNS-servere bør sikre, at deres server kan svare via TCP på netværksport 53, og at denne TCP-port ikke blokeres af en firewall. Den autoritative DNS-server bør heller ikke sende UDP-svar, hvis størrelsen overstiger
den efterspurgte EDNS-bufferstørrelse. På selve serveren bør EDNS-bufferstørrelsen være sat til 1232 byte. Der stilles omtrent de samme krav til opløsere — obligatorisk mulighed for at svare via TCP, obligatorisk support for at sende gentagne anmodninger via TCP ved modtagelse af beskårede UDP-svar, og indstilling af EDNS-bufferen til 1232 byte.
Indstillingerne for EDNS-bufferstørrelsen i forskellige DNS-servere er som følger:
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
Kilde: opennet.ru
