امروزه تقریباً تمام فعالیتهای ما در فضای وب با وارد کردن یک نام دامنه شروع میشود. اما پشت این سادگی، سیستمی بسیار پیچیده و دقیق وجود دارد که باعث میشود آدرسهایی مثل www.example.com برای مرورگر قابل درک باشد. این سیستم، DNS یا سیستم نام دامنه نام دارد. در این مقاله به بررسی این موضوع میپردازیم که DNS چیست و چرا در دنیای وب از اهیمت زیادی برخوردار است.
DNS چیست؟ تاریخچهای کوتاه از DNS
DNS یا Domain Name System، سیستمی است که مسئول تبدیل نام دامنه (مانند google.com) به آدرس IP سرور مقصد است؛ آدرسی که برای ارتباط با سرورها در اینترنت ضروری است. به بیان ساده، DNS مانند مترجمی عمل میکند که زبان انسان را به زبان ماشین تبدیل میکند.
در ابتدای شکلگیری اینترنت (دهه ۱۹۷۰ و اوایل ۱۹۸۰)، نام و آدرس کامپیوترها در یک فایل متنی ساده به نام hosts.txt ذخیره میشد که بهصورت دستی میان سیستمها بهروزرسانی میشد. اما با افزایش تعداد کامپیوترهای متصل به شبکه، این روش ناکارآمد و زمانبر شد.
در سال ۱۹۸۳، Paul Mockapetris دو سند معروف با نامهای RFC 882 و RFC 883 را منتشر کرد و با آن، DNS بهصورت رسمی بهعنوان سیستمی توزیعشده، سلسلهمراتبی و مقیاسپذیر معرفی شد. این سیستم بعدها در قالب نرمافزاری به نام BIND (Berkeley Internet Name Domain) پیادهسازی شد که هنوز هم یکی از پرکاربردترین سرویسهای DNS در جهان است.
DDNS چیست؟
DDNS یا Dynamic DNS (سیستم نام دامنه پویا)، سرویسی است که به شما این امکان را میدهد تا بدون نیاز به داشتن یک آدرس IP ثابت، دامنهتان را به IP دستگاههایی که IP آنها بهصورت پویا (تغییرپذیر) اختصاص داده میشود، متصل نگه دارید. این فناوری معمولاً در موقعیتهایی استفاده میشود که کاربر از اینترنت خانگی یا شبکههایی استفاده میکند که آدرس IP بهطور مرتب تغییر میکند (مثل اغلب سرویسهای اینترنت ADSL یا LTE).
با استفاده از DDNS، هر زمان که IP شما تغییر کند، سرویس DDNS بهطور خودکار این تغییر را شناسایی کرده و رکورد DNS مربوط به دامنه را بهروزرسانی میکند. به این ترتیب، حتی با تغییر IP، همچنان میتوانید از طریق دامنه به دستگاه خود (مثلاً دوربین مداربسته، سرور خانگی یا NAS) دسترسی داشته باشید.
سرویسهای محبوب DDNS شامل No-IP، DynDNS و DuckDNS هستند. DDNS راهحل مناسبی برای کاربرانی است که نیاز به دسترسی از راه دور دارند اما نمیخواهند هزینه یک IP استاتیک را بپردازند.
DNS Resolver چیست؟
DNS Resolver یکی از اجزای کلیدی در DNS است که وظیفه دارد نام دامنههایی مانند mobinhost.com را به آدرس IP قابل فهم برای کامپیوترها تبدیل کند. زمانی که شما آدرس یک سایت را در مرورگر وارد میکنید، اولین گام برای یافتن آن سایت، ارسال درخواست به DNS Resolver است.
این Resolver معمولا توسط ارائهدهنده خدمات اینترنت (ISP) یا یک سرویس DNS عمومی مثل DNS گوگل (8.8.8.8) یا کلودفلر (1.1.1.1) مدیریت میشود.
پس از دریافت درخواست، DNS Resolver بررسی میکند که آیا اطلاعات IP موردنظر را در حافظه کش دارد یا نه. اگر داشته باشد، بلافاصله پاسخ را میدهد؛ اگر نه، شروع به جستجو بین سرورهای DNS دیگر میکند؛ از سرور روت تا سرورهای TLD و در نهایت سرور Authoritative.
به بیان ساده، DNS Resolver نقش واسطهای هوشمند را دارد که نام سایت را گرفته و آدرس IP درست را پیدا کرده و به مرورگر برمیگرداند، تا شما بتوانید به وبسایت موردنظر متصل شوید.
انواع DNS Server
سامانه نام دامنه (DNS) از ابتدا بهصورت یک پایگاه داده توزیعشده و سلسلهمراتبی طراحی شد تا فرآیند تبدیل نامهای دامنه به آدرسهای IP بهصورت سریع و پویا انجام شود. این ساختار باعث میشود DNS بتواند با رشد سریع شبکه اینترنت هماهنگ باقی بماند.
سلسلهمراتب DNS از سطح ریشه (که با یک نقطه . نشان داده میشود) آغاز میشود و به دامنههای سطح بالا (TLD) مانند .com، .org، یا دامنههای کشوری مانند .uk یا .jp میرسد. در نهایت، این ساختار به دامنههای سطح دوم مانند example.com منتهی میشود.
در این ساختار، دو نوع اصلی سرور وجود دارد:
سرورهای بازگشتی (Recursive)
این سرورها وظیفه دارند نام دامنهای که کاربر وارد کرده را بررسی کرده و آدرس IP مربوط به آن را پیدا کنند. به عبارت دیگر، آنها به دنبال پاسخ میگردند.
معمولا این نوع سرورها توسط شرکتهای ارائهدهنده اینترنت (ISP) یا شرکتهای بزرگ و ارائهدهندگان خدمات DNS اداره میشوند. وقتی شما آدرس سایتی را در مرورگر وارد میکنید، ابتدا درخواست شما به این سرورها ارسال میشود.
اگر سرور بازگشتی پاسخ را از قبل ذخیره کرده باشد (کش شده باشد)، همان پاسخ را سریع برمیگرداند. اگر نه، این سرور خودش به سراغ سرورهای دیگر میرود تا پاسخ را پیدا کند.
سرورهای معتبر یا Authoritative
این سرورها پاسخ نهایی درخواستها را در اختیار دارند. آنها شامل اطلاعات دقیق و رسمی درباره یک دامنه خاص هستند و زمانی وارد عمل میشوند که سرور بازگشتی نیاز به پاسخ قطعی داشته باشد.
انواع مختلفی از سرورهای معتبر وجود دارد:
Nameserverهای روت (Root Name Servers)
در بالاترین سطح سلسلهمراتب DNS قرار دارند. آنها مشخص میکنند که برای هر نوع دامنه (مثل .com یا .org) باید به کدام سرور مراجعه شود. ۱۳ سرور ریشه اصلی وجود دارد که با حروف A تا M شناخته میشوند. این سرورها توسط سازمان ICANN مدیریت میشوند.
Nameserverهای دامنه سطح بالا (TLD Name Servers)
این سرورها مسئول مدیریت دامنههایی هستند که به یک پسوند خاص ختم میشوند. مثلاً سرور TLD مربوط به .com، درخواستها برای دامنههایی مثل example.com یا google.com را به سرور معتبر مربوط به آن دامنه هدایت میکند.
سرورهای دامنه (Second-Level Domain Name Servers)
این سرورها اطلاعات دقیق مربوط به دامنههایی مثل mobinhost.com یا example.org را نگه میدارند. آنها فایلهایی دارند که مشخص میکند دامنه موردنظر باید به کدام آدرس IP وصل شود. این اطلاعات معمولاً توسط مالک دامنه تنظیم میشود.
کش DNS چیست؟
DNS Caching یا «کش DNS» به فرآیند ذخیرهسازی موقتی نتایج درخواستهای DNS در حافظه یک سیستم (مانند مرورگر، سیستمعامل یا سرور) گفته میشود. هدف از این کار، افزایش سرعت دسترسی به وبسایتها و کاهش ترافیک شبکه است.
وقتی برای اولین بار یک وبسایت را باز میکنید، سیستم شما از طریق DNS Resolver، آدرس IP مرتبط با آن دامنه را پیدا میکند. این آدرس سپس در حافظه (کش) ذخیره میشود. در مراجعههای بعدی، سیستم شما بهجای پرسوجو مجدد از DNS، مستقیماً از اطلاعات ذخیرهشده در کش استفاده میکند. این کار باعث میشود سرعت بارگذاری سایت بیشتر شود و بار کمتری به سرورهای DNS وارد شود.
کش DNS در مکانهای مختلفی ذخیره میشود:
- مرورگر (مثلاً کروم یا فایرفاکس)
- سیستمعامل (مثل ویندوز، لینوکس، مک)
- روتر یا مودم
- سرورهای DNS ISP
مقدار زمانی که یک رکورد در کش باقی میماند، توسط مقدار TTL (Time To Live) مشخص میشود. پس از پایان این مدت، اطلاعات کش منقضی شده و باید مجدد از سرورهای DNS دریافت شود.
گاهی اوقات برای رفع مشکلات دسترسی به سایتها یا بهروزرسانی رکوردهای DNS، نیاز است که کش DNS را پاکسازی (Flush) کنید.
TTL یا Time to Live در DNS چیست؟
TTL یا Time To Live، مدتزمانی است که اطلاعات DNS در حافظه کش نگهداری میشود. این مقدار بر حسب ثانیه تنظیم میشود و نقش مهمی در سرعت بارگذاری سایت، بهروزرسانی رکوردها و مصرف پهنای باند دارد.
TTL بالا به معنای پاسخ سریعتر از کش، اما بهروزرسانی دیرتر و TTL پایین به معنای این است که تغییرات سریعتر اعمال میشوند، اما بار بیشتری روی سرور است. انتخاب TTL مناسب از اهمیت بالایی برخوردار است، بهخصوص در زمان تغییر آیپی یا مهاجرت از یک سرویس به سرویس دیگر.
مثلاً اگر TTL رکورد A برابر با 3600 باشد، یعنی Resolver باید هر یک ساعت یکبار اطلاعات را بهروزرسانی کند. TTL پایینتر باعث میشود تغییرات سریعتر اعمال شوند، اما در عوض تعداد پرسوجوها افزایش مییابد و بار بیشتری به سرور وارد میشود.
ساختار DNS و نحوه عملکرد آن
برای درک بهتر اینکه DNS چیست، بیایید روند درخواست یک وبسایت را مرحله به مرحله بررسی کنیم. سیستم DNS بهصورت یک ساختار سلسلهمراتبی و توزیعشده طراحی شده است؛ به این معنا که هیچ نهاد یا سرور واحدی بهتنهایی کل فرآیند پاسخگویی به درخواستهای DNS را برعهده ندارد. بلکه این وظایف بین چندین نوع سرور و مؤلفه مختلف تقسیم شدهاند. برای درک بهتر نحوه عملکرد DNS، لازم است با مراحل اصلی آن آشنا شویم.
هر بار که شما آدرس یک وبسایت (URL) را وارد میکنید، یک فرآیند به نام درخواست DNS (یا DNS Query) Hyhc میشود تا آدرس IP آن سایت پیدا شود. چون کامپیوترها با آدرسهای عددی (IP) کار میکنند، باید ابتدا نام سایت به IP ترجمه شود. این کار توسط DNS انجام میشود.
در این فرآیند، کامپیوتر کاربر بهصورت مرحلهای با سرورهای DNS ارتباط برقرار میکند تا به پاسخ صحیح برسد. در نهایت، این پاسخ از طریق سرور معتبر (Authoritative DNS Server) که اطلاعات واقعی دامنه را دارد، دریافت میشود.
۱. شروع درخواست (Query Initiation)
زمانی که کاربر نام دامنهای مانند mobinhost.com را در مرورگر یا اپلیکیشنی وارد میکند، این درخواست به سمت یک سرور بازگشتی DNS (Recursive DNS Resolver) ارسال میشود.
معمولاً، کامپیوتر یا موبایل شما از قبل تنظیماتی دارد (که توسط شرکت ارائهدهنده اینترنت یا ISP تعیین شده) که مشخص میکند درخواستها به کدام سرور بازگشتی ارسال شود.
۲. سرور بازگشتی (Recursive Resolver)
در این مرحله، سرور بازگشتی ابتدا بررسی میکند که آیا قبلاً آدرس IP دامنه مورد نظر را در حافظه کش خود دارد یا نه.
- اگر اطلاعات در کش باشد به پاسخ کاربر سریع پاسخ داده میشود.
- اگر اطلاعات در کش وجود نداشته باشند این سرور شروع میکند به ارسال کوئری به سرورهای DNS دیگر تا به پاسخ برسد.
این مسیر از سرور روت آغاز میشود و بهترتیب به سمت سرورهای دقیقتر حرکت میکند تا در نهایت آدرس IP دامنه مورد نظر پیدا شود.
۳. سرور روت (Root Name Server)
سرور بازگشتی ابتدا با سرور روت ارتباط برقرار میکند. سرور روت IP دامنه را نمیداند، ولی میداند که باید برای هر پسوند (مثل .com) به کدام سرور مراجعه کرد.
بنابراین، سرور روت آدرس سرور مربوط به TLD (دامنه سطح بالا) را به سرور بازگشتی میدهد.
۴. سرور دامنه سطح بالا (TLD Name Server)
سپس، سرور بازگشتی از سرور TLD مربوط به .com (در مثال ما، دامنه mobinhost.com) سوال میپرسد. این سرور هم پاسخ نهایی را ندارد، ولی میداند که باید برای دامنه ibm.com از کدام سرور معتبر پرسوجو کرد. بنابراین، آدرس آن سرور را میدهد.
۵. Authoritative Name Server
در نهایت، سرور بازگشتی به سرور معتبر مخصوص mobinhost.com متصل میشود. این سرور اطلاعات واقعی و نهایی را در اختیار دارد و آدرس IP مربوط به دامنه را ارائه میدهد.
۵. ارتباط با Domain Name Server
در این مرحله، سرور بازگشتی از سرور mobinhost.com اطلاعات میخواهد. این سرور با مراجعه به فایل Zone File، رکورد مربوط به آن دامنه را پیدا کرده و آدرس IP دقیق را برمیگرداند.
۶. بازگشت پاسخ به کاربر
سرور بازگشتی، IP پیدا شده را در کش خود ذخیره میکند (برای مدتی که در TTL مشخص شده)، و سپس آن را به سیستم کاربر برمیگرداند. در نهایت، مرورگر یا برنامه کاربر میتواند با استفاده از آن IP به سرور مقصد متصل شود و وبسایت یا سرویس موردنظر را باز کند.
انواع کوئریهای DNS
در فرآیند جستجوی DNS، معمولا سه نوع درخواست (Query) وجود دارد:
۱. درخواست بازگشتی (Recursive Query)
در این نوع درخواست، ارتباط بین کلاینت (کاربر یا مرورگر) و سرور بازگشتی (Recursive Server) برقرار میشود. درخواست بازگشتی به این معناست که سرور بازگشتی باید نام دامنه را بهطور کامل به IP تبدیل کند یا اگر نتواند، یک پیام خطا به کاربر برگرداند و اعلام کند که دامنه پیدا نشد.
۲. درخواست تکراری یا Iterative Query
در این نوع کوئری، سرور بازگشتی از سرورهای دیگر DNS (مثل سرور ریشه، TLD یا سرور دامنه) پرسوجو میکند. در این جا سرورها نیازی به تبدیل کامل دامنه به IP ندارند. در عوض، ممکن است یک Referral ارائه دهند.
بهعنوان مثال:
- سرور روت یک کوئری برای دامنه .com از سرور TLD درخواست میکند.
- سرور TLD نیز یک کوئری جدید برای mobinhost.com از سرور Authoritative درخواست میکند.
در نهایت، سرور Authoritative پاسخ کامل را میدهد (اگر موجود باشد). بنابراین، درخواستهای تکراری یا با پاسخ کامل خاتمه مییابند یا با یک ارجاع به سرور دیگر.
۳. درخواست غیربازگشتی (Non-Recursive Query)
در این حالت، سرور بازگشتی از قبل میداند که پاسخ را از کجا پیدا کند. بهطور معمول، پاسخ در کش (Cache) سرور ذخیره شده و به همین دلیل، سرور بدون پرسیدن از سرورهای دیگر (مثل Root یا TLD)، مستقیماً پاسخ میدهد.
مثال: اگر سرور بازگشتی قبلاً آدرس IP دامنهای مانند Mobinhost.com را در یک درخواست قبلی ذخیره کرده باشد، این نوع درخواست به عنوان Non-Recursive Query شناخته میشود.
مقایسه DNS عمومی و خصوصی
سازمانها هنگام استفاده از DNS گزینههای مختلفی در اختیار دارند، از جمله DNS عمومی، DNS خصوصی یا ترکیبی از این دو. DNS عمومی و خصوصی دو مفهوم کاملا متفاوت هستند. برای استفاده بهینه از DNS و تطبیق آن با نیازهای سازمان، درک نحوه عملکرد هرکدام ضروری است.
DNS عمومی
DNS عمومی معمولاً به بخش resolver اشاره دارد، یعنی سرورهای بازگشتیای که برای پرسوجو از NameServerهای authoritative و اتصال کاربران به وبسایتها استفاده میشوند.
این سرورها برای هر کاربری در اینترنت قابل دسترس هستند و شرکتهایی مانند کلودفلر (با آدرس 1.1.1.1)، Quad9 و OpenDNS معمولا این خدمات را بهصورت رایگان ارائه میدهند. سرورهای DNS عمومی توسط سازمانهایی که آنها را اداره میکنند، نگهداری میشوند. کاربران و مشتریان هیچ کنترلی بر نحوه عملکرد، سیاستها یا تنظیمات این سرورها ندارند.
DNS خصوصی
DNS خصوصی معمولاً به بخش Authoritative Nameserver در DNS اشاره دارد. سازمانها سرورهای DNS خصوصی را درون یک شبکه داخلی راهاندازی میکنند و این سرورها به عنوان منابع معتبر برای جستجوی DNS منابع داخلی عمل میکنند. این سرورها پشت فایروال قرار دارند و فقط رکوردهای مربوط به سایتها و سرویسهای داخلی را نگهداری میکنند؛ بنابراین، دسترسی به آنها تنها برای کاربران، دستگاهها و شبکههای مجاز ممکن است.
بر خلاف پیکربندیهای DNS عمومی، DNS خصوصی به سازمانها اجازه میدهد کنترل کامل بر سرورهای DNS خود داشته باشند؛ از جمله امکان سفارشیسازی رکوردهای DNS، استفاده از نامگذاری داخلی خاص و اعمال سیاستهای امنیتی موردنظر. این موضوع همچنین به این معناست که مسئولیت نگهداری از زیرساخت DNS خصوصی بر عهده خود سازمان است، چه این زیرساخت دردیتاسنتر داخلی باشد و چه از طریق خدمات ابری میزبانی شود.
آشنایی با پراستفادهترین و رایجترین رکوردهای DNS
رکوردهای DNS همان اطلاعاتی هستند که در سرورهای Authoritative ذخیره میشوند. این رکوردها مشخص میکنند که دامنهها باید به کدام سرویس یا آدرس هدایت شوند. در ادامه، پراستفادهترین و رایجترین رکوردهای DNS را بررسی میکنیم:
A و AAAA Records
رکورد A (Address Record)، وظیفه دارد یک نام دامنه یا زیردامنه را به یک آدرس IPv4 مشخص متصل کند. برای مثال، اگر دامنهای مانند mobinhost.com به IP آدرس 192.0.2.1 اشاره داشته باشد، این اتصال از طریق رکورد A انجام میشود.
رکورد AAAA عملکردی مشابه رکورد A دارد، با این تفاوت که برای آدرسدهی در IPv6 به کار میرود. بهعنوان نمونه، دامنه mobinhost.com ممکن است از طریق رکورد AAAA به آدرس 2001:0db8::1 متصل شود.
این دو نوع رکورد از پراستفادهترین رکوردهای DNS هستند که نقش مهمی در هدایت ترافیک کاربران به سرورهای میزبان وبسایتها ایفا میکنند.
رکورد CNAME
رکورد CNAME (Canonical Name) برای تعریف یک نام مستعار در سیستم DNS استفاده میشود. این نوع رکورد به جای اشاره مستقیم به یک آدرس IP، یک دامنه را به دامنهای دیگر هدایت میکند. به عنوان مثال، اگر www.mobinhost.com با رکورد CNAME به mobinhost.com متصل شده باشد، در واقع همه درخواستهای مربوط به www به دامنه اصلی هدایت میشوند.
مزیت اصلی استفاده از CNAME این است که در صورت تغییر IP دامنه اصلی، نیازی به تغییر دستی رکوردهای زیردامنه نیست؛ زیرا همه آنها بهطور خودکار به مقصد جدید هدایت خواهند شد. این ویژگی بهویژه برای مدیریت سادهتر دامنهها و زیردامنهها در پروژههای بزرگ کاربرد زیادی دارد.
رکورد MX
رکورد MX (Mail Exchange) مشخص میکند که ایمیلهای ارسالشده به یک دامنه باید به کدام سرور ایمیل هدایت شوند. این رکورد به سیستمهای ایمیل کمک میکند تا مقصد صحیح برای تحویل پیامهای الکترونیکی را شناسایی کنند.
هر دامنه میتواند یک یا چند رکورد MX داشته باشد، که هر کدام دارای یک عدد اولویت (Preference) هستند. این عدد نشان میدهد که کدام سرور در اولویت قرار دارد. هرچه عدد پایینتر باشد، اولویت بالاتر است. اگر سرور اول در دسترس نباشد، ارسال ایمیل به سرورهای بعدی با اولویت بالاتر (عدد بزرگتر) انجام میشود.
برای مثال، اگر دامنهای دو رکورد MX با اولویتهای ۱۰ و ۲۰ داشته باشد، ابتدا تلاش میشود ایمیل به سرور با اولویت ۱۰ تحویل داده شود. در صورت عدم موفقیت، سیستم بهصورت خودکار به سرور دوم مراجعه میکند. این ساختار، پایداری و دسترسپذیری سرویس ایمیل را تضمین میکند.
رکورد NS
رکورد NS (Name Server) مشخص میکند که کدام سرورهای DNS معتبر مسئول مدیریت و پاسخگویی به درخواستهای مربوط به یک دامنه هستند. به بیان ساده، این رکوردها تعیین میکنند که اطلاعات DNS یک دامنه از کدام سرورها باید دریافت شود.
هر دامنه معمولاً دارای چند رکورد NS است تا در صورت اختلال در یکی از سرورها، سرورهای دیگر بتوانند پاسخگو باشند.
برای مثال، اگر دامنهای دارای دو رکورد NS به صورت ns1.example.com و ns2.example.com باشد، هر دو این سرورها وظیفه دارند اطلاعات DNS دامنه را نگهداری و در صورت نیاز، به کاربران ارائه دهند. وجود چند NS همچنین برای توزیع بار ترافیک ضروری است.
رکورد SOA
رکورد SOA (Start of Authority) نخستین و یکی از مهمترین رکوردهای موجود در هر Zone File است. این رکورد، اطلاعات مدیریتی و ساختاری مربوط به ناحیه DNS یک دامنه را در خود جای میدهد.
SOA مشخص میکند که کدام سرور، مرجع اصلی (Master DNS Server) برای آن دامنه است، و همچنین شامل آدرس ایمیل ادمین، شماره سریال Zone Serial Number برای تشخیص تغییرات، و پارامترهای مهم زمانی مانند موارد زیر میشود:
-
Refresh: بازه زمانی که سرورهای ثانویه باید اطلاعات را از سرور اصلی بهروزرسانی کنند.
-
Retry: فاصله زمانی بین تلاشهای مجدد در صورت شکست درخواست بهروزرسانی.
-
Expire: مدتزمانی که سرور ثانویه اطلاعات را نگه میدارد(اگر نتواند با سرور اصلی ارتباط برقرار کند).
-
Minimum TTL: مدتزمان کش شدن رکوردهای منفی (در پاسخهای بدون نتیجه).
وجود رکورد SOA برای هر DNS Zone الزامی است و نقش حیاتی در همگامسازی بین سرورهای DNS و اطمینان از عملکرد صحیح دامنه دارد.
رکورد PTR
رکورد PTR (Pointer Record) عملکردی برعکس رکوردهای A و AAAA دارد. در حالی که رکورد A یا AAAA نام دامنه را به آدرس IP تبدیل میکند، PTR آدرس IP را به یک نام دامنه مرتبط برمیگرداند. از این رکورد در فرآیندی به نام Reverse DNS Lookup استفاده میشود.
مهمترین کاربرد PTR در تایید هویت سرورهای ایمیل است. بسیاری از سرورهای دریافتکننده ایمیل بررسی میکنند که آیا IP ارسالکننده بهدرستی به یک دامنه معتبر اشاره دارد یا خیر. نبود رکورد PTR یا تنظیم نادرست آن میتواند باعث شود ایمیلها اسپم شناخته شوند یا اصلا تحویل داده نشوند.
برای مثال، اگر IP آدرس 192.0.2.1 از طریق رکورد PTR به mail.mobinhost.com اشاره داشته باشد، این ارتباط برگشتی نشاندهنده اعتبار و شناسایی درست سرور خواهد بود.
رکورد TXT
رکورد TXT (Text Record) برای ذخیره و ارائه اطلاعات متنی در سیستم DNS به کار میرود. این رکورد بیشتر برای اعتبارسنجی دامنه و همچنین افزایش امنیت ایمیل مورد استفاده قرار میگیرد.
رایجترین کاربردهای رکورد TXT شامل تنظیم SPF (جلوگیری از جعل فرستنده ایمیل)، DKIM (امضای دیجیتال ایمیل)، DMARC (سیاست ایمیل دامنه) و CAA (مشخص کردن مجوز صدور گواهی SSL) هستند.
برندها و شرکتها از رکورد TXT استفاده میکنند تا سرورهای ایمیل خود را بهعنوان فرستندههای معتبر معرفی کنند و از این طریق، از اسپم شدن ایمیلها یا سوءاستفاده از دامنهشان جلوگیری نمایند. وجود تنظیمات TXT صحیح یکی از مهمترین عوامل برای تحویل موفق ایمیل در سیستمهای ایمیلی مدرن است.
رکورد SRV
رکورد SRV (Service Record) برای مشخص کردن مکان و جزئیات یک سرویس خاص در یک دامنه مورد استفاده قرار میگیرد. این رکورد نهتنها نام دامنه مقصد را تعیین میکند، بلکه شامل اطلاعاتی مانند پروتکل مورد استفاده، شماره پورت، اولویت و وزن سرویس نیز هست.
رکورد SRV معمولا در پروتکلهایی مانند SIP (برای تماس اینترنتی) یا XMPP (برای پیامرسانی فوری) که به سرویسیابی نیاز دارند، کاربرد دارد. همچنین در سرویسهایی مثل Microsoft 365، Skype for Business یا Active Directory نقش کلیدی ایفا میکند.
این رکورد به کلاینتها کمک میکند تا بدانند دقیقاً باید به کدام سرور، روی چه پورتی و با چه اولویتی برای دریافت سرویس موردنظر متصل شوند.
رکوردهای پیشرفته CAA، DNAME، SVCB و سایر موارد
رکوردهای پیشرفته در DNS، بیش از عملکردهای پایه مانند تبدیل نام دامنه به IP عمل میکنند و امکانات امنیتی و ساختاری بیشتری را برای مدیریت دامنهها فراهم میسازند.
-
CAA (Certification Authority Authorization): این رکورد مشخص میکند که کدام مراجع صدور گواهی (CA) مجاز هستند برای یک دامنه، گواهی SSL صادر کنند. استفاده از CAA میتواند از صدور ناخواسته یا غیرمجاز گواهیها جلوگیری کرده و امنیت دامنه را افزایش دهد.
-
DNAME (Delegation Name): عملکردی مشابه CNAME دارد، اما بهجای هدایت یک نام، تمام زیردامنههای یک دامنه را به دامنهای دیگر منتقل میکند. این ویژگی برای زمانی مفید است که بخواهید یک دامنه کامل و ساختار زیرمجموعهاش را به مقصدی جدید ارجاع دهید.
-
SVCB / HTTPS: این رکوردها برای بهینهسازی اتصال HTTPS طراحی شدهاند. آنها اطلاعاتی مانند پشتیبانی از پروتکلهای TLS، آدرس سرورهای جایگزین و ویژگیهای امنیتی را فراهم میکنند. استفاده از این رکوردها میتواند عملکرد و امنیت ارتباطات HTTPS را بهطور قابل توجهی بهبود دهد.
این رکوردها بخشی از نسل جدید استانداردهای DNS هستند که با هدف افزایش امنیت، عملکرد بهتر و انعطافپذیری بیشتر در مدیریت دامنهها معرفی شدهاند.
DNS مدیریتشده چیست؟
راهکارهای DNS مدیریتشده در اصل به معنای برونسپاری مدیریت و هماهنگی سرورهای DNS هستند. در یک سیستم مدیریتشده، ارائهدهنده DNS تمام مسئولیتهای مربوط به پیکربندی، نگهداری و اجرای پروتکلهای امنیتی مربوط به سرورهای DNS یک سازمان را بر عهده میگیرد و سازمان از زیرساخت ارائهدهنده برای مدیریت نام دامنههای خود استفاده میکند.
در این حالت، زمانی که کاربری آدرس اینترنتی (URL) یک کسبوکار را وارد میکند، درخواست به جای ارسال مستقیم به سرورهای دامنه شرکت، به سرورهای ارائهدهنده DNS مدیریتشده هدایت میشود. این سرورها منابع مورد نیاز را واکشی کرده و پاسخ را به کاربر بازمیگردانند.
DNS مدیریتشده همچنین میتواند خدمات و مزایای پیشرفتهای را ارائه دهد، از جمله:
- DNS اختصاصی
- لود بالانسینگ جهانی بین سرورها
- تضمین آپتایم
- معماری مبتنی بر API
- پشتیبانی از DNSSEC
- شبکههای Anycast جهانی
- زمان انتشار سریعتر
- ابزارهای مانیتورینگ و بررسی سلامت سرورها
- محافظت در برابر حملات سایبری مانند دیداس و موارد دیگر.
Nameserver دامنه در DNS چیست؟
Nameserver دامنه وظیفه دارد تمام رکوردهای DNS مربوط به یک دامنه را نگهداری کند. هر زمان کسی درباره دامنه شما جستوجویی انجام دهد، Nameserver اطلاعات مورد نیاز را در پاسخ ارسال میکند تا بتواند وبسایت شما را پیدا کند.
آدرس nameserver معمولا شبیه یک نام دامنه به نظر میرسد. شرکتهای هاستینگ معمولاً دو یا چند nameserver دارند.
در عمل، از nameserverها برای متصل کردن یک دامنه به سرویس میزبانی وب از طریق تنظیمات DNS استفاده میشود.
اگر دامنهتان را از همان شرکتی خریدهاید که هاستینگ را ارائه میدهد، معمولاً نیازی به تغییر nameserverها نیست. اما اگر ثبتکننده دامنه شما با شرکت هاستینگ متفاوت باشد، باید نامسرورهای دامنه را به صورت دستی تغییر دهید. برای بررسی این که در حال حاضر چه نیمسرورهایی برای دامنه شما تنظیم شدهاند، میتوانید از ابزارهای بررسی تنظیمات DNS یا سرویس WHOIS نیز استفاده کنید.
برای مثال، اگر وبسایت شما روی مبین هاست میزبانی شده اما دامنهتان را از جای دیگری خریدهاید، باید nameserverهای دامنه را طوری تنظیم کنید که به مبین هاست اشاره کنند. تنها در این صورت دامنه به وبسایت شما متصل خواهد شد.
ریسکهای امنیتی DNS چیست؟
بیشتر سرورهای DNS مدرن، حتی نوع عمومی آنها، از امنیت نسبتاً بالایی برخوردار هستند. با این حال، حتی بهترین سیستمهای DNS نیز ممکن است در برابر حملات سایبری آسیبپذیر باشند. برخی حملات، بخش authoritative DNS را هدف قرار میدهند، در حالیکه برخی دیگر بخش بازگشتی یا recursive را مورد حمله قرار میدهند. این حملات شامل موارد زیر هستند:
جعل دیاناس یا DNS Spoofing
جعل DNS که با عنوان آلودهسازی حافظه کش (Cache Poisoning) نیز شناخته میشود، زمانی رخ میدهد که مهاجم رکوردهای جعلی را در حافظه کش یک پیمایشگر DNS وارد میکند. در نتیجه، این پیمایشگر آدرس IP نادرستی را بازمیگرداند و کاربران را به سایتهای مخرب هدایت میکند. این نوع حمله میتواند اطلاعات حساس کاربران را به خطر اندازد و زمینهساز حملات فیشینگ و انتشار بدافزار باشد.
حملات DNS Amplification Attacks
حمله تقویتی DNS نوعی حمله دیداس (DDoS) است که در آن مهاجم درخواستهای کوچکی را به سرور DNS میفرستد، اما آدرس بازگشت را به آدرس IP قربانی جعل میکند. این حملات از ماهیت بدونحالت (stateless) پروتکلهای DNS سوءاستفاده میکنند و از این واقعیت بهره میبرند که یک درخواست کوچک میتواند پاسخی با حجم بسیار بزرگتر تولید کند.
در نتیجه، سرور DNS با پاسخهای حجیم به IP قربانی، ترافیک عظیمی را به سمت سیستم او ارسال میکند که باعث اختلال در عملکرد DNS و از کار افتادن سرویس یا اپلیکیشن میشود.
DNS Tunneling
تانلینگ DNS تکنیکی است برای دور زدن اقدامات امنیتی که در آن ترافیک غیر-DNS (مانند HTTP) درون درخواستها و پاسخهای DNS کپسوله میشود. مهاجمان میتوانند از این روش برای ارسال دستورات به بدافزار یا استخراج دادهها از یک شبکه آلوده استفاده کنند. معمولاً این دادهها در قالب کوئریها و پاسخهای DNS رمزگذاری میشوند تا از چشم سیستمهای امنیتی پنهان بمانند.
Domain Hijacking
ربودن دامنه زمانی رخ میدهد که مهاجم به صورت غیرمجاز به حساب ثبتکننده دامنه دسترسی پیدا کرده و اطلاعات ثبت دامنه را تغییر میدهد. این کار به مهاجم اجازه میدهد ترافیک دامنه را به سرورهای مخرب هدایت کند، ایمیلها را رهگیری کند و بهطور کلی هویت آنلاین کاربر را در اختیار بگیرد.
Subdomain Takeover
ورودیهای بلااستفاده DNS برای زیردامنههایی که به سرویسهای از رده خارج (مثلاً میزبانهای ابری) اشاره میکنند، اهدافی مناسب برای مهاجمان هستند. اگر یک سرویس از بین رفته باشد اما رکورد DNS آن هنوز باقی مانده باشد، مهاجم میتواند آن زیردامنه را تصاحب کرده و سایتی مخرب یا سرویس جعلی به جای آن راهاندازی کند.
بهترین روشها برای بهبود امنیت DNS چیست؟
صرفنظر از اینکه یک سازمان از چه نوع خدمات DNS استفاده میکند، پیادهسازی پروتکلهای امنیتی برای کاهش سطح حمله، مقابله با تهدیدات سایبری و بهینهسازی عملکرد DNS در فرآیندهای شبکهای ضروری است. در ادامه به این سوال که برخی از راههای امنیت DNS چیست پاسخ میدهیم و برخی روشهای تقویت امنیت را بررسی میکنیم:
استفاده از افزونههای امنیتی (DNSSEC)
DNSSEC با امضای دیجیتال پاسخهای DNS، لایهای از امنیت را به فرآیند جستجوی DNS اضافه میکند. این فناوری میتواند از حملات جعل دیاناس یا DNS Spoofing جلوگیری کند، زیرا منبع پاسخها را تأیید کرده و یکپارچگی دادههای DNS را تضمین میکند.
یک شبکه خصوصی مجازی نیز با رمزگذاری ترافیک، محرمانگی ارتباطات را حفظ کرده و از افشای اطلاعاتی مانند آدرس IP، موقعیت مکانی و تاریخچه مرور جلوگیری میکند.
اجرای Rate Limiting
اجرای محدودیت نرخ در سرورهای DNS میتواند در برابر حملات DDoS مؤثر باشد. این کار با محدود کردن تعداد پاسخها یا نرخ پاسخدهی به هر درخواستکننده در یک بازه زمانی مشخص، فشار روی سرور را کاهش میدهد.
فعالسازی احراز هویت دومرحلهای (2FA) برای حسابهای ثبت دامنه
استفاده از احراز هویت دومرحلهای برای حسابهای ثبتکننده دامنه میتواند دسترسی غیرمجاز به سرورها را دشوارتر کرده و احتمال Domain Hijacking را کاهش دهد.
ایجاد Redundancy در DNS
استقرار DNS در چند سرور که بهصورت جغرافیایی پراکنده شدهاند، باعث افزایش دسترسی پذیری شبکه میشود. در صورت بروز حمله یا خرابی سرور اصلی، سرورهای پشتیبان میتوانند وظیفه پاسخدهی به درخواستهای DNS را بر عهده بگیرند.
پاکسازی منظم حافظه کش یا DNS Flushing
حذف دورهای اطلاعات ذخیرهشده در کش DNS کمک میکند تا رکوردهای نادرست یا آلوده حذف شده و کاربران به سایتهای مخرب هدایت نشوند. این کار یکی از اقدامات پیشگیرانه مؤثر برای کاهش خطرات امنیتی است.
بهروز بودن در برابر تهدیدات DNS
تهدیدات و حملات DNS مانند فناوریهایی که هدف قرار میدهند، همواره در حال تحولاند. آگاهی از آسیبپذیریها و تهدیدات جدید میتواند تیمهای امنیتی را در حفظ برتری نسبت به مهاجمان یاری کند.
آموزش تنظیم رکوردهای DNS دامنه در سیپنل
پس از آشنایی با انواع رکوردهای DNS مانند A، MX، CNAME و TXT، شاید برای شما این سؤال پیش بیاید که این رکوردها در عمل چگونه و از کجا باید تنظیم شوند. اگر از کنترلپنلهای میزبانی وب مانند cPanel استفاده میکنید، این روند بهراحتی از طریق رابط گرافیکی و بدون نیاز به دانش فنی خاص قابل انجام است.
برای تنظیم رکوردهای dns دامنه در سی پنل کافی است مراحل زیر را دنبال کنید:
وارد حساب کاربری سیپنل خود شوید.
در بخش Domains روی گزینه Zone Editor کلیک کنید.
در لیست دامنههای موجود، روی دکمه Manage مقابل دامنه مورد نظر کلیک نمایید.
در این قسمت، میتوانید رکوردهای موجود را مشاهده کرده و با استفاده از دکمههای Add Record یا Edit، رکورد جدید اضافه کرده یا رکوردهای قبلی را ویرایش کنید. برای مثال:
- جهت اتصال دامنه به یک IP خاص، رکورد A اضافه کنید.
- برای هدایت زیردامنهای مانند www به دامنه اصلی، از رکورد CNAME استفاده نمایید.
- برای تعریف سرور ایمیل دامنه، رکورد MX را تنظیم کنید.
- اگر نیاز به تایید مالکیت دامنه یا تنظیم SPF/DKIM دارید، رکورد TXT اضافه کنید.
در نهایت با کلیک روی Save Record در سی پنل، رکورد مورد نظر شما را اضافه می نماید.
توجه داشته باشید که پس از ذخیره هر رکورد، ممکن است چند دقیقه تا چند ساعت طول بکشد تا تغییرات در سطح گلوبال اعمال شود. این موضوع به مقدار TTL رکورد مربوطه بستگی دارد.
جمع بندی
در این مطلب به بررسی این موضوع پرداختیم که DNS چیست و با انواع DNSو نحوه تنظیم رکوردهای DNS پرداختیم. سیستم DNS یکی از اجزای حیاتی زیرساخت اینترنت است که امکان تبدیل نامهای دامنه به آدرسهای IP را فراهم میکند. در این مقاله با مفهوم DNS، انواع رکوردها، تفاوت DNS عمومی و خصوصی، نحوه عملکرد سرورها و نکات امنیتی آن آشنا شدیم. شناخت دقیق این سیستم و توانایی در مدیریت تنظیمات DNS، نقش مهمی در افزایش سرعت، امنیت و پایداری دسترسی به وبسایتها دارد.