همهچیز درباره DNS
این مقاله با یک پرسش کلیدی آغاز میشود؛ Dns چیست و چرا اینترنت بدون dns کار نمیکند؟
هربار که هریک از ما صفحه مرورگر وب را باز میکنیم و سراغ چیزی را در شبکه جهانی اینترنت میگیریم، بدون استثنا از سیستم نام دامنه یا dns استفاده میکنیم، بیآنکه روحمان خبر داشته باشد! چیزی شبیه صفحه مخاطبین تلفن همراهمان که اسمها را به شماره تماس آنها ربط میدهد، برقراری ارتباط در فضای اینترنت را امکانپذیر میکند. با این تفاوت که اینجا نام وبسایتها به آدرس ip آنها متصل میشود. DNS یک شبکه قدرتمند است که میلیاردها کاربر اینترنت و بیش از ۳۰۰ میلیون نام دامنه را متصل نگه میدارد. همراه ما باشید تا بیشتر با این مفهوم آشنا شویم و زیروبم عملکرد آن را بهتر درک کنیم.
DNS چیست؟
Dns مخفف عبارت Domain Name System به معنای سیستم نام دامنه و یک پروتکل استاندارد است که شبیه یک دفترچه تلفن، آدرس ip را برای میزبانهایی که به اینترنت عمومی یا خصوصی متصل هستند، ترسیم میکند. کاربران اینترنت به کمک این پروتکل میتوانند بهجای تایپ رشتهای از اعداد در مرورگر اینترنت، یک نام ثابت را جستجو کرده و به مقصد موردنظر هدایت شوند.
به این ترتیب نهتنها به کاربران میتوانند بهراحتی به وبسایتها و سایر خدمات تحت وب دسترسی داشته باشند، بلکه ارتباط میان میزبانها در یک شبکه محلی سادهتر از قبل میشود. در واقع باید بگوییم بدون DNS، اینترنت عملا از کار میافتد و دسترسی افراد و ماشینها به سرورهای اینترنتی غیرممکن خواهد بود.
DNS چطور کار میکند؟
اما ببینیم نحوه عملکرد dns چیست و چطور کار میکند.
در شبکههای داخلی و خارجی، اکثر هاستها یک نام میزبان و آدرس ip منحصربهفردی دارند. نام هاست شامل دامنه(های) محلی یا فرعی میزبان، نام دامنه اصلی و پسوند دامنه (مثل com، org و net) است. همه اینها در کنار هم هویتی میسازند که کلاینت میتواند با آن تعامل برقرار کند.
کامپوننتی به نام حلکننده یا ریزالور DNS (DNS Resolver) مسئول بررسی نام میزبان در حافظه نهان محلی است. این کامپوننت یک سری از سرورهای dns را فراخوانی کرده و در نهایت آدرس ip وبسایت یا سرویس در دسترس را پیدا میکند. اگر همهچیز خوب پیش برود، این فرایند کمتر از یک ثانیه طول میکشد.
زمانی که کلاینت به دنبال نام یک میزبان میگردد، DNS ریزالور طی این چهار مرحله آدرس ip مناسب را یافته و برمیگرداند:
- سرور بازگرداننده dns (DNS recursor)
این سرور بهعنوان واسطه بین کلاینت و سایر سرورهای DNS عمل میکند. به این صورت که زنجیرهای از ارجاعات را دنبال میکند تا آدرس ip میزبان موردنظر را پیدا کند. بهعلاوه اطلاعات را در حافظه پنهان نگه میدارد تا پاسخدهی به درخواستهای مشتری بعدی سریعتر اتفاق بیافتد.
- سرور نام ریشه (Root nameserver)
این سرور اولین درخواست را از DNS recursor دریافت کرده و بر اساس پسوند دامنه میزبان درخواستشده، سرور TDL مناسب را برمیگرداند.
- سرور TLD
این سرور اطلاعات تمام نامهای دامنه که پسوند یکسانی دارند را حفظ میکند و به محض دریافت درخواست از Recursor DNS، با نام سرور معتبر پاسخ میدهد.
- سرور نام معتبر (Authoritative nameserver)
این سرور با ذخیره سوابق DNS، وظیفه نگاشت نام دامنه را به آدرس IP برعهده میگیرد و به درخواست Recursor DNS با آدرس ip میزبان درخواستشده پاسخ میدهد. اگر آدرس IP در دسترس نباشد، سرور نام خطا میدهد.
به عنوان آخرین گام در فرآیند حل DNS، Recursor DNS آدرس IP را به مرورگر کلاینت ارسال میکند تا اتصال به وبسایت یا برنامه موردنظر و بارگذاری آن اتفاق بیافتد.
بنابراین همانطور که میبینید، DNS از یک فرآیند چند مرحلهای برای مسیریابی مشتریان به مقصد استفاده میکند.
مطالعه مقاله پاور سرور را پیشنهاد می دهیم.
انواع کوئری در dns چیست؟
برای درک بهتر نحوه عملکرد dns باید این سه کوئری را بشناسید.
- کوئری بازگشتی (Recursive query): در یک کوئری بازگشتی، کلاینت انتظار دارد که یک سرور DNS (معمولا یک ریزالور recursive resolver) با پیغام پاسخ (در صورت یافتن منبع) یا پیغام خطا (در صورت نیافتن منبع) به او پاسخ دهد.
- کوئری تکراری (Iterative query): کلاینت به سرور DNS اجازه میدهد بهترین پاسخی که میتواند را ارائه کند. اگر نام میزبان در سرور DNS یافت نشود، ارجاعی به یک سرور DNS معتبر در سطح پایینتری از سلسله مراتب DNS بازگردانده میشود. سپس کلاینت یک کوئری برای آدرس ارجاعی میفرستد. این فرآیند با تمام سرورهای DNS در زنجیره کوئری ادامه مییابد تا زمانی که یک خطا رخ دهد یا مهلت کوئری به پایان برسد.
- کوئری غیربازگشتی (Non-recursive query): این کوئری زمانی اتفاق میافتد که DNS Resolver از یک سرور نام DNS درخواست یک رکورد را داشته باشد؛ چون سرور مورد نظر از اعتبار درخواستی برای رکورد موردنظر برخوردار است یا آن اطلاعات در حافظه پنهان سرور وجود دارد. سرورهای DNS معمولاً برای حفظ پهنای باند و کاهش بار سرورها، رکوردهای DNS را در سلسله مراتب بالاتر ذخیره میکنند.
مهمترین دلایل اهمیت DNS چیست؟
اما بپردازیم به اینکه مهمترین دلیل اهمیت dns چیست؟!
DNS مدتهاست که در مرکزیت اینترنت قرار گرفته و به بخش مهمی از ارتباطات داخلی در زیرساختهای توزیعشده و پویای امروزی تبدیل شده است. گوشهای از اهمیت dns برمیگردد به محیطهای کوبرنتیز که بهطور منظم با هر استقرار جدید آدرس ip تازه تولید میکنند. فناوریهای مبتنی بر DNS مانند KubeDNS و CoreDNS در کنار سرویسهای مبتنی بر ابر مانند Amazon Route 53، به تیمها اجازه میدهد سرویسهای چند منطقهای مبتنی بر ابر را مستقر کرده و به مشتریان بیشتری دسترسی داشته باشند. از دیگر دلایل اهمیت dns میتوان به کاربرد آن در زمینههای زیر اشاره کرد:
- مسیریابی پیام ها به ایمیل سرورها و خدمات پست الکترونیکی؛
- اتصال سرورهای برنامه، پایگاههای داده و میانافزارها در یک برنامه تحت وب؛
- شبکههای خصوصی مجازی؛
- برنامههای اشتراکگذاری همتا به همتا؛
- بازیهای چند نفره؛
- خدمات پیام فوری و جلسات آنلاین؛
- ارتباط بین دستگاههای اینترنت اشیا، دروازهها و سرورها؛
- مسیریابی سریع اتصالات بین مراکز داده توزیع شده در سطح جهانی؛
- مسیریابی کاربران به CDN؛
- شناسایی موقعیت فیزیکی هر کاربر و اطمینان از مسیریابی آنها به نزدیکترین منبع ممکن؛
- انتقال ترافیک به روشی کنترلشده از منابع داخلی به منابع ابری.
BGP چیست؟ برای اطلاعات بیشتر می توانید مقاله مورد نظر را مطالعه نمایید.
مزایای استفاده از DNS چیست؟
Dns در کنار استانداردهایی مانند پروتکل کنترل انتقال TCP و فناوریهایی مانند تکامل بلندمدت LTE به یک عنصر حیاتی برای عملیات اینترنت تبدیل شده و دلایل خوبی برای این تغییر بزرگ وجود دارد. اگر میخواهید بدانید گوشهای از مزیتهای dns چیست، این بخش را تا انتها مطالعه کنید.
اتکای فزاینده به اینترنت
هرچه میگذرد، مرور وب به بخش اصلی فعالیتهای جامعه و کسبوکارهای کوچک و بزرگ تبدیل میشود و Dns سیستم اصلی و جامعی است که مرور اینترنت را امکانپذیر میکند. بهگونهای که عملکرد اینترنت بدون این سرورها امکانپذیر نخواهد بود. در دنیای امروز که وبسایتها کل اینترنت را تشکیل میدهند و برای بارگیری هر یک از آنها به یک سرور DNS نیاز است، dns با پیگیری تمام آدرسهای ip استفاده از اینترنت را تسهیل میکند.
رفع نیاز به حفظ آدرسهای IP
یک راه هوشمندانه برای ترجمه نام دامنه یا زیر دامنه به آدرسهای IP، استفاده از سرورهای DNS است. فقط یک لحظه چشمتان را ببندید و تصور کنید مجبور باشید برای هر وبسایت، یک رشته عدد را بهخاطر بسپارید. وحشتناک نیست؟ سیستم DNS آرشیو و دستهبندی دادهها را برای موتور جستجو ساده میکند و نیازی به بهخاطرسپردن شناسههای ip برای همه وبسایتها نیست.
افزایش امنیت
سرورهای DNS برای ایمنسازی اتصالات در خانه یا محیط کار از اهمیت ویژهای برخوردارند. برخی از سرورهای DNS متمرکز بر امنیت معمولا اطمینان حاصل میکنند که تمام تلاشها برای حمله به محیط سرور قبل از دسترسی به دستگاه شما کاملا متوقف شود. اگر مدیریت شرکت بزرگی را برعهده دارید که حجم زبادی از دادههای حساس را پردازش میکند، با استفاده از سرور DNS میتوانید یک پروتکل سیستم نام دامنه طراحی کرده و دادههایی با ساختار تعریف شده و جزئیات مشخص را مبادله کنید.
سازگاری با موتورهای جستجو
موتور جستجو عصای دست کاربران برای دسترسی به وبسایتها است. این ابزار سریع کار میکند چون نیازی به ردیابی آدرس ip وبسایتها ندارد و برای برقراری اتصال و دسترسی به آنها، از تکنولوژی DNS برای تبدیل نام دامنه به آدرس ip بهره میبرد.
افزایش سرعت اتصال به اینترنت
سرعت اتصال بالا یکی از مهمترین مزیتهای سرور DNS برای افراد و مشاغلی است که از آن بهره میبرند. سرورهای DNS به اینترنت پرسرعت دسترسی دارند. یعنی خیلی سریع به درخواستها پاسخ میدهند و کمتر از یک ثانیه طول میکشد تا یک آدرس ip را پیدا کنند. اگر سروری نتواند آدرس ip را بیابد، این درخواست به نزدیکترین سرور سیستم نام دامنه ارسال میشود که به نوبه خود سرعت را افزایش میدهد.
لود بالانسینگ
چنانچه یک سرور DNS درخواستهای زیادی دریافت کند، درخواستهای جدید به نزدیکترین سرور سیستم نام دامنه ارسال میشوند. این یعنی سرورها لود بالانسینگ را بهخوبی مدیریت میکنند و با تعریف دقیق انواع دادهها، چارچوبها و مبادلات ارتباطی، امکان را برای کاربران فراهم میکنند تا بر دامنههای خود مسلط باشند.
مهمترین چالش های DNS چیست؟
یکی از دلایل اصلی قطعی شبکه مشکلات DNS resolution است. از آنجا که زیرساختهای مدرن زمینه شبکههای پیچیدهتر و بهم پیوستهتری فراهم میکند، یک اشتباه کوچک و پیکربندی نادرست یک سرور DNS، مانند یک آدرس IP گمشده یا اشتباه تایپ شده در یک سرور معتبر، میتواند منجر به خرابیهای پشتهم برای همه سرویسهایی شود که با سرور مربوطه ارتباط برقرار میکنند.
از طرفی عیبیابی این مشکلات هم در طول تاریخ دشوار بوده است. مثلا ممکن است گاهی تیمها نیازمند بررسی سرورهای درگیر در جستجوی dns شوند تا علت اصلی خطا را مشخص کنند. حتی مسائل مربوط به حل DNS ممکن است ناشی از تنظیمات سمت سرویس گیرنده باشند و عملا سازمان هیچ دسترسی به آن نداشته باشد.
از سوی دیگر ارائهدهندگان DNS بهدلیل نقش اساسی در پشتیبانی از ارتباطات داخلی و خارجی اکثریت قریب به اتفاق سازمانها، یکی از اهداف اولیه برای حملات DDoS و مسمومیت حافظه پنهان محسوب میشوند. در چنین مواردی که ارائهدهنده مورد حمله قرار میگیرد، شرکت قادر به حل مسئله قطعی نیست و باید با عواقب آن دستوپنجه نرم کند.
درباره سیر تا پیاز حملات dns اینجا بخوانید.
کلام آخر
DNS زیربنای شبکه گسترده اینترنت است که هر روز از آن استفاده میکنیم. هر زمان که ایمیلی ارسال میکنیم یا وبسایتی را بارگذاری میکنیم، این شبکه شفاف در پسزمینه اجرا میشود تا نامهای قابل درک برای کاربر را به شماره ip قابل درک برای شبکه تبدیل کند. امیدواریم بعد از مطالعه این مقاله بهخوبی درک کرده باشید که آشنایی با dns به عنوان بخشی از ساختار شبکه جهانی وب، در هر محیط کاری لازم و ضروری است و شناخت نحوه عملکرد و ایمنسازی این سیستم که در این مقاله مفصل دربارهاش صحبت کردیم، باید جزو اولویتهای اساسی هر سازمان باشد.
شما اطلاعات بیشتری درباره dns دارید؟ اگر پاسختان مثبت است یا نظری درباره این محتوا دارید، مشتاق شنیدن نظرات ارزشمندتان هستیم.
دیدگاهتان را بنویسید