فرایند DNS propagation و عملکرد سایت
مقالات تخصصی IT و هاستینگ

فرایند DNS propagation چه تاثیری بر عملکرد و سرعت سایت دارد؟

فرایند DNS propagation به بازه‌ زمانی اشاره دارد که از لحظه بروزرسانی رکوردهای DNS در زون اصلی (Primary Zone) روی سرور نام معتبر (Authoritative Name Server) آغاز شده و تا وقتی ادامه می‌یابد که این اطلاعات جدید، مانند ثبت یک رکورد A برای اشاره به سرور یا IP جدید، در تمام "سرورهای بازگشتی DNS" یا Recursive DNS Servers منتشر شود.

با وجود آنکه این تغییرات بلافاصله در سرورهای معتبر اعمال می‌شوند، انتشار کامل آنها در سرورهای بازگشتی نیازمند زمان است. دلیل این تأخیر، استفاده‌ سرورها از حافظهٔ کش برای ذخیره‌سازی موقت اطلاعات می باشد. مدت‌زمان باقی‌ماندن داده‌ها در کش نیز توسط مقدار TTL (Time to Live) تعیین می‌شود؛ بنابراین هرچه TTL بالاتر باشد، بروزرسانی در سرورهای بازگشتی دیرتر انجام خواهد شد.

فرایند DNS propagation چیست؟

در مسیر ارتباط، درخواست از سرورهای بازگشتی متعددی شامل سرورهای ارائه‌دهندهٔ خدمات اینترنت (ISP) شما عبور می‌کند. تمام این سرورها دارای مقدار TTL هستند که مشخص می‌کند اطلاعات DNS کش‌شده تا چه مدت در حافظه باقی بمانند. حافظهٔ کش DNS عمدتاً برای توزیع بار ترافیکی (load balancing) طراحی شده است تا فشار زیادی به سرورهای DNS وارد نشود و فرایند پاسخ‌گویی سریع‌تر انجام گیرد.

هنگامی که کاربر برای نخستین‌بار از مرورگر خود جهت باز کردن یک صفحهٔ وب استفاده می‌کند، درخواست او به سرور authoritative هدایت می شود اما اگر این درخواست تکرار گردد، پاسخ در مسیر و از طریق یک سرور recursive (بازگشتی) ارائه خواهد شد؛ مشروط بر آنکه داده‌ها هنوز بروز باشند. در این صورت، کاربر پاسخ را سریع‌تر دریافت خواهد کرد. DNS propagation به مقدار TTL در رکوردهای DNS وابسته است.

فرایند DNS propagation چقدر زمان می‌برد؟

فرایند DNS propagation ممکن است تا ۴۸ یا حتی ۷۲ ساعت به طول انجامد. این مدت‌زمان به عوامل مختلفی مانند مقادیر TTL، آخرین زمان بروزرسانی سرورهای بازگشتی DNS، نام سرورها (name servers) در سطح TLD و همچنین سرورهای بازگشتی ارائه‌دهندگان خدمات اینترنت (ISP) بستگی دارد. یک سرور بازگشتی تا زمانی که رکوردهای DNS موجود در حافظهٔ کش آن منقضی نشوند، به دنبال دریافت اطلاعات جدید نخواهد رفت.

فرایند DNS propagation

تصویر(1)

چرا فرایند DNS propagation زمان بر است؟

