Фрагментация және TCP қолдау мәселелерін шешуге арналған DNS жалауша күні 2020 бастамасы

Бүгін бірқатар ірі DNS сервистері мен DNS сервер өндірушілері бірлескен іс-шара өткізеді DNS жалауы күні 2020назар аударуға арналған шешім проблемалар үлкен DNS хабарламаларын өңдеу кезінде IP фрагментациясымен. Бұл өткен жылғы «DNS жалау күні» осындай екінші оқиға. назар аударылды EDNS сұрауларын дұрыс өңдеу туралы.

DNS жалауы күні 2020 бастамасына қатысушылар EDNS үшін ұсынылған буфер өлшемдерін 1232 байтқа бекітуге шақырады (тақырыптар үшін MTU өлшемі 1280 минус 48 байт), сондай-ақ аудару TCP арқылы сұрауларды өңдеу серверлердегі міндетті мүмкіндік болып табылады. IN RFC 1035 Тек UDP арқылы сұрауларды өңдеуге қолдау көрсету міндетті болып белгіленеді және TCP қажет деп көрсетілген, бірақ жұмыс істеу үшін қажет емес. Жаңа RFC 7766 и RFC 5966 DNS дұрыс жұмыс істеуі үшін қажетті мүмкіндік ретінде TCP-ті нақты тізімдеңіз. Бастама белгіленген EDNS буферінің өлшемі жеткіліксіз болған жағдайда UDP арқылы сұрауларды жіберуден TCP пайдалануға көшуді мәжбүрлеуді ұсынады.

Ұсынылған өзгертулер EDNS буферінің өлшемін таңдаудағы шатасуды жояды және өңдеуі көбінесе пакеттің жоғалуына және клиент жағында күту уақытының аяқталуына әкелетін үлкен UDP хабарламаларының фрагментация мәселесін шешеді. Клиент жағында EDNS буферінің өлшемі тұрақты болады және үлкен жауаптар TCP арқылы клиентке бірден жіберіледі. UDP арқылы үлкен хабарларды жіберуден аулақ болу, сондай-ақ кейбір желіаралық қалқандарда үлкен пакеттердің жойылуымен байланысты мәселелерді шешеді және блоктауға мүмкіндік береді. шабуылдар фрагменттелген UDP пакеттерін манипуляциялауға негізделген DNS кэшін улану үшін (фрагменттерге бөлінген кезде екінші фрагмент идентификаторы бар тақырыпты қамтымайды, сондықтан оны жалған жасауға болады, ол үшін тек бақылау сомасының сәйкес келуі жеткілікті) .

Бүгіннен бастап DNS провайдерлері, соның ішінде CloudFlare, Quad 9, Cisco (OpenDNS) және Google, біртіндеп өзгереді DNS серверлеріндегі EDNS буферінің өлшемі 4096-дан 1232 байтқа дейін (EDNS өзгерісі 4-6 апта ішінде таралады және уақыт өте келе сұраныстардың көбеюін қамтиды). Жаңа шектеуге сәйкес келмейтін UDP сұрауларына жауаптар TCP арқылы жіберіледі. BIND, Unbound, Knot, NSD және PowerDNS қоса, DNS сервер жеткізушілері әдепкі EDNS буферінің өлшемін 4096 байттан 1232 байтқа дейін өзгерту үшін жаңартуларды шығарады.

Сайып келгенде, бұл өзгерістер UDP DNS жауаптары 1232 байттан асатын және TCP жауабын жібере алмайтын DNS серверлеріне қатынасу кезінде шешу мәселелеріне әкелуі мүмкін. Google-да жүргізілген эксперимент EDNS буферінің өлшемін өзгерту сәтсіздік жылдамдығына іс жүзінде әсер етпейтінін көрсетті - буфер 4096 байт болса, қысқартылған UDP сұрауларының саны 0.345%, ал TCP арқылы қол жетімсіз қайталаулар саны 0.115% құрайды. 1232 байт буфермен бұл сандар 0.367% және 0.116% құрайды. TCP қолдауын қажетті DNS мүмкіндігіне айналдыру DNS серверлерінің шамамен 0.1%-ында ақаулық тудырады. Қазіргі жағдайда TCP-сіз бұл серверлердің жұмысы қазірдің өзінде тұрақсыз екені атап өтіледі.

Беделді DNS серверлерінің әкімшілері олардың серверінің 53 желілік портындағы TCP арқылы жауап беретінін және бұл TCP портының брандмауэрмен блокталмағанын қамтамасыз етуі керек. Беделді DNS сервері де одан үлкен UDP жауаптарын жібермеуі керек
сұралған EDNS буферінің өлшемі. Сервердің өзінде EDNS буферінің өлшемі 1232 байтқа орнатылуы керек. Резолверлердің шамамен бірдей талаптары бар - TCP арқылы жауап берудің міндетті мүмкіндігі, қысқартылған UDP жауабын алу кезінде TCP арқылы қайталанатын сұрауларды жіберуге міндетті қолдау және EDNS буферін 1232 байтқа орнату.

Келесі параметрлер әртүрлі DNS серверлерінде EDNS буферінің өлшемін орнатуға жауапты:

  • BIND

    опциялар {
    edns-udp-өлшемі 1232;
    max-udp-өлшемі 1232;
    };

  • DNS түйіні

    max-udp-пайдалы жүктеме: 1232

  • Түйіндерді шешуші

    net.bufsize(1232)

  • PowerDNS өкілетті

    udp-қию шегі=1232

  • PowerDNS рекурсоры

    edns-outgoing-bufsize=1232
    udp-қию шегі=1232

  • байланыспаған

    edns-буфер өлшемі: 1232

  • NSD

    ipv4-edns өлшемі: 1232
    ipv6-edns өлшемі: 1232

    Ақпарат көзі: opennet.ru

  • пікір қалдыру