وقتی آدرس یک وبسایت مانند amirblour.ir را در مرورگر وارد میکنید، مرورگر باید بداند این دامنه به کدام سرور متصل است تا بتواند محتوای سایت را دریافت و نمایش دهد. اینجا است که DNS وارد عمل میشود.
اما DNS چیست و دقیقاً چه کاری انجام میدهد؟ DNS یکی از بخشهای مهم زیرساخت اینترنت است که نام دامنه را به اطلاعات لازم برای پیدا کردن سرور مربوط به آن تبدیل میکند.
اگر تاکنون هنگام خرید هاست با عباراتی مانند DNS، Nameserver، رکورد A، CNAME یا MX مواجه شدهاید و نمیدانستید هرکدام چه کاربردی دارند، این مقاله برای شماست.
در این راهنمای کامل از AmirBlour، از مفاهیم پایه شروع میکنیم و بهصورت ساده بررسی میکنیم DNS چیست، چگونه کار میکند، چه تفاوتی با Nameserver دارد، رکوردهای DNS چه هستند و چگونه دامنه را به هاست متصل کنیم.
DNS چیست؟
DNS مخفف عبارت Domain Name System یا «سیستم نام دامنه» است.
به زبان ساده، DNS مانند یک دفترچه تلفن برای اینترنت عمل میکند. انسانها معمولاً آدرسهایی مانند:
amirblour.ir
را به خاطر میسپارند، اما کامپیوترها برای برقراری ارتباط با سرورها به آدرسهای IP نیاز دارند.
DNS وظیفه دارد ارتباط میان نام دامنه و اطلاعات مربوط به سرور را برقرار کند.
برای مثال، زمانی که کاربر آدرس یک سایت را وارد میکند، DNS به مرورگر کمک میکند تا اطلاعات لازم برای پیدا کردن سرور سایت را به دست آورد.
اگر با مفهوم دامنه آشنایی ندارید، پیشنهاد میکنیم ابتدا مقاله «دامنه چیست؟» را مطالعه کنید.
چرا به DNS نیاز داریم؟
بدون DNS، کاربران برای دسترسی به بسیاری از وبسایتها مجبور بودند آدرسهای IP سرورها را به خاطر بسپارند.
تصور کنید برای ورود به یک سایت به جای:
amirblour.ir
باید یک آدرس عددی طولانی مانند:
192.0.2.10
را وارد میکردید.
این روش برای انسانها بسیار سخت و غیرکاربردی بود.
DNS این مشکل را حل میکند و امکان استفاده از نامهای قابل فهم و قابل حفظ مانند دامنه را فراهم میکند.
بنابراین میتوان گفت یکی از مهمترین وظایف DNS این است که نام دامنه را به اطلاعات لازم برای پیدا کردن مقصد آن تبدیل کند.
DNS چگونه کار میکند؟
برای درک بهتر اینکه DNS چیست، بهتر است روند کار آن را مرحلهبهمرحله بررسی کنیم.
فرض کنید کاربر در مرورگر خود آدرس زیر را وارد میکند:
https://amirblour.ir
مرحله اول: وارد کردن دامنه
کاربر نام دامنه را در مرورگر وارد میکند.
مرورگر باید مشخص کند این دامنه به کدام سرور مربوط است.
مرحله دوم: بررسی اطلاعات DNS
مرورگر و سیستمعامل معمولاً ابتدا اطلاعات ذخیرهشده در حافظه کش را بررسی میکنند.
اگر اطلاعات موردنیاز وجود نداشته باشد، درخواست DNS به Resolver ارسال میشود.
مرحله سوم: دریافت اطلاعات مربوط به دامنه
DNS Resolver در صورت نیاز با سرورهای DNS مختلف ارتباط برقرار میکند تا اطلاعات مربوط به دامنه را پیدا کند.
در نهایت آدرس موردنیاز برای اتصال به سرور سایت مشخص میشود.
مرحله چهارم: اتصال به سرور
پس از مشخص شدن مقصد، مرورگر میتواند با سرور سایت ارتباط برقرار کند.
اگر سایت از HTTPS استفاده کند، در این مرحله ارتباط امن نیز برقرار میشود.
مرحله پنجم: نمایش سایت
در نهایت سرور درخواست مرورگر را پردازش کرده و فایلها و اطلاعات موردنیاز را ارسال میکند.
مرورگر نیز محتوای سایت را دریافت و نمایش میدهد.
به صورت خلاصه:
کاربر → دامنه → DNS → سرور → هاست → محتوای سایت → مرورگر
DNS Resolver چیست؟
یکی از اصطلاحاتی که هنگام مطالعه درباره DNS با آن مواجه میشوید، DNS Resolver است.
Resolver سیستمی است که درخواست DNS کاربر را دریافت میکند و برای پیدا کردن اطلاعات موردنیاز، فرایند جستوجوی DNS را انجام میدهد.
به زبان ساده، وقتی کاربر دامنهای را وارد میکند، Resolver تلاش میکند پاسخ مناسب را برای آن درخواست پیدا کند.
Resolver ممکن است اطلاعات موردنظر را از کش خود داشته باشد. در این صورت پاسخ سریعتر ارائه میشود.
اگر اطلاعات در کش موجود نباشد، Resolver میتواند برای پیدا کردن پاسخ با سرورهای DNS دیگر ارتباط برقرار کند.
Nameserver چیست؟
Nameserver یا «سرور نام» یکی از بخشهای مهم سیستم DNS است.
Nameserver به سروری گفته میشود که اطلاعات DNS مربوط به دامنه را نگهداری یا ارائه میکند.
وقتی دامنهای را ثبت میکنید و میخواهید آن را به یک هاست متصل کنید، معمولاً شرکت ارائهدهنده هاست چند Nameserver در اختیار شما قرار میدهد.
برای مثال ممکن است چنین اطلاعاتی دریافت کنید:
ns1.example.com
ns2.example.com
با تنظیم این Nameserverها برای دامنه، مشخص میکنید که اطلاعات DNS دامنه از کدام سرورها دریافت شود.
تفاوت DNS و Nameserver چیست؟
این دو اصطلاح گاهی با یکدیگر اشتباه گرفته میشوند.
DNS یک سیستم و ساختار کلی برای مدیریت و پیدا کردن اطلاعات مربوط به نام دامنهها است.
اما Nameserver یکی از سرورهایی است که اطلاعات DNS مربوط به دامنهها را ارائه یا مدیریت میکند.
به زبان ساده:
DNS = سیستم
Nameserver = سروری که اطلاعات DNS را ارائه میکند
بنابراین وقتی شرکت هاستینگ از شما میخواهد Nameserverهای آن را روی دامنه تنظیم کنید، در واقع میخواهد دامنه شما از سرورهای DNS آن شرکت برای دریافت اطلاعات مربوط به دامنه استفاده کند.
رکورد DNS چیست؟
اطلاعات مربوط به دامنه در قالب رکوردهای مختلف DNS ذخیره میشوند.
هر رکورد وظیفه مشخصی دارد و به نوع خاصی از ارتباط مربوط میشود.
برخی از مهمترین رکوردهای DNS عبارتاند از:
A
AAAA
CNAME
MX
TXT
NS
در ادامه کاربرد هرکدام را بررسی میکنیم.
رکورد A چیست؟
رکورد A یکی از رایجترین رکوردهای DNS است.
این رکورد برای اتصال یک نام دامنه یا زیردامنه به یک آدرس IPv4 استفاده میشود.
برای مثال:
amirblour.ir → 192.0.2.10
در این مثال، رکورد A مشخص میکند که دامنه به این آدرس IPv4 متصل شود.
رکورد A معمولاً زمانی اهمیت زیادی پیدا میکند که بخواهید دامنه یا یک زیردامنه را مستقیماً به IP یک سرور متصل کنید.
رکورد AAAA چیست؟
رکورد AAAA مشابه رکورد A است، با این تفاوت که برای آدرسهای IPv6 استفاده میشود.
در نتیجه:
A → IPv4
AAAA → IPv6
با گسترش استفاده از IPv6، این رکورد نیز در زیرساخت DNS اهمیت پیدا کرده است.
رکورد CNAME چیست؟
رکورد CNAME برای ایجاد یک نام مستعار برای یک دامنه یا نام میزبان استفاده میشود.
برای مثال ممکن است بخواهید:
www.example.com
به:
example.com
اشاره کند.
در چنین شرایطی میتوان از CNAME استفاده کرد.
CNAME در بسیاری از سرویسهای آنلاین نیز برای اتصال زیردامنه به یک سرویس خارجی مورد استفاده قرار میگیرد.
رکورد MX چیست؟
رکورد MX مربوط به سرویس ایمیل دامنه است.
MX مشخص میکند ایمیلهای ارسالشده به یک دامنه باید به کدام Mail Server تحویل داده شوند.
برای مثال اگر دامنه شما:
amirblour.ir
باشد و یک ایمیل مانند:
info@amirblour.ir
داشته باشید، رکوردهای MX در تعیین مسیر دریافت ایمیلهای این دامنه نقش دارند.
بنابراین اگر رکوردهای MX اشتباه تنظیم شوند، ممکن است دریافت یا ارسال ایمیلهای دامنه با مشکل مواجه شود.
رکورد TXT چیست؟
رکورد TXT برای ذخیره اطلاعات متنی مرتبط با دامنه استفاده میشود.
یکی از کاربردهای بسیار مهم آن، تأیید مالکیت دامنه و تنظیمات مربوط به امنیت ایمیل است.
برای مثال سرویسهایی مانند Google Search Console یا برخی سرویسهای ایمیل ممکن است از شما بخواهند یک رکورد TXT به DNS دامنه اضافه کنید.
رکوردهای TXT همچنین در تنظیم فناوریهایی مانند SPF و برخی تنظیمات امنیتی ایمیل کاربرد دارند.
رکورد NS چیست؟
رکورد NS مشخص میکند کدام Nameserverها مسئول ارائه اطلاعات DNS مربوط به یک دامنه هستند.
به همین دلیل رکوردهای NS ارتباط مستقیمی با ساختار Nameserver دامنه دارند.
در هنگام اتصال دامنه به هاست، معمولاً به جای تغییر دستی تکتک رکوردها، Nameserverهای شرکت هاستینگ را در تنظیمات دامنه قرار میدهیم.
DNS چه ارتباطی با دامنه و هاست دارد؟
برای درک ارتباط DNS با دامنه و هاست، یک مثال ساده بزنیم.
فرض کنید شما دامنه:
amirblour.ir
را خریداری کردهاید و یک هاست نیز تهیه کردهاید.
دامنه بهتنهایی فایلهای سایت شما را نگهداری نمیکند.
فایلهای سایت روی هاست یا سرور قرار دارند.
DNS کمک میکند درخواست مربوط به دامنه به مقصد مناسب هدایت شود.
در نتیجه ساختار کلی به این شکل است:
دامنه → DNS → سرور/هاست → فایلهای سایت
اگر هنوز دقیقاً نمیدانید هاست چیست و چه کاربردی دارد، مقاله «هاست چیست؟» را مطالعه کنید.
چگونه دامنه را به هاست متصل کنیم؟
یکی از رایجترین کاربردهای DNS برای صاحبان سایت، اتصال دامنه به هاست است.
معمولاً دو روش اصلی برای انجام این کار وجود دارد.
روش اول: تغییر Nameserver
این روش برای کاربران مبتدی سادهتر است.
شرکت هاستینگ معمولاً Nameserverهای خود را در اختیار شما قرار میدهد.
برای مثال:
ns1.example.com
ns2.example.com
سپس وارد پنل مدیریت دامنه میشوید و Nameserverهای دامنه را با اطلاعات ارائهشده توسط شرکت هاستینگ جایگزین میکنید.
پس از ذخیره تغییرات، دامنه از Nameserverهای جدید اطلاعات DNS را دریافت خواهد کرد.
روش دوم: تنظیم رکوردهای DNS
در برخی شرایط لازم نیست Nameserverهای دامنه را تغییر دهید.
ممکن است بخواهید فقط یک رکورد مشخص مانند A یا CNAME را تغییر دهید.
در این حالت میتوانید از پنل مدیریت DNS استفاده کرده و رکورد موردنظر را تنظیم کنید.
این روش زمانی کاربرد دارد که بخواهید کنترل دقیقتری روی DNS داشته باشید یا بخشی از دامنه را به سرویس دیگری متصل کنید.
تغییر DNS چقدر زمان میبرد؟
یکی از سؤالات رایج کاربران این است که چرا بعد از تغییر DNS، سایت بلافاصله باز نمیشود.
دلیل این موضوع کش DNS و فرایند انتشار تغییرات است.
اطلاعات DNS در بخشهای مختلف اینترنت برای مدت مشخصی ذخیره میشوند.
به همین دلیل ممکن است بعد از تغییر رکوردهای DNS، برخی کاربران اطلاعات قدیمی را دریافت کنند و برخی دیگر اطلاعات جدید را ببینند.
این فرایند معمولاً با مفهوم DNS Propagation یا انتشار تغییرات DNS شناخته میشود.
مدت زمان آن به تنظیمات مختلف، مخصوصاً مقدار TTL و وضعیت کش DNS بستگی دارد.
بنابراین اگر بعد از تغییر Nameserver یا رکورد DNS سایت بلافاصله برای شما باز نشد، لزوماً به معنی اشتباه بودن تنظیمات نیست.
TTL در DNS چیست؟
TTL مخفف Time To Live است.
TTL مشخص میکند اطلاعات DNS چه مدت میتوانند در کش ذخیره شوند.
برای مثال اگر یک رکورد DNS دارای TTL مشخصی باشد، Resolverها میتوانند پاسخ آن رکورد را تا مدت تعیینشده در کش نگهداری کنند.
TTL بیشتر میتواند باعث کاهش تعداد درخواستهای DNS شود، اما در مقابل هنگام تغییر رکورد ممکن است اطلاعات قدیمی برای مدت بیشتری در کش باقی بمانند.
خطاهای رایج DNS چیست؟
مشکلات DNS یکی از دلایل رایج در دسترس نبودن یک سایت هستند.
DNS_PROBE_FINISHED_NXDOMAIN
این خطا معمولاً به این معناست که دامنه یا رکورد موردنظر توسط DNS پیدا نشده است.
علت آن میتواند مواردی مانند:
تنظیم اشتباه DNS
مشکل Nameserver
منقضی شدن دامنه
وجود نداشتن رکورد موردنظر
باشد.
اشتباه بودن Nameserver
اگر Nameserverهای اشتباهی برای دامنه تنظیم شده باشند، دامنه ممکن است به سرور موردنظر متصل نشود.
بنابراین هنگام تغییر Nameserver باید اطلاعات ارائهشده توسط شرکت ثبتکننده دامنه یا هاستینگ را با دقت وارد کنید.
تنظیم اشتباه رکورد A
اگر رکورد A به IP اشتباه اشاره کند، دامنه ممکن است به سرور اشتباهی متصل شود یا اصلاً سایت را نمایش ندهد.
مشکل در رکوردهای ایمیل
تنظیم اشتباه رکوردهای MX میتواند باعث ایجاد مشکل در دریافت ایمیلهای دامنه شود.
به همین دلیل هنگام تغییر DNS باید مراقب رکوردهای مربوط به ایمیل نیز باشید.
آیا DNS روی سرعت سایت تأثیر دارد؟
DNS بخشی از فرایند اتصال کاربر به سایت است، بنابراین زمان پاسخ DNS میتواند روی زمان شروع برقراری ارتباط تأثیر داشته باشد.
با این حال نباید تصور کرد که سرعت DNS مهمترین عامل سرعت سایت است.
سرعت سایت به عوامل بسیار بیشتری مانند:
کیفیت هاست
قدرت سرور
بهینهسازی تصاویر
کش
کدنویسی
تعداد افزونهها
فایلهای JavaScript و CSS
شبکه کاربر
وابسته است.
بنابراین استفاده از یک DNS مناسب میتواند مفید باشد، اما بهینهسازی DNS جایگزین بهینهسازی خود سایت و هاست نیست.
DNS چه ارتباطی با SSL و HTTPS دارد؟
DNS و SSL دو فناوری متفاوت هستند، اما در فرایند دسترسی به یک سایت HTTPS با یکدیگر ارتباط دارند.
DNS به پیدا کردن مقصد دامنه کمک میکند، در حالی که SSL/TLS برای ایجاد ارتباط امن میان مرورگر و سرور استفاده میشود.
به صورت ساده:
DNS → پیدا کردن مقصد
HTTPS/TLS → ایجاد ارتباط امن
بنابراین ابتدا باید دامنه به مقصد صحیح متصل شود و سپس ارتباط HTTPS نیز بهدرستی روی سرور تنظیم شده باشد.
برای آشنایی بیشتر با این موضوع میتوانید مقاله «SSL چیست؟» را مطالعه کنید.
آیا DNS روی سئو تأثیر دارد؟
DNS به صورت مستقیم یک عامل رتبهبندی مستقل مانند کیفیت محتوا نیست.
اما تنظیم صحیح DNS برای در دسترس بودن سایت اهمیت دارد.
اگر DNS سایت بهدرستی تنظیم نشده باشد و کاربران یا موتورهای جستوجو نتوانند سایت را پیدا کنند، طبیعتاً مشکلات دسترسی میتواند روی وضعیت کلی سایت تأثیر منفی بگذارد.
به همین دلیل DNS را باید یکی از بخشهای مهم زیرساخت فنی سایت دانست.
برای آشنایی بیشتر با بهینهسازی سایت، مقاله «سئو چیست؟» را نیز مطالعه کنید.
DNS امن چیست؟
امنیت DNS نیز یکی از موضوعات مهم زیرساخت اینترنت است.
در حالت عادی، درخواستهای DNS باید به شکلی مدیریت شوند که اطلاعات صحیح و معتبر درباره مقصد دامنه ارائه شود.
فناوریها و سرویسهای مختلفی برای افزایش امنیت درخواستهای DNS وجود دارند.
برای مثال برخی سرویسها از فناوریهایی مانند DNSSEC یا روشهای رمزنگاری درخواست DNS استفاده میکنند.
البته این فناوریها با HTTPS یکسان نیستند و هرکدام وظیفه متفاوتی دارند.
چگونه DNS دامنه را بررسی کنیم؟
اگر میخواهید وضعیت DNS یک دامنه را بررسی کنید، میتوانید رکوردهای مختلف آن را مشاهده کنید.
بررسی DNS معمولاً شامل مواردی مانند:
Nameserver
رکورد A
رکورد AAAA
CNAME
MX
TXT
NS
است.
این بررسی میتواند در زمان عیبیابی مشکلات اتصال دامنه، ایمیل یا سرویسهای مختلف بسیار مفید باشد.
جمعبندی؛ DNS چیست؟
در پاسخ به سؤال DNS چیست میتوان گفت DNS سیستمی است که به اینترنت کمک میکند نامهای دامنه قابل فهم برای انسان را به اطلاعات لازم برای پیدا کردن مقصد آنها تبدیل کند.
وقتی کاربر دامنهای مانند amirblour.ir را در مرورگر وارد میکند، DNS در فرایند پیدا کردن سرور مربوط به آن نقش دارد.
مهمترین مفاهیمی که در این مقاله بررسی کردیم عبارتاند از:
DNS
DNS Resolver
Nameserver
رکورد A
رکورد AAAA
رکورد CNAME
رکورد MX
رکورد TXT
رکورد NS
TTL
DNS Propagation
اگر در حال راهاندازی سایت هستید، بهتر است ارتباط میان دامنه، DNS و هاست را بهخوبی بشناسید؛ زیرا تنظیم نادرست DNS میتواند باعث شود سایت یا سرویسهای وابسته به دامنه بهدرستی کار نکنند.
در ادامه مسیر نیز آشنایی با SSL و HTTPS و همچنین اصول سئو به شما کمک میکند زیرساخت و عملکرد سایت خود را بهتر مدیریت کنید.
سوالات متداول
DNS چیست؟
DNS یا Domain Name System سیستمی است که برای پیدا کردن اطلاعات مربوط به دامنهها و هدایت درخواستها به مقصد مناسب در اینترنت استفاده میشود.
Nameserver چیست؟
Nameserver سروری است که اطلاعات DNS مربوط به دامنه را ارائه یا مدیریت میکند.
DNS و Nameserver چه تفاوتی دارند؟
DNS یک سیستم کلی برای مدیریت نام دامنههاست، در حالی که Nameserver یکی از سرورهای ارائهدهنده اطلاعات DNS است.
رکورد A چیست؟
رکورد A یک دامنه یا زیردامنه را به یک آدرس IPv4 متصل میکند.
رکورد CNAME چیست؟
CNAME برای ایجاد یک نام مستعار و اشاره دادن یک نام دامنه یا زیردامنه به یک نام میزبان دیگر استفاده میشود.
رکورد MX چیست؟
رکورد MX مشخص میکند ایمیلهای مربوط به یک دامنه باید به کدام Mail Server ارسال شوند.
DNS چقدر زمان میبرد تا تغییراتش اعمال شود؟
زمان انتشار تغییرات DNS ثابت نیست و به عواملی مانند TTL و کش Resolverها بستگی دارد. به همین دلیل ممکن است تغییرات در نقاط مختلف اینترنت در زمانهای متفاوت دیده شوند.
آیا DNS همان هاست است؟
خیر. DNS یک سیستم مدیریت و پیدا کردن اطلاعات مربوط به دامنه است، در حالی که هاست یا سرور محیطی برای نگهداری و اجرای فایلها و سرویسهای سایت فراهم میکند.
آیا DNS همان SSL است؟
خیر. DNS برای پیدا کردن مقصد دامنه استفاده میشود، در حالی که SSL/TLS برای ایجاد ارتباط امن میان مرورگر و سرور کاربرد دارد.
آیا تنظیم DNS برای سایت ضروری است؟
بله. برای اینکه یک دامنه بتواند به سرویسهایی مانند وبسایت یا ایمیل متصل شود، باید اطلاعات DNS آن بهدرستی تنظیم شده باشد.