4 عامل اصلی بر سرعت فرایند DNS propagation تاثیرگذار هستند:

  1. ثبت‌کنندهٔ نام دامنه (Domain Name Registrar): هنگامی‌که نام دامنه خریداری می‌شود، این فرایند از طریق یک ثبت‌کنندهٔ دامنه (Domain Registrar) صورت می‌گیرد و نام دامنه همراه با دامنهٔ سطح بالا (TLD) مورد نظر، به ثبت می‌رسد. در این مرحله، Name Server ها و آدرس‌های IP مرتبط با آنها نیز تعیین می‌شوند. اگر از سرویس DNS مدیریت‌شده استفاده شود، لازم است تغییرات موردنظر در  Name Server های مربوط به TLD اعمال گردد. فرایند بروزرسانی این سرورها خارج از کنترل کاربر است و معمولاً بین ۲۴ تا ۴۸ ساعت زمان می‌برد تا این تغییرات در سراسر اینترنت منتشر شود.

  2. مقادیر TTL رکوردهای DNS: مقدار TTL تعیین می‌کند که سرورهای بازگشتی DNS تا چه مدت مجاز هستند یک رکورد DNS را در حافظهٔ کش خود نگه دارند. به‌عنوان مثال، اگر TTL یک رکورد A برابر با ۳۰ دقیقه باشد، بروزرسانی آن رکورد در بهترین حالت ممکن است تا ۳۰ دقیقه زمان ببرد. هرچه TTL کوتاه‌تر باشد، تغییرات سریع‌تر اعمال می‌شوند اما فشار بیشتری به سرورهای DNS تحمیل خواهد شد.

  3. سرورهای بازگشتی ISP ها: تمامی سرورهای بازگشتی DNS رفتار یکسانی ندارند. ISP ها سرورهای مختص به خود را دارند و ممکن است به مقادیر TTL تعیین‌شده در رکوردهای DNS شما بی‌توجهی کرده و اطلاعات را برای مدت طولانی‌تری نگهداری کنند. دلیل این امر کاهش ترافیک DNS است. بنابراین، سرورهای بازگشتی ISP ها می‌توانند یک گلوگاه برای DNS propagation باشند.

  4. کش DNS در رایانهٔ کاربران: زمانی که یک بازدیدکننده وارد وب‌سایتی می‌شود، رکوردهای DNS آن وب‌سایت برای مدت‌زمانی که مقدار TTL تعیین کرده است، در رایانهٔ کاربر ذخیره می‌شوند. بنابراین، اگر شما صاحب یک وب‌سایت باشید و به‌تازگی نشانی IP آن را تغییر داده اید، برای مشاهدهٔ سایت با نشانی جدید، لازم است حافظهٔ کش DNS سیستم خود را پاک‌سازی (flush) کنید. کاربران نیز باید منتظر بمانند تا فرایند DNS propagation به سیستم آنها برسد یا خودشان کش DNS را پاک کنند.

سرعت فرایند DNS propagation

تصویر(2)

افزایش سرعت فرایند DNS propagation 

برای این کار کافی است دورهٔ TTL رکوردهای DNS را کاهش دهید.  با این حال، توجه داشته باشید که همچنان باید منتظر پایان دورهٔ TTL قبلی بمانید تا کش DNS منقضی شود و سرورهای بازگشتی اطلاعات را مجدد دریافت کنند. همچنین می‌توان با انتقال زون (Zone Transfer)، بروزرسانی را روی تمام سرورهای DNS ثانویه (Secondary DNS servers) اعمال کرد.

نکته‌ای که باید در نظر داشته باشید این است که کاهش مقدار TTL باعث افزایش تعداد درخواست های DNS ارسالی به سمت سرورهای نام معتبر (Authoritative name servers) و مصرف منابع بیشتر خواهد شد.

بررسی وضعیت فرایند DNS propagation

این فرایند ساده است و با توجه به سیستم‌عامل توسط دو روش قابل انجام می باشد:

ویندوز ۱۰

در سیستم‌عامل ویندوز، ابتدا باید «Command Prompt» را باز کنید. سپس می‌توانید با استفاده از دستور nslookup وضعیت DNS وب‌سایت خود را بررسی نمایید. کافی است عبارت زیر را وارد کنید:

nslookup example.com

به‌جای example.com نام دامنهٔ خود را وارد نمایید.

این دستور رکورد A یا AAAA را بررسی کرده و آدرس‌های IP مرتبط با وب‌سایت را نمایش می‌دهد. از این طریق می‌توان بررسی کرد که آیا تغییرات موردنظر اعمال شده‌اند یا خیر.

لینوکس (Ubuntu، Debian، CentOS و...) و macOS

در سیستم‌عامل‌های لینوکس و macOS می‌توانید از دستور dig استفاده کنید. ترمینال را باز کرده و دستور زیر را وارد نمایید:

dig example.com

