Inisyatiba ng DNS flag day 2020 para tugunan ang mga isyu sa fragmentation at suporta sa TCP

Ngayon, maraming pangunahing serbisyo ng DNS at mga tagagawa ng DNS server ang magsasagawa ng isang magkasanib na kaganapan. Araw ng bandila ng DNS 2020, na idinisenyo upang ituon ang pansin sa desisyon mga problema Pagkapira-piraso ng IP kapag pinoproseso ang malalaking mensahe ng DNS. Ito ang pangalawang ganitong kaganapan; ang "Araw ng Bandila ng DNS" noong nakaraang taon ay nakatutok sa wastong pagproseso ng mga kahilingan sa EDNS.

Ang mga kalahok sa inisyatibo ng DNS flag day 2020 ay nananawagan para sa pag-aayos ng mga inirerekomendang laki ng buffer para sa EDNS sa mga halagang nasa antas na 1232 bytes (laki ng MTU 1280 binawasan ng 48 bytes para sa mga header), at isalin Ang pagproseso ng mga kahilingan sa pamamagitan ng TCP ay kasama sa listahan ng mga mandatoryong sinusuportahang opsyon sa mga server. RFC 1035 Tanging ang suporta para sa pagproseso ng mga kahilingan sa pamamagitan ng UDP ang minarkahan bilang mandatory, habang ang TCP ay nakalista bilang kanais-nais ngunit hindi kinakailangan para sa operasyon. RFC 7766 и RFC 5966 Ang TCP ay malinaw na itinuturing na isang mandatoryong kakayahan para gumana nang tama ang DNS. Iminumungkahi ng kasalukuyang inisyatibo na pilitin ang paglipat mula sa pagpapadala ng mga kahilingan sa pamamagitan ng UDP patungo sa paggamit ng TCP sa mga kaso kung saan ang itinatag na laki ng EDNS buffer ay hindi sapat.

Ang mga iminungkahing pagbabago ay mag-aalis ng kalituhan tungkol sa laki ng EDNS buffer at tutugunan ang pagkakapira-piraso ng malalaking mensahe ng UDP, na ang pagproseso ay kadalasang humahantong sa pagkawala ng packet at mga timeout sa panig ng kliyente. Sa panig ng kliyente, ang laki ng EDNS buffer ay magiging pare-pareho, at ang malalaking tugon ay direktang ipapadala sa kliyente sa pamamagitan ng TCP. Ang pag-aalis ng pagpapadala ng malalaking mensahe sa pamamagitan ng UDP ay tutugon din sa mga isyu sa malalaking packet drop sa ilang firewall at magpapahintulot sa pagharang. mga pag-atake Pagkalason sa cache ng DNS, batay sa pagmamanipula ng mga pira-pirasong packet ng UDP (kapag nahati sa mga fragment, ang pangalawang fragment ay hindi kasama ang isang header na may isang identifier, kaya maaari itong mapeke, kung saan ito ay sapat lamang para sa checksum na tumugma).

Simula ngayon, ang mga kalahok na DNS provider, kabilang ang CloudFlare, Quad 9, Cisco (OpenDNS) at Google, unti-unting magbabago Ang laki ng EDNS buffer ay tataas mula 4096 patungong 1232 bytes sa kanilang mga DNS server (ang pagbabago sa EDNS ay ikakalat sa loob ng 4-6 na linggo at sasaklaw sa tumataas na bilang ng mga query sa paglipas ng panahon). Ang mga tugon sa mga UDP query na lalampas sa bagong limitasyon ay ipapadala sa pamamagitan ng TCP. Ang mga vendor ng DNS server, kabilang ang BIND, Unbound, Knot, NSD, at PowerDNS, ay maglalabas ng mga update na magpapabago sa default na laki ng EDNS buffer mula 4096 patungong 1232 bytes.

Sa huli, ang mga pagbabagong ipinapatupad ay maaaring humantong sa mga isyu sa paglutas kapag ina-access ang mga DNS server na ang mga tugon ng UDP DNS ay lumampas sa 1232 bytes at hindi kayang tumugon sa pamamagitan ng TCP. Ipinakita ng isang eksperimento sa Google na ang pagbabago ng laki ng EDNS buffer ay halos walang epekto sa rate ng pagkabigo: sa isang 4096-byte buffer, ang rate ng mga pinutol na kahilingan ng UDP ay 0.345%, at ang rate ng mga hindi maabot na tugon sa muling pagsubok sa pamamagitan ng TCP ay 0.115%. Sa isang 1232-byte buffer, ang mga bilang na ito ay 0.367% at 0.116%. Ang paggawang mandatory ng suporta sa TCP para sa DNS ay hahantong sa mga isyu sa humigit-kumulang 0.1% ng mga DNS server. Nabanggit na, sa mga modernong kondisyon, ang operasyon ng mga server na ito nang walang TCP ay hindi pa matatag.

Dapat tiyakin ng mga administrator ng mga awtoritatibong DNS server na ang kanilang server ay tumutugon sa pamamagitan ng TCP sa network port 53 at ang TCP port na ito ay hindi hinaharangan ng isang firewall. Ang isang awtoritatibong DNS server ay hindi rin dapat magpadala ng mga tugon ng UDP na mas malaki kaysa sa
Ang hiniling na laki ng EDNS buffer. Sa server mismo, ang laki ng EDNS buffer ay dapat itakda sa 1232 bytes. Ang mga resolver ay dapat may mga katulad na kinakailangan: mandatoryong kakayahan sa pagtugon ng TCP, mandatoryong suporta para sa muling pagpapadala ng mga kahilingan ng TCP kapag nakatanggap ng pinutol na tugon ng UDP, at isang 1232-byte na EDNS buffer.

Ang mga sumusunod na parameter ay responsable para sa pag-configure ng laki ng buffer ng EDNS sa iba't ibang mga DNS server:

  • MAGBIGKIS

    mga pagpipilian {
    edns-udp-size 1232;
    max-udp-size 1232;
    };

  • KnotDNS

    pinakamataas na udp-payload: 1232

  • Tagalutas ng Buhol

    net.bufsize(1232)

  • Awtoridad ng PowerDNS

    udp-truncation-threshold=1232

  • PowerDNS Recursor

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

  • walang tali

    laki-ng-buffer-ng-edns: 1232

  • NSD

    laki ng ipv4-edns: 1232
    laki ng ipv6-edns: 1232

    Pinagmulan: opennet.ru