کش DNS (گاهی اوقات به نام حافظه پنهان DNS Resolver نامیده می شود) یک پایگاه داده موقت است که توسط سیستم عامل رایانه نگهداری می شود و حاوی سوابقی از تمام بازدیدهای اخیر و تلاش برای بازدید از وب سایت ها و سایر دامنه های اینترنتی است.
به عبارت دیگر، حافظه نهان DNS فقط حافظه ای از جستجوهای اخیر DNS است که رایانه شما می تواند به سرعت به آن رجوع کند زمانی که سعی می کند بفهمد چگونه یک وب سایت را بارگیری کند.
اطلاعات این مقاله برای کاربران خانگی که تنظیمات DNS خود را تغییر نداده اند اعمال می شود.
هدف یک کش DNS
اینترنت برای حفظ فهرستی از تمام وب سایت های عمومی و آدرس های IP مربوطه آنها به سیستم نام دامنه متکی است. می توانید آن را به عنوان یک دفترچه تلفن در نظر بگیرید.
با دفترچه تلفن، مجبور نیستیم شماره تلفن همه را حفظ کنیم، این تنها راه ارتباط تلفنها است: با یک شماره. به همین ترتیب، از DNS استفاده می شود تا بتوانیم از به خاطر سپردن آدرس IP هر وب سایت خودداری کنیم، که تنها راهی است که تجهیزات شبکه می توانند با وب سایت ها ارتباط برقرار کنند.
این چیزی است که پشت پرده اتفاق می افتد وقتی از مرورگر وب خود می خواهید یک وب سایت را بارگیری کند.
شما یک URL مانند lifewire.com تایپ می کنید و مرورگر وب شما آدرس IP را از روتر شما می خواهد. روتر یک آدرس سرور DNS ذخیره شده دارد، بنابراین از سرور DNS آدرس IP آن نام میزبان را می خواهد. سرور DNS آدرس IP متعلق به lifewire.com را پیدا می کند و سپس می تواند بفهمد که چه وب سایتی را درخواست می کنید، پس از آن مرورگر شما می تواند صفحه مناسب را بارگیری کند.
این برای هر وب سایتی که می خواهید بازدید کنید اتفاق می افتد. هر بار که از یک وب سایت با نام میزبان بازدید می کنید، مرورگر وب درخواستی را به اینترنت ارسال می کند، اما این درخواست تا زمانی که نام سایت به یک آدرس IP "تبدیل" نشود، تکمیل نمی شود.
مشکل این است که حتی اگر هزاران سرور DNS عمومی وجود دارد که شبکه شما می تواند از آن برای سرعت بخشیدن به فرآیند تبدیل/تحلیل استفاده کند، باز هم داشتن یک نسخه محلی از "دفتر تلفن" سریعتر است. جایی که حافظه پنهان DNS وارد عمل می شود.
کش DNS تلاش می کند تا با مدیریت وضوح نام آدرس هایی که اخیراً بازدید کرده اید، قبل از ارسال درخواست به اینترنت، روند را سرعت بیشتری بخشد.
در واقع حافظه پنهان DNS در هر سلسله مراتبی از فرآیند "جستجو" وجود دارد که در نهایت باعث می شود رایانه شما وب سایت را بارگیری کند. رایانه به روتر شما می رسد، که با ISP شما تماس می گیرد، که ممکن است قبل از اینکه به «سرورهای DNS ریشه» برسد، به یک ISP دیگر برخورد کند. هر یک از این نقاط در فرآیند به همان دلیل یک حافظه پنهان DNS دارند، یعنی سرعت بخشیدن به فرآیند حل نام.
چگونه یک کش DNS کار می کند
قبل از اینکه مرورگر درخواست های خود را به شبکه بیرونی ارسال کند، رایانه هر یک را رهگیری می کند و نام دامنه را در پایگاه داده کش DNS جستجو می کند.پایگاه داده حاوی لیستی از همه نامهای دامنهای است که اخیراً به آنها دسترسی پیدا کردهاید و آدرسهایی که DNS برای اولین بار درخواستی برای آنها محاسبه کرده است.
محتوای یک کش DNS محلی را می توان با استفاده از دستور ipconfig /displaydns در ویندوز مشاهده کرد، با نتایجی شبیه به این:
docs.google.com
نام رکورد…..: docs.google.com
نوع ضبط…..: 1
زمان برای زندگی….: 21
طول داده…..: 4
بخش…….: پاسخ
A (میزبان) رکورد…: 172.217.6.174
در DNS، رکورد "A" بخشی از ورودی DNS است که حاوی آدرس IP برای نام میزبان داده شده است. کش DNS این آدرس، نام وب سایت درخواستی و چندین پارامتر دیگر را از ورودی DNS میزبان ذخیره می کند.
مسمومیت کش DNS چیست؟
کش DNS زمانی که نام دامنه یا آدرس IP غیرمجاز در آن درج شود مسموم یا آلوده می شود.
گاهی ممکن است حافظه پنهان به دلیل اشکالات فنی یا حوادث اداری خراب شود، اما مسمومیت حافظه پنهان DNS معمولاً با ویروسهای رایانه یا سایر حملات شبکه که ورودیهای DNS نامعتبر را در حافظه پنهان وارد میکنند، مرتبط است.
مسمومیت باعث می شود درخواست های مشتری به مقصدهای اشتباه هدایت شوند، معمولاً وب سایت های مخرب یا صفحات پر از تبلیغات.
به عنوان مثال، اگر رکورد docs.google.com از بالا یک رکورد "A" متفاوت داشته باشد، وقتی docs.google.com را در مرورگر وب خود وارد می کنید، به جای دیگری برده می شوید.
این یک مشکل بزرگ برای وب سایت های محبوب ایجاد می کند. اگر یک مهاجم درخواست شما را برای Gmail.com هدایت کند، برای مثال، به وبسایتی که شبیه Gmail است اما اینطور نیست، ممکن است در نهایت از یک حمله فیشینگ مانند شکار نهنگ رنج ببرید.
Flushing DNS: چه کاری انجام می دهد و چگونه آن را انجام دهیم
هنگام عیبیابی مسمومیت حافظه پنهان یا سایر مشکلات اتصال به اینترنت، ممکن است یک سرپرست رایانه بخواهد یک حافظه پنهان DNS را پاک کند (به عنوان مثال پاک، بازنشانی یا پاک کند).
از آنجایی که پاک کردن کش DNS همه ورودیها را حذف میکند، هر رکورد نامعتبر را نیز حذف میکند و رایانه شما را مجبور میکند دفعه بعد که سعی میکنید به آن وبسایتها دسترسی پیدا کنید، آن آدرسها را دوباره پر کند. این آدرسهای جدید از سرور DNS گرفته شدهاند که شبکه شما برای استفاده از آن تنظیم شده است.
بنابراین، برای استفاده از مثال بالا، اگر رکورد Gmail.com مسموم شد و شما را به یک وبسایت عجیب هدایت کرد، پاک کردن DNS اولین قدم خوبی برای بازگرداندن Gmail.com معمولی است.
در مایکروسافت ویندوز، میتوانید کش DNS محلی را با استفاده از دستور ipconfig /flushdns در یک Command Prompt پاک کنید. میدانید وقتی میبینید پیکربندی IP Windows با موفقیت حافظه پنهان Resolver DNS یا پاکسازی موفقیتآمیز DNS Resolver Cache را مشاهده کردید، کار میکند..
از طریق ترمینال فرمان، کاربران macOS باید از dscacheutil -flushcache استفاده کنند، اما بدانند که پس از اجرای آن پیام «موفقیتآمیزی» وجود ندارد، بنابراین به شما اطلاع داده نمیشود که کار کرد.در برخی موارد، کاربران مک نیز باید پاسخ دهنده DNS را بکشند (sudo killall -HUP mDNSResponder) کاربران لینوکس باید /etc/rc.d/init را وارد کنند. دستور d/nscd restart. دستور دقیق بر اساس توزیع لینوکس شما متفاوت خواهد بود.
روتر می تواند یک کش DNS نیز داشته باشد، به همین دلیل است که راه اندازی مجدد روتر اغلب یک مرحله عیب یابی است. به همان دلیلی که ممکن است کش DNS را در رایانه خود پاک کنید، می توانید روتر خود را مجددا راه اندازی کنید تا ورودی های DNS ذخیره شده در حافظه موقت آن پاک شود.