بحران DNS کلودفلر؛ چرا ترتیب CNAME و A Record اهمیت دارد؟

تحلیل بحران DNS کلودفلر؛ چرا ترتیب CNAME و A Record اهمیت دارد؟

تیم تحریریه استاد آی تی گزارش می دهد: دنیای زیرساخت های اینترنت در روزهای اخیر شاهد یکی از عجیب ترین و در عین حال آموزنده ترین اختلالات فنی بود. شرکت کلودفلر (Cloudflare) در گزارشی رسمی پرده از جزئیات حادثه ای برداشت که در آن یک به روزرسانی ساده برای بهینه سازی مصرف حافظه در سرویس محبوب ۱.۱.۱.۱ منجر به قطع دسترسی بخش بزرگی از کاربران شد. این موضوع نه به دلیل حملات سایبری یا خرابی سرورها، بلکه به دلیل تغییر در ترتیب قرارگیری رکوردهای DNS در بسته های ارسالی رخ داد.

در ساختار پروتکل های اینترنتی، زمانی که یک کاربر آدرس وب سایتی را وارد می کند، سیستم نام دامنه یا همان DNS وظیفه تبدیل این نام به آی پی (IP Address) را بر عهده دارد. در این میان، رکوردهای CNAME یا Canonical Name به عنوان نام های مستعار عمل می کنند که به یک نام دیگر اشاره دارند. کلودفلر در تلاش بود تا با تغییر در نحوه مدیریت حافظه پنهان (Cache Implementation)، کارایی سیستم خود را افزایش دهد اما این تغییر باعث شد رکوردهای CNAME به جای ابتدای لیست پاسخ، در انتهای آن قرار بگیرند.

کالبدشکافی فنی اختلال در سرویس ۱.۱.۱.۱

ریشه اصلی این مشکل به نحوه پردازش پاسخ ها توسط نرم افزارهای مختلف بازمی گردد. بسیاری از پیاده سازی های قدیمی و حتی مدرن مانند تابع getaddrinfo در کتابخانه glibc لینوکس، انتظار دارند که رکوردهای CNAME را پیش از رکوردهای A مشاهده کنند. وقتی کلودفلر ترتیب این رکوردها را جابه جا کرد، این نرم افزارها در تحلیل زنجیره نام های مستعار دچار خطا شده و تصور کردند که پاسخی دریافت نشده است. این موضوع باعث شد تا بسیاری از سرویس های مبتنی بر لینوکس و حتی برخی تجهیزات شبکه با مشکل جدی مواجه شوند.

تفاوت هاست لینوکس و ویندوز چیست؟ از زبان کارشناسان استاد آی تی

نکته تامل برانگیز در این حادثه، تاثیر آن بر سخت افزارهای شبکه بود. گزارش ها نشان می دهد که سه مدل از سوئیچ های اترنت سیسکو (Cisco) که از سرویس ۱.۱.۱.۱ استفاده می کردند، پس از دریافت این پاسخ های غیرمنتظره دچار چرخه بازراه اندازی (Reboot Loop) شدند. این سطح از حساسیت در تجهیزات زیرساختی نشان دهنده اهمیت رعایت دقیق استانداردهایی است که شاید در نگاه اول چندان حیاتی به نظر نرسند.

ابهام در استانداردهای RFC و چالش های پیش رو

بررسی های فنی نشان می دهد که سند RFC 1034 که در سال ۱۹۸۷ منتشر شده و پایه و اساس پروتکل DNS محسوب می شود، صراحتا ترتیبی برای ارائه رکوردها مشخص نکرده است. این ابهام ۴۰ ساله باعث شده تا هر توسعه دهنده ای بر اساس برداشت خود اقدام به پیاده سازی ریزالور (Resolver) کند. در حالی که ابزارهایی مانند systemd-resolved به درستی تمام پاسخ را تحلیل می کنند، برخی دیگر از ابزارها به دلیل محدودیت های طراحی، تنها به ترتیب خاصی از داده ها واکنش نشان می دهند.

کلودفلر چیست؟ راه اندازی Cloudflare بر روی سایت در ۱۰ دقیقه

در این میان، مفاهیمی همچون TTL یا Time-To-Live و امنیت DNS یا DNSSEC نیز نقش مهمی در پایداری پاسخ ها ایفا می کنند. کلودفلر اعلام کرده است که برای حل دائمی این مشکل، پیشنهادی را به کارگروه DNSOP ارائه داده تا ترتیب رکوردهای بخش پاسخ (Answer Section) به صورت یک استاندارد واحد درآید. این اقدام می تواند از بروز رفتارهای پیش بینی نشده در تجهیزات مختلف جلوگیری کرده و پایداری اینترنت را دوچندان کند.

تحلیل تخصصی پایداری زیرساخت های دیجیتال

کارشناسان استاد آی تی معتقدند که این حادثه درس بزرگی برای تمامی معماران سیستم و توسعه دهندگان زیرساخت دارد. وابستگی شدید اینترنت مدرن به جزئیات بسیار کوچک فنی به این معناست که حتی یک تغییر در تخصیص حافظه (Memory Allocation) در یک سمت دنیا می تواند باعث از کار افتادن شبکه های سازمانی در سمت دیگر شود. این موضوع اهمیت تست های رگرسیون دقیق و در نظر گرفتن رفتارهای غیراستاندارد کلاینت های قدیمی را بیش از پیش نمایان می کند.

واقعیت این است که در دنیای امروز، تخصص در لایه های زیرین شبکه به اندازه طراحی وب سایت از لحاظ ظاهری اهمیت دارد. عدم توجه به استانداردهایی مانند RFC 2119 در تفسیر عباراتی چون MUST و SHOULD می تواند منجر به خسارات جبران ناپذیری در مقیاس جهانی شود.

جمع بندی: کدام اول آمد؛ رکورد CNAME یا A؟

در پاسخ به این سوال حیاتی که کدام رکورد باید در پاسخ های DNS اولویت داشته باشد، تحلیل های کلودفلر نشان می دهد که اگرچه استانداردهای قدیمی مانند RFC 1034 سکوت کرده اند، اما تجربه عملی ثابت کرد که رکورد CNAME باید پیش از رکورد A ظاهر شود.

در واقع، زنجیره منطقی حل نام دامنه ایجاب می کند که ابتدا نام مستعار (CNAME) شناسایی شده و سپس آدرس نهایی (A Record) ارائه گردد. کلودفلر با جابه جایی این ترتیب و قرار دادن رکورد A در ابتدا، باعث سردرگمی سیستم هایی شد که به صورت خطی داده ها را پردازش می کردند. بنابراین، برای حفظ پایداری اینترنت، “اول CNAME و بعد A” نه تنها یک ترجیح، بلکه یک ضرورت فنی برای سازگاری با تمامی کلاینت ها است.


منبع:
What came first: the CNAME or the A record?

این پست چقدر مفید بود؟

بر روی یک ستاره کلیک کنید تا به آن امتیاز دهید!

میانگین امتیاز ۵ / ۵. میانگین امتیاز: ۱

تاکنون هیچ رأیی ثبت نشده است! اولین نفری باشید که به این پست امتیاز می‌دهد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *