ابتکار روز پرچم DNS 2020 برای رسیدگی به مشکلات تکه تکه شدن و پشتیبانی TCP

امروز، تعدادی از خدمات DNS بزرگ و تولید کنندگان سرور DNS یک رویداد مشترک برگزار خواهند کرد روز پرچم DNS 2020طراحی شده برای تمرکز بر تصمیم چالش ها و مسائل با تکه تکه شدن IP هنگام پردازش پیام های DNS بزرگ. این دومین رویداد مشابه در سال گذشته "روز پرچم DNS" است. متمرکز بود در مورد پردازش صحیح درخواست های EDNS.

شرکت کنندگان در ابتکار روز پرچم DNS 2020 خواستار تعیین اندازه بافر توصیه شده برای EDNS به 1232 بایت (اندازه MTU 1280 منهای 48 بایت برای هدر) هستند. ترجمه کردن پردازش درخواست ها از طریق TCP یک ویژگی ضروری در سرورها است. که در RFC 1035 فقط پشتیبانی برای پردازش درخواست‌ها از طریق UDP اجباری علامت‌گذاری شده است و TCP به عنوان مطلوب فهرست شده است، اما برای عملیات لازم نیست. جدید RFC 7766 и RFC 5966 به صراحت TCP را به عنوان یک قابلیت لازم برای عملکرد صحیح DNS فهرست کنید. این طرح پیشنهاد می‌کند در مواردی که اندازه بافر EDNS ناکافی است، انتقال درخواست‌ها از طریق UDP به استفاده از TCP انجام شود.

تغییرات پیشنهادی سردرگمی در انتخاب اندازه بافر EDNS را از بین می‌برد و مشکل تکه تکه شدن پیام‌های UDP بزرگ را حل می‌کند، که پردازش آن اغلب منجر به از دست دادن بسته‌ها و وقفه زمانی در سمت کلاینت می‌شود. در سمت کلاینت، اندازه بافر EDNS ثابت خواهد بود و پاسخ های بزرگ بلافاصله از طریق TCP برای مشتری ارسال می شود. اجتناب از ارسال پیام‌های بزرگ از طریق UDP مشکلاتی را که بسته‌های بزرگ در برخی فایروال‌ها رها می‌شوند حل می‌کند و امکان مسدود شدن را فراهم می‌کند. حملات در مورد مسمومیت کش DNS، بر اساس دستکاری بسته های UDP تکه تکه شده (هنگامی که به قطعات تقسیم می شود، قطعه دوم شامل هدر با شناسه نمی شود، بنابراین می توان آن را جعل کرد، که برای آن فقط کافی است که جمع کنترلی مطابقت داشته باشد).

از امروز، ارائه دهندگان DNS شرکت کننده از جمله CloudFlare، Quad 9، Cisco (OpenDNS) و Google، به تدریج تغییر خواهد کرد اندازه بافر EDNS از 4096 تا 1232 بایت در سرورهای DNS آن (تغییر EDNS طی 4-6 هفته پخش می شود و تعداد فزاینده ای از درخواست ها را در طول زمان پوشش می دهد). پاسخ‌هایی به درخواست‌های UDP که با محدودیت جدید مطابقت ندارند از طریق TCP ارسال می‌شوند. فروشندگان سرور DNS از جمله BIND، Unbound، Knot، NSD و PowerDNS به‌روزرسانی‌هایی را برای تغییر اندازه بافر پیش‌فرض EDNS از 4096 بایت به 1232 بایت منتشر می‌کنند.

در نهایت، این تغییرات می تواند منجر به مشکلات حل در هنگام دسترسی به سرورهای DNS شود که پاسخ های DNS UDP آنها بیش از 1232 بایت است و نمی توانند پاسخ TCP ارسال کنند. آزمایشی که در گوگل انجام شد نشان داد که تغییر اندازه بافر EDNS عملاً هیچ تأثیری بر میزان خرابی ندارد - با بافر 4096 بایت، تعداد درخواست‌های UDP کوتاه شده 0.345٪ و تعداد تکرارهای غیرقابل دسترسی از طریق TCP 0.115 بود. ٪. با بافر 1232 بایت، این ارقام 0.367٪ و 0.116٪ هستند. تبدیل پشتیبانی TCP به یک ویژگی DNS مورد نیاز باعث ایجاد مشکل در حدود 0.1٪ از سرورهای DNS می شود. خاطرنشان می شود که در شرایط مدرن، بدون TCP، عملکرد این سرورها در حال حاضر ناپایدار است.

مدیران سرورهای DNS معتبر باید اطمینان حاصل کنند که سرور آنها از طریق TCP در پورت شبکه 53 پاسخ می دهد و این پورت TCP توسط فایروال مسدود نشده است. یک سرور DNS معتبر همچنین نباید پاسخ‌های UDP را که بزرگتر از آن هستند ارسال کند
اندازه بافر EDNS درخواست شده است. در خود سرور، اندازه بافر EDNS باید روی 1232 بایت تنظیم شود. حل‌کننده‌ها تقریباً نیازمندی‌های مشابهی دارند - توانایی اجباری برای پاسخ‌گویی از طریق TCP، پشتیبانی اجباری برای ارسال درخواست‌های مکرر از طریق TCP هنگام دریافت پاسخ کوتاه‌شده UDP، و تنظیم بافر EDNS روی ۱۲۳۲ بایت.

پارامترهای زیر مسئول تنظیم اندازه بافر EDNS در سرورهای مختلف DNS هستند:

  • بستن

    گزینه ها {
    edns-udp-size 1232;
    max-udp-size 1232;
    };

  • گره DNS

    حداکثر بار udp: 1232

  • حل کننده گره

    net.bufsize(1232)

  • PowerDNS معتبر

    udp-truncation-threshold=1232

  • بازگردان PowerDNS

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

  • رها شده

    edns-buffer-size: 1232

  • NSD

    ipv4-edns-size: 1232
    ipv6-edns-size: 1232

    منبع: opennet.ru

  • اضافه کردن نظر