هر دستگاه متصل به اینترنت یک آدرس آی پی منحصربهفرد دارد که برای پیدا کردن دستگاه از آن استفاده میشود. با تبدیل آدرس IP از اعداد به حروف، دیگر نیازی به حفظ کردن یک سری اعداد برای رسیدن به وبسایت مورد نظر نخواهد بود. اگر این اتفاق نمیافتاد باید بجای حروف و نام دامنه، اعداد را حفظ میکردیم. حتی ممکن است با اعدادی پیچیدهتر و یا ترکیب اعداد با حروف مواجه شویم. بهعنوانمثال ۲۴۰۰:cb٠٠:٢٠٤٨:١::c٦٢٩:d٧a٢ یکی از پیچیدهترین آیپیهاست که بههیچعنوان قابل حفظ کردن نیست!
Domain Name System-DNS سیستمی است که آدرس سایت که برای انسان قابل خواندن است مانند www.wbinja.net را به آدرسی که برای ماشین قابل خواندن باشد مانند 81.31.248.183 تبدیل می کند. DNS اطلاعات دیگری در باره نام دامنه، مانند Mail service را نیز تهیه میکند.
دلیل اهمیت DNS چیست؟
DNS مثل یک دفترچه تلفن برای اینترنت است. اگر شما نام شخصی را میدانید و میخواهید شماره تلفن او را بیابید کافیست که به دفترچه تلفن خود نگاهی بیاندازید. DNS همین خدمات را در اینترنت ارائه میدهد.
وقتی که در مرورگر خود آدرس Http://www.yourdomain.ir را وارد میکنید. کامپیوتر شما از DNS برای یافتن آدرس IP سایت که عبارتست از 81.31.248.183 استفاده میکند. بدون DNS برای ورود به آدرس سایت ما، یا هر آدرس دیگری، باید مستقیما آدرس IP سایت را در مرورگر تایپ کنید. مثلا 81.31.248.183 را بجای www.wbinja.net تایپ نمایید.
تبلیغات درون متنی/
اگر تمایل دارید برای شرکت خود اقدام به طراحی سایت ارزان کنید پیشنهاد می کنم ابتدا مقالات مربوط به تفاوت طراحی سایت شرکتی و طراحی سایت فروشگاهی را مطالعه کنید. من به شما پیشنهاد می کنم خدمات طراحی سایت پیام آوا را برای این کار نگاه کنید. شرکت پیام آوا بهترین و با کیفیت ترین خدمات طراحی سایت را در قالب طراحی سایت ارزان و مقرون به صرفه به شما ارائه می کند.
تبلیغات درون متنی
DNS چگونه کار می کند
وقتی که وارد سایتی میشوید. مثلا سایت www.wbinja.net کامپیوتر شما یک سری مراحل را میپیماید که طی آن آدرس سایت به IP آدرس که برای ماشین قابل خواندن است تبدیل میشود. این اتفاق هر بار که شما از یک نام دامنه domain name در مرورگر خود استفاده می کنید رخ میدهد. استفاده از نام دامنه میتواند هنگامیکه شما وبسایتی را باز می کنید و یا هنگامیکه یک ایمیل می فرستید و یا هنگامیکه به یک رادیوی اینترنتی گوش میدهید. رخ دهد.
گام هایی که برای تبدیل آدرس سایت به IP سایت انجام میشوند عبارتند از :
گام 1: درخواست اطلاعات
پردازش زمانی آغاز میشود که شما از کامپیوتر خود برای یافتن IP یک دامنه استفاده میکنید. مثلا هنگامیکه شما به وب سایت www.wbinja.net مراجعه میکنید. اولین جایی که کامپیوتر شما بدنبال آن میگردد DNS cache local است. Local DNS Cache در کامپیوتر شما آدرس وب سایت هایی که اخیرا وارد آنها شده اید را برای شما نگهداری می کند. این آدرس ها شامل IP آدرس این سایت ها نیز میباشد. ( اگر سرور سایتی قبل از اینکه شما این آدرس ها را بروز کنید تغییر کند. شما دیگر قادر به دسترسی به سایت نیستید و باید اطلاعات ثبت شده در Local DNS Cache را توسط فرمان ipconfig /flushdns در نرم افزار Command Prompt پاک نمایید.) اگر کامپیوتر شما اطلاعات سایت را از قبل ذخیره نکرده باشد. کامپیوتر شما باید از DNS query برای یافتن IP سایت استفاده کند. (در نرم افزار Command Prompt دستور nslookupwbinja.net استفاده کنید.)
گام 2: پرسش از recursive DNS servers
اگر اطلاعات سایت در روی سیستم شما ذخیره نشده باشد. کامپیوتر با جستجو در ISP سیستم recursive DNS servers سعی در یافتن Ip آدرس می کند. اینکار از جمله عملیات هایی است که بصورت اختصاصی برای یافتن DNS یک سایت انجام میپذیرد. Recursive servers ها کش خاص خود را دارند، بنابراین جستجو معمولا همینجا ختم میشود و شما IP سایت را به دست خواهید آورد.
گام 3: پرسش از root nameservers
اگر سرورهای recursive servers آدرس DNS سایت شما را نداشتند، کامپیوتر شما از root nameservers برای یافتن IP آدرس سایت استفاده می کند. یک nameserver یک کامپیوتر است که به سوالات پرسیده شده درباره نام دامنه ها مانند IP address ها پاسخ میدهد. سیزده تا root nameservers مانند سیستم سویچنگ تلفن برای DNS عمل می کنند. آنها شاید ندانند که IP سایت مورد نظر شما چیست اما آنها میدانند که پاسخ این سوال را از کجا بیابند.
گام 4: پرسش از TLD nameservers
root nameservers ها ابتدا به اولین بخش از سئوال ما میپردازند. آنها آدرس سایت را از راست به چپ می خوانند. www.wbinja.net- حالا آنها میتوانند پرسش شما را به Top-Level Domain (TLD) nameservers منتقل کنند. هر TLD مانند .com,.org,.ir برای خود یک سری nameservers مخصوص به خود دارد. این nameservers ها مانند منشی تلفنی TLD عمل می کنند. آنها اطلاعات مد نظر ما را ندارند ولی میتوانند ما را به سروری که این اطلاعات را دارد منتقل کنند.
گام 5: پرسش از authoritative DNS servers
TLD nameservers بخش دوم از درخواست ما را مورد مطالعه قرار میدهند www.wbinja.net و ما را برای این دامنه خاص مستقیماً به nameservers responsible مربوطه هدایت میکنند. این authoritative nameservers ها مسئول پاسخگویی درباره تمام اطلاعات مربوط به دامنه ها میباشند. این اطلاعات در DNS records ها ذخیره شده است. تعداد رکورد های اطلاعاتی در این قسمت بسیار زیاد است و هر رکورد مسئول نگهداری نوع خاصی از داده است. در این مثال ما به دنبال اطلاعات IP address برای سایت www.wbinja.net میگردیم. بنابراین از authoritative nameserver برای Address Record (A) یا رکورد آدرس پرسوجو می کنیم.
گام 6: دریافت اطلاعات رکورد
سرورهای recursive در پاسخ به سوال ما رکورد A را برای سایت www.wbinja.net بازگردانی می کنند. این اطلاعات از سرور های authoritative nameservers دریافت شده است و رکورد اطلاعات مد نظر ما را در کش سیستم سرورهای recursive ذخیره می شود. اگر کاربر دیگری برای سایت www.wbinja.net درخواست IP Address بدهد. اینبار سرور های recursive این اطلاعات را در خود خواهند داشت و به کاربر پاسخ خواهند داد و نیازی به تکرار تمام مراحل پردازش ذکر شده در بالا نیست. هر رکورد اطلاعات یک مقدار time-to-live یا زمان حیات دارد. درواقع چیزی مانند تاریخ انقضاء، هنگامیکه این زمان به اتمام برسد. سرور های recursive باید اطلاعات رکورد های خود را از نو درخواست کنند. تا مطمئن شوند که اطلاعات ذخیره شده در رکورد ها منقضی نشده باشد.
گام 7 : دریافت پاسخ
سرورهای recursive رکورد A را به کامپیوتر شما ارجاع خواهند داد. کامپیوتر شما نیز این اطلاعات را در کش خود ذخیره می کنند. سپس از این اطلاعات IP Address خوانده شده و به مرورگر شما انتقال داده میشود. سپس مرورگر ها با webserver ارتباط برقرار کرده و اطلاعات سایت را به نمایش می گذارند.
تمام این مراحل از ابتدا تا انتها، تنها چند میلی ثانیه برای پردازش زمان نیاز دارد.
موارد امنیتی
برخی ویروس ها و بدافزار ها میتوانند DNS server های پیشفرض را به DNS server های مخرب تبدیل کنند. این ویروس ها معمولا سایت های پر طرفدار را برای چنین حملاتی انتخاب می کنند. برای مثال اگر به سایت فیسبوک از طریق DNS server اصلی آن متصل شوید خود سایت فیسبوک برای شما باز میشود اما اگر کامپیوتر شما از طریق Inteet service provider های که از DNS server های مخرب استفاده می کنند به این سایت متصل شوند. شما بجای سایت فیسبوک سایت دیگری را مشاهده خواهید کرد. در این حالت مرورگر شما آدرس سایت را به درستی نشان میدهد ولی شما در سایت اصلی نیستید و به سایت مخربی انتقال داده شده اید.
چهار سرور DNS برای بارگذاری یک صفحه وب درگیر هستند:
- DNS recursor: این سرور را میتوان بهعنوان کتابدار در نظر گرفت که از او خواسته میشود یک کتاب خاص را در یک کتابخانه پیدا کند. DNS recursor سروری طراحیشده برای دریافت پرسوجو (query) از سیستم کاربر از طریق برنامههایی مانند مرورگرهای وب است. معمولاً recursor مسئول ایجاد درخواستهای اضافی برای پاسخ به کوئری DNS کاربر هست.
- Root nameserver: سرور root اولین گام در ترجمهی نام میزبان (Host name) به آدرس IP هست. این امر مصداق فهرستی در یک کتابخانه هست که نام کتابهای چندین قفسه را شامل میشود. سرور مورد نظر بهطور معمول بهعنوان مرجعی برای آدرسهای خاص متعددی عمل میکند.
- TLD nameserver: نام دامنه سطح بالا (TLD) میتواند بهعنوان یک قفسه خاص از کتابها در یک کتابخانه تلقی شود. این نام سرور، مرحله بعدی در جستجوی یک آدرس IP خاص هست و آخرین بخش، نام هاست را میزبانی میکند. بهعنوانمثال «com» در «com»، سرور TLD هست.
- Authoritative nameserver: آخرین نام سرور را میتوان بهعنوان یک فرهنگ لغت در یک قفسه کتاب در نظر گرفت که در آن یک نام خاص میتواند به معنی خود ترجمه شود. نام سرور معتبر آخرین توقفگاه در کوئری نام سرور است. اگر نام سرور معتبر به رکورد درخواست شده دسترسی داشته باشد، آدرس IP برای نام هاست درخواست شده را به DNS Recursor (کتابداری) که درخواست اولیه را کرده است، باز میگرداند.
تفاوت بین سرور authoritative DNS و تحلیلگر recursive DNS چیست؟
هر دو مفهوم به سرورهایی (گروههایی از سرورها) اشاره دارند که بخشی از زیرساخت DNS هستند، اما هرکدام نقش متفاوتی را ایفا میکنند و در موقعیتهای مختلف درون کانال ارتباطی یک کوئری DNS وجود دارند. تنها تفاوتشان این است که «recursive resolver» در ابتدای کوئری DNS و «authoritative nameserver» در انتهای آن قرار دارد.
Recursive DNS resolver چیست؟
Recursive resolver کامپیوتری است که به درخواست بازگشتی از سمت کاربر پاسخ داده و زمانی را برای بررسی رکورد DNS اختصاص میدهد. این کار را با ایجاد یک سری درخواستها انجام میدهد تا زمانی که به DNS nameserverمعتبری برای رکورد درخواست شده برسد، زمان پایان یابد و یا اینکه هیچ رکوردی را پیدا نکرده و پیام خطایی را بجای آن ارسال کند. خوشبختانه، تحلیلگرهای recursive DNS برای ردیابی رکوردهای موردنیاز برای پاسخ به درخواست کاربر، نیازی به ایجاد درخواستهای متعدد ندارند؛ کَش کردن (Cashing) فرآیندی است برای باثبات کردن اطلاعات که برای پاسخ به برخی درخواستهای ضروری، میانبری ایجاد کرده و از نتایج درخواستهای قبلی ایجاد شده برای بررسی DNS و رکورد منابع استفاده میکند. ازاینرو کاربر خیلی سریعتر میتواند نتیجهی درخواست خود را ببیند.