نتیجهٔ، مشابه دستور nslookup در ویندوز خواهد بود و شامل رکورد A یا AAAA و آدرس‌های IP فعلی است.

تأثیر ISP و TTL بر DNS propagation

زمانی‌که کاربر آدرسی از وب را جستجو می‌کند، فرایند بازیابی اطلاعات DNS از طریق مترجم DNS یا DNS Resolver متعلق به ارائه‌دهندهٔ خدمات اینترنت (ISP) آغاز می‌شود و این درخواست در نهایت به سرور نام معتبر (Authoritative Nameserver) مربوط به دامنه ختم می‌گردد.
با این حال، اگر ISP ها رکوردهای DNS را بیش از مدت زمان مشخص‌شده در TTL درون حافظهٔ کش خود نگه دارند، ممکن است انتشار تغییرات جدید با تاخیر مواجه شود.

در همین راستا، تنظیم دقیق مقدار TTL اهمیت زیادی دارد. TTL طولانی ممکن است موجب گردد بروزرسانی‌های کلی با تأخیر انجام شوند، در حالی‌که TTL کوتاه امکان اعمال سریع‌تر تغییرات مکرر را فراهم می‌کند. برای سرویس‌هایی که حساسیت بالایی دارند، توصیه می‌شود مقدار TTL به‌صورت محدود و در حد ۳۰ ثانیه تنظیم گردد. البته استفاده از TTL های بسیار پایین باید با دقت و بررسی عملکرد مترجم ها (Resolvers) همراه باشد زیرا تمام آنها ممکن است TTL کوتاه را به‌درستی رعایت نکنند.

مشکلات فرایند DNS propagation

تصویر(3)

عیب یابی مشکلات DNS propagation 

اگر با تأخیر یا مشکل در فرایند DNS propagation مواجه هستید، راهکارهای زیر می‌توانند مفید باشند:

  1. بررسی صحت تنظیمات DNS: اطمینان حاصل کنید که رکوردهای DNS شما (مانند A، CNAME، MX) به‌درستی در ثبت‌کنندهٔ دامنه تنظیم شده‌اند.
  2. بررسی پیکربندی سرورهای نام (Name servers): بررسی کنید که دامنهٔ شما به سرورهای نام مربوطه اشاره دارد، خصوصا در مواقعی که به یک ارائه‌دهندهٔ DNS جدید منتقل شده‌اید.
  3. استفاده از ابزارهای بررسی DNS propagation: از چندین ابزار بررسی DNS propagation استفاده کنید تا مشخص شود که آیا رکوردهای شما به‌صورت جهانی در حال بروزرسانی هستند یا خیر.
  4. پاک‌سازی حافظهٔ کش محلی و سرور: گاهی اوقات کش‌های محلی (در دستگاه کاربران یا وب سرورها) ممکن است اطلاعات قدیمی DNS را نگه دارند. کش DNS را هم در رایانه‌های محلی و هم در وب سرورها پاک‌سازی (flush) کنید.

تأثیر کش DNS بر DNS propagation

اگرچه فرایند DNS propagation به مدت‌زمان لازم برای انتشار بروزرسانی‌ها در سراسر سرورهای DNS اشاره دارد اما نقش کش DNS در تجربهٔ کاربران نهایی بسیار کلیدی است. سرورهای بازگشتی DNS، ارائه‌دهندگان خدمات اینترنت و حتی دستگاه‌های شخصی کاربران، رکوردهای DNS را در حافظهٔ کش نگه می‌دارند تا ضمن افزایش سرعت پاسخ‌گویی، بار ترافیکی وارد شده بر سرورهای معتبر کاهش یابد.

با این حال، همین سیستم کش می‌تواند موجب شود تا کاربران پس از اعمال تغییرات در رکوردهای DNS، همچنان اطلاعات قدیمی را مشاهده کنند. برای اطمینان از اینکه کاربران سریع‌تر به نسخهٔ بروز دسترسی پیدا نمایند، می‌توان آنها را برای پاک‌سازی کش DNS دستگاه‌های خود، راهنمایی کرد. در غیر این صورت، باید منتظر ماند تا اطلاعات کش، طبق روال و مدت‌زمان تعیین‌شده در TTL، منقضی و بروزرسانی شوند.

