DNS چیست؟ و چطور ست میشود؟
در این مقاله میخوانید
هر دامنه یا وبسایتی که مشاهده میکنید، از یک یا چند DNS خاص استفاده میکند. حال DNS چیست و کجای وبسایت قرار دارد و چگونه کار میکند؟ اینها سؤالاتی هستند که ممکن است در ذهن کاربران بهوجود میآیند. DNS سیستمی جهانی است که تمامی وبسایتها و دامنهها از آن استفاده میکنند و بدون آن هیچ وبسایتی پابرجا نخواهد ماند. در این مطلب، DNS را بهطورکامل توضیح میدهیم و به نکات مهمی اشاره میکنیم که هنگام خرید آن باید مدنظر قرار دهید؛ پس تا پایان با ما همراه باشید.
DNS چیست؟
DNS مخفف Domain Name System و بهمعنای «سیستم نام دامنه» است که نام دامنه وبسایت (برای مثال www.parspack.com) را به آدرس IP (برای مثال ۱۹۲.۰.۲.۹۹) تبدیل میکند. تمامی کامپیوترهای موجود در اینترنت، از تلفن هوشمند یا لپتاپ گرفته تا سرورهای وبسایتها، با استفاده از اعداد یکدیگر را شناسایی و ارتباط برقرار میکنند. این اعداد IP نام دارد. هنگامیکه میخواهید وارد وبسایتی شوید و با سرور آن ارتباط برقرار کنید، نیازی نیست آدرس IP آن را وارد کنید؛ بلکه تنها کافی است نام دامنه وبسایت را درج کنید و عملیات تبدیل نام دامنه به IP را به DNS بسپارید. با این کار نام دامنه قابلفهم برای انسان، به IP قابلفهم برای ماشین تبدیل میشود.
سرور DNS یا Nameserver چیست؟
هنگامیکه آدرس وبسایتی را وارد میکنید، باید به IP سرور مرتبط با دامین خود متصل شوید. حال این اطلاعات در کجا قرار دارد و سیستم چگونه میفهمد که دامنهها مختص کدام سرورند؟ سرور DNS یا Nameserver مانند دفترچهتلفن عمل و تمامی رکوردهای DNS و IPهای مرتبط با آنها را ثبت میکند. بهعبارتدیگر، وظیفه آن ارائه اطلاعات DNS مرتبط با دامنههاست.
معمولاً سرویسهای میزبانی وب Nameserverها را مدیریت میکنند. هر هاست یا سروری که میخرید، آدرس IP مخصوص خود را دارد که باید ثبت شود. هر سرور DNS وظیفه دارد اطلاعات مربوط به دامنه و IP سرورها را درون خود ذخیره کند تا درصورت فراخوانی، بتواند اطلاعات را ارسال کند. DNSهای درون Nameserverها در سراسر جهان پخش شدهاند و برای شناسایی باید دراختیار همگی آنها قرار بگیرد؛ بههمیندلیل، ثبت DNSهای دامنه ممکن است تا ۴۸ ساعت طول بکشد.
هر Nameserver آدرسهای DNS خاص خود را دارد که میتواند رکوردهای بسیاری از دامینها و IPها را در خود ذخیره کند. برای مثال:
- Ns1.parspack.co
- Ns2.parspack.co
هر نام دامنه باید حداقل دوبهدو به DNS متصل باشد؛ چراکه سرور و سرور اصلی و سرورهای بعدی برای زمانهایی استفاده میشوند که سرور اصلی دردسترس نباشد. هنگامیکه آدرس دامنه وبسایتی فراخوانی میشود، اطلاعات IP سرور شما از سرور DNS خوانده و به مرورگر ارسال میشود و سپس درخواست دریافت اطلاعات به سرورتان فرستاده میشود.
DNS چگونه کار میکند؟
همانطورکه گفتیم، DNS وظیفه برگرداندن IP از روی دامین را برعهده دارد. این عملیات طی چندین مرحله انجام میشود تا درنهایت آدرس IP معتبر و سالمی بهدست کاربر برسد. پیداکردن آدرس IP وبسایت در میان تمامی DNSهای موجود در دنیا کمی دشوار است که با معماری DNS این گام آسان میشود. هرکدام از این مراحل با دستهبندیکردن محل ذخیره DNS، به یافتن DNS اصلی کمک خواهند کرد. برای نمونه، در ابتدا منطقه DNS و سپس DNSهای مربوط به پسدامنه آنها بررسی میشود تا بتوان به مکان مناسبی دست یافت.
DNS Recursor .1
در مرحله اول، درخواست کاربر به این بخش ارسال میشود. این بخش با سرورهای DNS سِتشده ارتباط برقرار میکند تا بتواند IP را پیدا کند. برای انجام این کار، کوئریها را به سه بخش بعدی، یعنی Root Nameservers و Top-level Domain Nameservers و Authoritative Nameservers، ارسال میکند تا بتواند IP مناسب را بیابد.
Root Nameservers .2
برای یافتن DNS root zone یا DNS از روی منطقه آن است. این بخش وظیفه پاسخ به درخواستهایی را برعهده دارد که در همان منطقه DNS قرار گرفته است. درنهایت، فهرستی از سرورهای معتبر مطابق با TLD دامنه در یافتن آدرس آیپی کمک میکند.
Top-level Domain Namesevers .3
وظیفه نگهداری از IP مربوط به TDL دامنه را برعهده دارد و IP موجود را ارسال میکند و به مرحله چهارم میرسد.
Authoritative Nameserver .4
آدرس IP واقعی و نهایی را برمیگرداند. در این مرحله، دو نوع سرور وجود دارد: سرور اول، سرور اصلی که IP اصلی سِتشده در DNS اول و سرور دوم، همان DNS جایگزین و پشتیبان شماست. درصورت خرابی سرور اصلی، از سرور ثانویه استفاده میکند و IP نهایی را برمیگرداند.
کش دی ان اس چیست؟
سیستم کش بهمعنای ذخیره موقت دادهها در مکانی نزدیکتر است که به بهبود عملکرد و پاسخ سریعتر منجر میشود. کشکردن DNS بهمعنای ذخیره اطلاعات DNS در نزدیکترین مکان برای کاربر است؛ بهطوریکه با ارسال درخواستهای بعدی، پاسخ DNS از کش کاربر خوانده میشود و دیگر درخواستی به زنجیره DNS ارسال نمیشود و درنهایت، مصرف پهنای باند CPU کاهش و سرعت لود وبسایت افزایش مییابد. دادههای DNS میتوانند در مکانهای مختلف کش و برای مدتزمان مشخصی برحسب TTL ذخیره شوند.
محل ذخیره کش DNS در مرورگر
مرورگرهای وب بهطورپیشفرض از ذخیره کش DNSها پشتیبانی و اطلاعات مربوط به هر DNS را برای مدتزمان مشخصی ذخیره میکنند تا درصورت بارگذاری مجدد، پاسخ DNS از مرورگر خوانده شود. هنگامیکه آدرس دامینی را باز میکنید، قبل از ارسال درخواست DNS، ابتدا کش مرورگر بررسی و درصورت نبود اطلاعات، درخواست به زنجیره DNS ارسال میشود.
در مرورگر کروم با رفتن به آدرس زیر، میتوانید وضعیت کش DNSهای فعلی را مشاهده کنید:
chrome://net-internals/#DNS
بهترین سرورهای DNS خارجی
معمولاً سرویس میزبانی وب سرورهای DNS را دراختیارتان قرار میدهد؛ اما بازهم میتوانید DNSهای دامنه خود را تغییر دهید. سرورهای DNS پولی و رایگانی وجود دارند که از سرعت و امنیت فراوانی برخوردارند و از ابزارهای امنیتی مانند فایروال و فیلتر درخواستها نیز استفاده میکنند. درادامه، برخی از سرورهای برتر DNS را معرفی کردهایم.
- Cloudflare: کلودفلر یکی از سرویسهای ارائهدهنده DNS است که امکانات فراوانی دراختیار کاربران قرار میدهد. Cloudflare علاوهبر امنیت، از حملات DDoS و سایر حملات جلوگیری و با سرویسهای امنیتی و معماری بهینه، امنیت و سرعت لود وبسایتتان را بهینه میکند.
- Google Public DNS: سرویس DNS گوگل که Google Public DNS نام دارد، کمی با سرویس Cloudflare تفاوت دارد و برای کاربران باتجربهتر طراحی شده است. این سرویس کاربردها و امکانات خاص خود را دارد که درصورت نیاز میتوانید از آن استفاده کنید.
- Quad9: سرویس دیاناس Quad9 به سرعت بسیار زیاد مشهور است. همچنین، این سرویس ادعا میکند که میتواند وبسایتها و کاربران مخرب را با استفاده از اطلاعاتش مسدود کند.
DNS Zone چیست؟
DNS به مناطق مختلفی تقسیم میشود و هرکدام از آنها را ارگانهای گوناگونی مدیریت میکنند. فضای نام DNS میتواند یک یا چند منطقه DNS داشته باشد که هرکدام را میزبان یا سرویس DNS خاصی مدیریت میکند. DNS Zone ساختار سلسلهمراتبی دارد که در آن top-level domain، دامنه، زیردامنه و… وجود دارد.
DNS Zoneها به دو دسته تقسیم میشوند:
- منطقه DNS اولیه (Master): دارنده DNS zone اصلی است (حاوی همه رکوردهای DNS برای آن منطقه). شما میتوانید هاست را ازطریق این منطقه مدیریت کنید.
- منطقه DNS ثانویه (Slave): یک کپی از DNS zone را نگه میدارد. شما میتوانید از آنها برای عملکرد بهتر، مخفیکردن Primary خود، پشتیبانگیری و افزونگی (Redundancy) استفاده کنید.
Zone file در DNS چیست؟
DNS zone file اساس فنی برای ذخیره اطلاعات DNS منطقه را تشکیل میدهد. DNS zone file فایلی متنی است که در سرور مدیر DNS ذخیره میشود. ساختار فایل DNS zone نیز در سند RFC 1035 تعریف شده است. طبق قانون DNS zone، فایل متنی است که هر خط دستورالعمل (Resource Record) را ارائه میدهد.
هدایت رکورد های دی ان اس
شما میتوانید DNSهای خود را با استفاده از انواع رکوردهای دامنه هدایت یا عملاً Redirect کنید. برای مثال، فرض کنید دو دامنه متفاوت example.com و examples.com دراختیار دارید و میخواهید هر دو به یک DNS و سرور متصل شوند و یک محتوا را نشان دهند. برای انجام این کار، باید از رکوردهای هدایت DNS استفاده کنید. بسته به اطلاعاتی که میخواهید وارد کنید، میتوانید با استفاده از رکوردهای A ،AAAA ،CNAME ،SRV ،NS ،TXT ،MX ،MXE و… تغییر مسیر URL را تنظیم کنید.
آموزش تغییر DNS دامنههای ملی و بینالمللی را در مقاله زیر بخوانید.
A records .1
اصلیترین و پرکاربردترین نوع رکورد DNS است. با استفاده از این رکورد، میتوانید آدرسهای دامنه خود را به آدرس IP سرور متصل کنید. این رکورد همان استفاده اصلی از DNS است که ارتباط بین دامنه و IP را برقرار میکند.
CNAME .2
مخفف Canonical Name و نوعی رکورد DNS است که بهجای آدرس IP، برای اتصال به دامنه از آدرس دامنه دیگر استفاده میکند. با استفاده از این رکورد، میتوانید بهراحتی تمامی دامنههای خود را به یک سرور متصل کنید و درصورت نیاز با تغییر تنها یک رکورد اصلی، تمامی رکوردهای CNAME را تغییر دهید. همچنین، از این رکورد برای پیکربندی ایمیل مارکدار حرفهای مانند Outlook.com میتوانید استفاده کنید.
MX .3
مخفف Mail Exchanger است که ایمیل سرور را برای مدیریت ایمیلهای نام دامنهای خاص تعریف میکند. این رکورد نوع پروتکل ارسال ایمیل (SMTP یا استاندارد) را نیز مشخص میکند. بهعنوان مثال، با افزودن رکورد MX ارائهشده Outlook.com برای your-domain.com، هر ایمیل دریافتی your-domain.com ازطریق سرورهای ایمیل Outlook.com دریافت میشود.
TXT .4
این رکورد زمانی مفید است که از سرویس پست الکترونیکی شخص ثالثی مانند G-Suite یا Outlook.com در نام دامنه خود استفاده میکنید. رکورد TXT وظیفه ذخیره متنی مشخص در بخش DNS را برعهده دارد که شرکتهایی مانند گوگل معمولاً از آن برای شناسایی و احراز هویت دامنه استفاده میکنند.
NS .5
رکورد NS مخفف Name Server و یکی از رکوردهای پرکاربرد DNS است که Nameserverهای DNS Zone شما را شناسایی میکند. این رکورد سروری را دریافت میکند که باید در زمان فراخوانی DNS پاسخگو باشد و با قراردادن Name Server مدنظر، میتوانید دامنه خود را به سرور دلخواه متصل کنید. رکورد یادشده معمولاً در زمان خرید هاست یا سرور استفاده میشود.
فایروال DNS چیست؟
فایروال DNS ابزاری است که خدمات امنیتی بسیار زیادی به DNSها ارائه میدهد. فایروال DNS مانند لایهای امنیتی بین Resolver و Authoritative Nameserver قرار میگیرد تا دسترسی کاربران به IP واقعی سرور مقدور شود. از دیگر ویژگیهای فایروال میتوان به تفکیک ترافیک و فیلتر ترافیک برحسب سن و… و تغییر DNS اشاره کرد. برای برخورداری از امنیت و سرعت کامل، پیشنهاد میکنیم از DNSهای پارس پک استفاده کنید.
DNSSEC چیست؟
DNSSEC مخفف Domain Name System Security Extensions و بهمعنای افزونههای امنیتی DNS است که برای امنیت DNSهای شما بسیار اهمیت دارد. DNSSEC با بهکارگیری سیستم جفتکلید امضای دیجیتال و بدون نیاز به کوئریهای DNS، میتواند صحت سرور پاسخدهنده را تأیید کند و بدینترتیب، امنیت DNS را افزایش دهد. این ویژگی را معمولاً در DNSها میتوان نصب و استفاده کرد. برای کسب اطلاعات بیشتر، میتوانید از ارائهدهنده سرویس میزبانی خود پرسوجو کنید.
آیا دی ان اس امن است؟
امنیت همیشه و همهجا باید وجود داشته باشد. DNS پروتکلی قدیمی است و بدون درنظرگرفتن نکات امنیتی ایجاد شده است. برای حمله ازطریق DNS به وبسایت و نیز ایمنسازی DNS، راههای متفاوتی وجود دارد. امنیت DNS در چندین لایه مختلف لحاظ میشود و از خطر بسیاری از حملهها جلوگیری میکند. یکی از لایههای نفوذپذیر DNS، لایه ارسال کوئری برای دریافت IP است که اطلاعات امنیتی و خصوصی را دربر دارد و نباید در دست هکرها قرار بگیرد.
رایج ترین حملات DNS
DNS نیز مانند سایر پروتکلها و سرویسها درمعرض خطر و هک وجود دارد. حملهها و راههای نفوذپذیری زیادی وجود دارد که ممکن است امنیت DNS و سرور شما را بهخطر بیندازند. درادامه، برخی از این راهها را معرفی میکنیم:
۱. جعل DNS (مسمومیت کش)
همانطورکه میدانید، بخشی از DNS در کش مرورگر ذخیره میشود. هکرها با دسترسی به کش مرورگر و جعل اطلاعات DNS، میتوانند IP وبسایت مدنظر را به IP سرورهای مخرب تغییر دهند و کاربر را به آنها هدایت کنند. همچنین، اغلب به وبسایتهای کپی وبسایت اصلی ریدایرکت میشوند که برای جعل مدارک بهکار میروند.
DNS Tunneling .۲ (تونل DNS)
در این نوع حمله، هکرها از پروتکلهایی برای تونلکردن کوئریهای DNS و از SSH یا TCP یا HTTP برای ارسال اطلاعات به کوئریهای DNS استفاده میکنند.
DNS Hijacking .۳ (ربودن DNS)
هکرها DNS ربودهشده را به IP سرورهای جعلی خود متصل و کوئریهای DNS را به سرور دیگری ارسال میکنند که موجب هک اطلاعات میشود.
۴. حمله NXDOMAIN
این نوع حمله درخواستهای جعلی بسیار زیادی را به DNS ارسال میکند که باعث پرشدن ترافیک سرور DNS میشود و به کاربران اجازه نمیدهد به وبسایت وارد شوند. افزونبراین، این حمله خطر جعل کش DNS را افزایش میدهد. NXDOMAIN به حمله هم DDoS معروف است و ازطریق این لایه انجام میشود.
برای آشنایی با سرویس DNS ابری و عملکرد آن مقاله زیر را بخوانید.
Domain Lock-up .۵
در این حمله، مهاجمان با تنظیم دامنهها و Resolversهای ویژه، اتصالات TCP را دور میزنند و درخواستها را به دیگر Resolversهای غیرقانونی ارسال میکنند که درنهایت، باعث تغییر پاسخ درخواست DNS دلخواه خواهد شد.
Phantom Domain .۶
در این حمله، هکرها سعی میکنند به DNS Resolver اطلاعات جعلی وارد کنند و سیستم DNS شما را در انتظار پاسخ از مکانی نامعلوم قرار دهند. با این کار آنان میتوانند خطای دریافت پاسخ غلط را افزایش دهند و با تأخیر بیجا، لود وبسایتتان را متوقف کنند.
Botnet-Based CPE .۷
در این روش، هکرها سعی میکنند با استفاده از سیستمهای متفاوت، درخواستهای بسیار زیادی به سرور DNS وارد و سیستم سرور اصلی وبسایت را مشغول کنند و درنهایت، وبسایت را از کار بیندازند.
جمعبندی
DNS سیستم ارتباطی میان نام دامنه و IP سرور است که درنهایت، اطلاعات سرور را به کاربر نشان میدهد. DNS متشکل از ۴ بخش است که درنهایت همگی آنها درکنارهم به IP سرور دست مییابند. همچنین، راههای متفاوتی برای تغییر رکورد DNS دامنه وجود دارد (مانند رکورد NS و رکورد A) که میتوانید IP سرور خود را ازطریق روشهای مختلف به دامنه خود متصل کنید. نکته دیگر اینکه برای حفظ امنیت و سرعت بیشتر نیز، میتوانید از سرویسهای DNS استفاده کنید.
سؤالات متداول
۱. DNS چیست؟
DNS سیستم تبدیلکننده نام دامنه به IP سرور برای دریافت اطلاعات و نمایش به کاربر است.
۲. نمونه ای از DNS چیست؟
نمونه DNS گوگل بهترین گزینه شناخته میشود. آدرس DNS اصلی گوگل ۸.۸.۸.۸ است.
۳. چگونه DNS خود را پیدا کنیم؟
در کامپیوتر ویندوزی، میتوانید DNS خود را با رفتن به خط فرمان و تایپ «ipconfig/all» و سپس زدن Enter پیدا کنید.
۴. انواع DNS چیست؟
چهار نوع DNS وجود دارد: ۱. حلکنندههای بازگشتی؛ ۲. سرورهای نام ریشه؛ ۳. سرورهای نام TLD؛ ۴. سرورهای نام معتبر.
۵. آیا تغییر DNS ایمن است؟
بستگی دارد. DNSها همواره در خطر هک قرار دارند و برای افزایش امنیت، میتوانید از سرویسهای DNS استفاده کنید.
۶. آیا باید از DNS خصوصی استفاده کنیم؟
بله، DNS خصوصی میتواند امنیت بیشتری درمقایسهبا سایر DNSها به شما ارائه دهد.