Parchalanish va TCP qo'llab-quvvatlash muammolarini hal qilish uchun DNS bayrog'i kuni 2020 tashabbusi

Bugun bir qator yirik DNS xizmatlari va DNS server ishlab chiqaruvchilari birgalikda tadbir o'tkazadilar DNS bayroq kuni 2020e'tiborni qaratish uchun mo'ljallangan qaror muammolar katta DNS xabarlarini qayta ishlashda IP parchalanishi bilan. Bu ikkinchi shunday voqea, o'tgan yili "DNS bayrog'i kuni" qaratilgan edi EDNS so'rovlarini to'g'ri qayta ishlash bo'yicha.

DNS bayrog'i kuni 2020 tashabbusi ishtirokchilari EDNS uchun tavsiya etilgan bufer o'lchamlarini 1232 baytga (MTU o'lchami 1280 minus 48 bayt sarlavhalar uchun) belgilashni talab qilmoqdalar. tarjima qiling TCP orqali so'rovlarni qayta ishlash serverlarda bo'lishi kerak bo'lgan xususiyatdir. IN QRM 1035 Faqat UDP orqali so'rovlarni qayta ishlashni qo'llab-quvvatlash majburiy deb belgilangan va TCP kerakli deb ro'yxatga olingan, lekin ishlash uchun talab qilinmaydi. Yangi QRM 7766 и QRM 5966 DNS to'g'ri ishlashi uchun zarur bo'lgan qobiliyat sifatida TCP ni aniq ko'rsating. Tashabbus belgilangan EDNS bufer hajmi etarli bo'lmagan hollarda so'rovlarni UDP orqali yuborishdan TCP dan foydalanishga o'tishni taklif qiladi.

Taklif etilayotgan o'zgarishlar EDNS bufer hajmini tanlashda chalkashliklarni bartaraf qiladi va katta UDP xabarlarini parchalash muammosini hal qiladi, ularni qayta ishlash ko'pincha paketlarning yo'qolishiga va mijoz tomonida kutish vaqtiga olib keladi. Mijoz tomonida EDNS bufer hajmi doimiy bo'ladi va katta javoblar TCP orqali mijozga darhol yuboriladi. UDP orqali katta hajmdagi xabarlarni jo'natmaslik, shuningdek, ba'zi xavfsizlik devorlariga katta paketlar tushishi bilan bog'liq muammolarni hal qiladi va blokirovka qilishga imkon beradi. hujumlar parchalangan UDP paketlarini manipulyatsiya qilish asosida DNS keshini zaharlash uchun (bo'laklarga bo'linganda, ikkinchi fragment identifikatorli sarlavhani o'z ichiga olmaydi, shuning uchun uni qalbakilashtirish mumkin, buning uchun faqat nazorat summasining mos kelishi uchun kifoya qiladi) .

Bugundan boshlab DNS provayderlari, jumladan CloudFlare, Quad 9, Cisco (OpenDNS) va Google, asta-sekin o'zgaradi DNS serverlarida EDNS buferining o'lchami 4096 dan 1232 baytgacha (EDNS o'zgarishi 4-6 hafta davomida tarqaladi va vaqt o'tishi bilan ortib borayotgan so'rovlarni qamrab oladi). Yangi chegaraga to'g'ri kelmaydigan UDP so'rovlariga javoblar TCP orqali yuboriladi. BIND, Unbound, Knot, NSD va PowerDNS kabi DNS server sotuvchilari standart EDNS bufer hajmini 4096 baytdan 1232 baytgacha o'zgartirish uchun yangilanishlarni chiqaradi.

Oxir oqibat, bu o'zgarishlar UDP DNS javoblari 1232 baytdan oshadigan va TCP javobini yubora olmaydigan DNS serverlariga kirishda hal qilish muammolariga olib kelishi mumkin. Google’da o‘tkazilgan tajriba shuni ko‘rsatdiki, EDNS bufer hajmini o‘zgartirish muvaffaqiyatsizlik darajasiga deyarli ta’sir qilmaydi – 4096 bayt bufer bilan kesilgan UDP so‘rovlari soni 0.345%, TCP orqali erishib bo‘lmaydigan takroriy urinishlar soni esa 0.115%. 1232 bayt bufer bilan bu ko'rsatkichlar 0.367% va 0.116% ni tashkil qiladi. TCP qo'llab-quvvatlashini kerakli DNS xususiyatiga aylantirish DNS serverlarining taxminan 0.1% bilan bog'liq muammolarga olib keladi. Qayd etilishicha, zamonaviy sharoitda TCPsiz ushbu serverlarning ishlashi allaqachon beqaror.

Nufuzli DNS-serverlar ma'murlari o'z serverlari 53-tarmoq portidagi TCP orqali javob berishi va bu TCP porti xavfsizlik devori tomonidan bloklanmaganligiga ishonch hosil qilishlari kerak. Nufuzli DNS-server ham undan kattaroq UDP javoblarini yubormasligi kerak
so'ralgan EDNS bufer hajmi. Serverning o'zida EDNS bufer hajmi 1232 baytga o'rnatilishi kerak. Resolverlar taxminan bir xil talablarga ega - TCP orqali javob berishning majburiy qobiliyati, kesilgan UDP javobini olishda TCP orqali takroriy so'rovlarni yuborishni majburiy qo'llab-quvvatlash va EDNS buferini 1232 baytga o'rnatish.

Quyidagi parametrlar turli DNS serverlarida EDNS bufer hajmini o'rnatish uchun javobgardir:

  • BIND

    variantlar {
    edns-udp o'lchami 1232;
    maksimal udp o'lchami 1232;
    };

  • DNS tugunlari

    maksimal udp yuki: 1232

  • Tugunlarni hal qiluvchi

    net.bufsize(1232)

  • PowerDNS vakolatli

    udp-truncation-threshold = 1232

  • PowerDNS rekursor

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

  • erkin

    edns-bufer hajmi: 1232

  • NSD

    ipv4-edns-hajmi: 1232
    ipv6-edns-hajmi: 1232

    Manba: opennet.ru

  • a Izoh qo'shish