تأثیر DNS propagation بر بازدیدکنندگان وب‌سایت

DNS propagation ممکن است باعث شود بازدیدکنندگان، با توجه به موقعیت جغرافیایی و زمان دسترسی، نسخه‌های متفاوتی از وب‌سایت شما را مشاهده کنند. در طول این فرایند، برخی از کاربران ممکن است:

  • به نشانی IP قدیمی وب‌سایت هدایت شوند، در حالی‌که دیگران نسخهٔ جدید را مشاهده می‌کنند.
  • با قطعی موقت یا سرعت بارگذاری پایین مواجه شوند، به‌ویژه اگر رکوردهای DNS قدیمی از طریق کش ارائه گردند.
  • در تحویل ایمیل با مشکل روبرو شوند، به‌خصوص اگر رکوردهای MX تغییر کرده اما ISP آنها هنوز کش خود را بروزرسانی نکرده باشد.

این ناهماهنگی، به‌تدریج با تکمیل فرایند DNS propagation در سراسر شبکه، برطرف خواهد شد.

مقدار TTL رکوردهای DNS

تصویر(4)

چه اتفاقی برای ایمیل در طول فرایند DNS propagation رخ می دهد؟

هنگام بروزرسانی رکوردهای DNS، تغییر در رکوردهای مرتبط با ایمیل، به‌ویژه MX، SPF، DKIM و DMARC می‌تواند تأثیر چشم‌گیری بر عملکرد سرویس ایمیل بگذارد. اگر این رکوردها به‌طور کامل در شبکهٔ DNS انتشار نیافته باشند، ممکن است ایمیل‌های شما به مقصد اشتباهی ارسال گردد با تاخیر مواجه شده یا حتی توسط سرورهای دریافت‌کننده رد شوند.

برخلاف ترافیک وب، تحویل ایمیل به هماهنگی دقیق چندین رکورد DNS نیاز دارد. به‌عنوان نمونه، اگر رکورد MX تغییر یابد ولی این تغییر به‌طور کامل در سطح جهانی گسترش پیدا نکند، پیام‌های ایمیل ممکن است تحویل داده نشوند. به همین ترتیب، تاخیر در انتشار رکوردهای SPF یا DKIM می‌تواند موجب اختلال احراز هویت ایمیل‌های معتبر شود و آنها را در پوشهٔ spam قرار دهد.

برای کاهش اختلال در سرویس ایمیل، اقدامات زیر توصیه می‌شود:

  • TTL رکوردهای MX و TXT را حداقل ۲۴ تا ۴۸ ساعت پیش از اعمال تغییرات کاهش دهید.
  • سرور ایمیل قدیمی را به‌طور موقت فعال نگه دارید تا ایمیل‌هایی که در دورهٔ انتقال به آن ارسال می‌شوند از بین نروند.

نتیجه‌گیری

فرایند DNS propagation اگرچه در ظاهر ساده به نظر می‌رسد اما مجموعه‌ای از عوامل فنی و زیرساختی را دربر می‌گیرد که می‌توانند تأخیرهایی در دسترسی کاربران به اطلاعات بروز ایجاد کنند. از مقدار TTL و رفتار سرورهای بازگشتی ISP ها گرفته تا کش محلی کاربران، هرکدام در زمان نهایی انتشار تغییرات نقشی دارند. درک صحیح این مفاهیم به مدیران شبکه و صاحبان وب‌سایت‌ها کمک می‌کند تا با برنامه‌ریزی دقیق، تأثیر تغییرات را به حداقل رسانده و از بروز اختلال در دسترسی، ایمیل و تجربهٔ کاربری جلوگیری کنند. به‌کارگیری راهکارهایی مانند کاهش TTL پیش از تغییرات، ابزارهای بررسی انتشار و آموزش کاربران در خصوص پاک‌سازی کش DNS، می‌تواند نقش موثری در تسریع و پایداری این فرایند ایفا کند.

اشتراک گذاری:

نظرات

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

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