DNS چیست؟ مفاهیم و ساختار دی ان اس
DNS، یا سیستم نام دامنه، اغلب بخش بسیار دشواری از یادگیری نحوه پیکربندی وب سایت ها و سرورها است. درک نحوه عملکرد DNS به شما کمک می کند تا مشکلات دسترسی به وب سایت های خود را تشخیص دهید و درک خود را از آنچه در پشت صحنه می گذرد گسترش دهید.
در این راهنما، ما به این سوال پاسخ می دهیم که DNS چیست؟ مفاهیم و ساختار دی ان اس را مورد بحث قرار میدهیم که به شما کمک میکند اطلاعات مفیدی در این زمینه کسب کنید.
سیستم نام دامنه (DNS) دفترچه تلفن اینترنت است. انسان ها از طریق نام های دامنه مانند google.com یا tadserver.com به اطلاعات آنلاین دسترسی دارند. مرورگرهای وب از طریق آدرس های پروتکل اینترنت (IP) تعامل دارند. DNS نام دامنه را به آدرس های IP ترجمه می کند تا مرورگرها بتوانند منابع اینترنتی را بارگیری کنند.
فهرست مطالب
اصطلاحات دامنه
در این مقاله اصطلاحات زیادی به کار رفته است که باید ابتدا آنها را تعریف کنیم تا بتوانید ارتباط کلمات را متوجه شوید و بدانید منظور از هر کدام چیست.
بیایید آسان شروع کنیم:
سیستم نام دامنه Domain Name System
سیستم نام دامنه که به طور معمول با نام DNS شناخته میشود، یک سیستم شبکه است که به ما امکان میدهد نامهای کاربر پسند را به آدرسهای IP منحصر به فرد ترجمه کنیم. به عبارت دیگر، DNS اجازه میدهد که هنگامی که ما یک نام دامنه (مانند tadserver.com) را در مرورگر وارد میکنیم، به صورت خودکار به آدرس IP مربوط به آن نام دامنه (مانند 192.168.10.230) ترجمه شود تا ما بتوانیم به راحتی با سرور یا شبکه مرتبط به آن ارتباط برقرار کنیم.
دامنه Domain
دامنه (Domain) در مفهوم اینترنت، به معنی نام یا عنوانی است که برای شناسایی و دسترسی به یک Host یا دستگاه در شبکه استفاده میشود. به طور کلی، دامنه به یک نام یا آدرس منحصر به فرد اشاره دارد که معمولاً به صورت متنی و خواندنی برای انسانها است.
یک دامنه اینترنتی شامل دو قسمت اصلی است:
- نام دامنه (Domain Name): این بخش دامنه شامل نامی است که انسانها برای شناسایی یک منبع در اینترنت استفاده میکنند، مانند “tadserver.com” یا “google.com”.
- پسوند دامنه (Top-Level Domain – TLD): این بخش دامنه نیز به عنوان پسوند شناخته میشود و به صورت یک پسوند در انتهای نام دامنه ظاهر میشود. برخی از معروفترین پسوندهای دامنه شامل “.com”، “.net”، “.org”، “.gov”، “.edu” و غیره هستند.
به عنوان مثال، در دامنه “tadserver.com”عبارت “tadserver” بخش نام دامنه و “.com” بخش پسوند دامنه است. این دامنهها استفاده میشوند تا منابع مختلف در اینترنت شناسایی شوند، از جمله وبسایتها، ایمیلها، سرورها و غیره.
دامنه پریمیوم چیست؟ همه چیز در مورد دامنه خاص
آدرس IP
هر دستگاه متصل به اینترنت دارای یک آدرس IP منحصر به فرد است که سایر دستگاه ها برای یافتن یکدیگر از آن استفاده می کنند. سرورهای DNS نیاز انسان را به حفظ کردن آدرسهای IP مانند 192.168.1.1 (در IPv4) یا آدرسهای IP پیچیدهتر ورژن ۶ مانند 2400:cb00:2048:1::c629:d7a2 (در IPv6) از بین میبرند.
به بیان متفاوت، IP Address به معنی آدرس اینترنت پروتکل “Internet Protocol address” است. این یک شناسه عددی است که به دستگاهها و شبکهها اختصاص داده میشود تا در ارتباط با یکدیگر در اینترنت از طریق شبکههای مختلف بتوانند ارتباط برقرار کنند. آدرس IP شامل یک سری اعداد است که به هر دستگاه یا node (مثلاً یک کامپیوتر یا یک روتر) اختصاص داده میشود تا ارتباطات شبکه را مدیریت کند و از منابع اینترنت به درستی استفاده کند.
آدرس IP معمولاً به دو صورت مختلف عرضه میشود: آدرس IPv4 که از یک سری اعداد ۳۲ بیتی تشکیل شده است و آدرس IPv6 که از یک سری اعداد ۱۲۸ بیتی تشکیل شده است.
هاست Host
هاست (Host) به معنای اختصاص دادن یک فضای ذخیرهسازی بر روی سرورهای اینترنتی است که اجازه میدهد تا فایلها، اطلاعات و محتوای یک وبسایت یا برنامه تحت وب در دسترس عموم قرار گیرد. وقتی یک وبسایت یا برنامه تحت وب راهاندازی میشود، فایلهای آن باید در یک هاست نگهداری شوند تا بتوانند از طریق اینترنت به آنها دسترسی داشته باشید.
برای مثال، فرض کنید که شما یک دامنه به نام “tadserver.com” دارید که میخواهید یک وبسایت بر روی آن راهاندازی کنید. در این صورت، شما باید یک هاست برای ذخیره فایلهای وبسایت خود انتخاب کنید.
بنابراین، هاست در واقع یک فضای مجازی است که به شما اجازه میدهد تا وبسایت یا برنامه خود را بر روی اینترنت میزبانی کنید و از طریق دامنه مربوطه قابل دسترسی باشد.
ساب دامنه SubDomain
DNS در یک سلسله مراتب کار می کند. TLD ها می توانند دامنه های زیادی در زیر مجموعه خود داشته باشند. به عنوان مثال، TLD دات کام “com” میتواند هر دو نشانی “google.com” و “tadserver.com” را در زیر مجموعه خود داشته باشد. ساب دامنه یا “زیر دامنه” به هر دامنه ای اشاره دارد که بخشی از یک دامنه بزرگتر است. در این مورد می توان گفت “tadserver.com” زیر دامنه “com” است. بخش tadserver در اصطلاح “SLD” نامیده می شود که به معنای دامنه سطح دوم است.
به همین ترتیب، هر دامنه می تواند “زیر دامنه” را که در زیر آن قرار دارد کنترل کند. به عنوان مثال می توانید یک زیر دامنه برای بخش تاریخ مدرسه خود در “www.history.school.edu” داشته باشید. بخش “تاریخچه” یک زیر دامنه است.
برای درک بهتر، اگر دامنه اصلی شما example.com باشد، یک ساب دامنه میتواند به صورت subdomain.example.com تعریف شود. در اینجا، “subdomain” بخش ساب دامنه است که به صورت جداگانه از دامنه اصلی (example.com) استفاده میشود.
ساب دامنه معمولاً برای جداسازی بخشهای مختلف یک وبسایت یا ارائه خدمات وب مختلف استفاده میشود. به عنوان مثال:
- blog.example.com: برای راهاندازی یک وبلاگ جداگانه.
- shop.example.com: برای ایجاد فروشگاه آنلاین.
- mail.example.com: برای دسترسی به سرویس ایمیل مانند webmail.
- support.example.com: برای ارائه خدمات پشتیبانی وب.
با استفاده از ساب دامنهها، شما میتوانید بخشهای مختلف و مستقل از وبسایت خود را مدیریت کنید و از نظر SEO (بهینهسازی برای موتورهای جستجو) نیز میتواند مفید باشد زیرا به شما اجازه میدهد تا محتواهای مختلف را در آدرسهای جداگانه قرار دهید.
برای استفاده از ساب دامنه، باید تنظیمات DNS (Domain Name System) مناسبی بر روی سرورهای DNS انجام شود تا به سرورهای موردنظر ارجاع داده شود و ساب دامنه به درستی کار کند.
Fully Qualified Domain Name
FQDN به معنای “Fully Qualified Domain Name” است. این مفهوم به نام کامل یا دقیق یک نام دامنه اشاره دارد. FQDN شامل نام دامنه (Domain Name) کامل همراه با نام میزبان (Hostname) است که نشاندهنده مکان دقیق یک دستگاه در شبکه اینترنتی است.
یک FQDN به صورت مشخصی طراحی میشود که شامل نام میزبان (hostname)، نام دامنه (domain name) و توالی کامل نام دامنهها (domain sequence) است. به عنوان مثال:
hostname.domainname.topdomain
در اینجا:
hostname
: نام دستگاه مانند “www” برای یک وبسرورdomainname
: نام دامنه مانند “example”topdomain
: پسوند دامنه مانند “.com” یا “.org”
بهعنوان نمونه، FQDN یک وبسایت معروف ممکن است بهصورت زیر باشد:
www.tadserver.com
در اینجا:
www
: نام میزبان (hostname)tadserver
: نام دامنه (domain name).com
: پسوند دامنه (top-level domain)
با استفاده از FQDN، میتوان به طور دقیق یک دستگاه یا سرویس مخصوص در اینترنت را مشخص کرد.
نیم سرور Name Server
بیایید یک مثال ساده از نحوه کارکرد نیمسرورها (nameservers) را بررسی کنیم:
فرض کنید شما میخواهید وبسایتی با نام google.com را ببینید. زمانی که شما آدرس اینترنتی google.com را در مرورگر وارد میکنید، مرورگر ابتدا به یک DNS Server متصل میشود تا بداند که آدرس آیپی (IP) مربوط به google.com چیست تا بتواند به آن متصل شود.
حالا فرض کنید نیمسرورهایی برای google.com تعیین شدهاند، مانند ns1.google.com و ns2.google.com. وقتی مرورگر شما برای google.com اطلاعات DNS را درخواست میدهد، درخواست ابتدا به یک ریشهنیمسرور (Root Nameserver) ارسال میشود. ریشهنیمسرورها اطلاعات مربوط به مسیریابی برای دامنههای top-level (مانند .com، .net و غیره) را نگهداری میکنند.
سپس، ریشهنیمسرور به مرورگر شما IP نیمسرورهای top-level برای google.com را میدهد. سپس مرورگر شما به یکی از این نیمسرورها (مثلاً ns1.google.com) متصل میشود و آدرس IP متناظر با google.com را از آن درخواست میکند.
نیمسرور ns1.google.com (که ممکن است در اختیار یک سرویسدهنده DNS مثل Cloudflare باشد) اطلاعات مربوط به google.com را دارد و آدرس IP مربوط به وبسایت google.com را به مرورگر شما ارسال میکند.
در نتیجه، مرورگر شما میتواند به آدرس IP دریافتی متصل شود و وبسایت google.com را بارگذاری کند.
این فرایند نشان میدهد که نیمسرورها چگونه وظیفه ترجمه نام دامنه به آدرس IP را بر عهده دارند و چگونه اطلاعات DNS به صورت سلسه مراتبی توزیع میشوند.
زون فایل Zone File
فایل زون یک فایل متنی ساده است که شامل نگاشت بین نام دامنه و آدرس IP است. به این صورت است که سیستم DNS در نهایت متوجه می شود که وقتی کاربر یک نام دامنه خاص را درخواست می کند، با کدام آدرس IP تماس گرفته شود.
فایلهای Zone در DNS Server ها قرار دارند و به طور کلی منابع موجود در یک دامنه خاص یا مکانی را که میتوان برای دریافت آن اطلاعات به آنجا رفت، تعریف میکند.
رکورد دی ان اس DNS Records
در سیستم نام دامنه (DNS)، یک رکورد (Record) یک تکه اطلاعاتی است که مشخصات مربوط به یک دامنه را در دیتابیس DNS توصیف میکند. این رکوردها اطلاعات مختلفی را ارائه میدهند که برای مدیریت دامنه و توزیع ترافیک در شبکه از آنها استفاده میشود. برخی از نوعهای شناخته شده رکوردها در DNS :
توضیحات این قسمت ممکن است برایتان دشوار به نظر برسد. در انتهای آموزش توضیحات مفصل هر یک از این انواع رکورد ها قرار داده شده است و در این قسمت صرفا به توضیحات اجمالی می پردازیم. بنابراین نگران اصطلاحات سختی که مشاهده می کنید، نباشید.
۱. رکورد A (A Record): این رکورد، یک آدرس IP v4 برای یک دامنه را مشخص میکند. به عبارت دیگر، این رکورد نشان میدهد که دامنه به چه آدرس IP اشاره دارد.
۲. رکورد AAAA (AAAA Record): این رکورد یک آدرس IP v6 برای یک دامنه را مشخص میکند. این نوع از رکورد برای ارتباط با دامنههایی که آدرسدهی با استفاده از IP v6 دارند استفاده میشود.
۳. رکورد CNAME (CNAME Record): این رکورد به دامنه راهنمایی میکند و به ارتباط دادن یک دامنه با دامنه دیگر میپردازد. به عنوان مثال، اگر یک دامنه به عنوان “www.example.com” به “example.com” ارجاع داده شود، از رکورد CNAME استفاده میشود.
۴. رکورد MX (MX Record): این رکوردها برای مشخص کردن سرورهای ایمیل برای یک دامنه استفاده میشوند. سرورهای ایمیل با استفاده از این رکوردها مشخص میشوند.
۵. رکورد TXT (TXT Record): این رکوردها اطلاعات متنی را برای یک دامنه ارائه میدهند. این اطلاعات ممکن است برای امنیت، تایید دامنه، یا سایر اهداف استفاده شود.
اینها تعدادی از انواع معمول رکوردهای DNS هستند. هر کدام از این رکوردها به صورت جداگانه اطلاعات خاصی را برای مدیریت و استفاده از یک دامنه در اینترنت فراهم میکنند.
سرورهای ریشه Root Servers
همانطور که در بالا گفتیم، DNS در هسته خود یک سیستم سلسله مراتبی است. در بالای این سیستم چیزی است که به عنوان “سرورهای ریشه” شناخته می شود. این سرورها توسط سازمانهای مختلف کنترل میشوند و توسط ICANN (شرکت اینترنتی برای نامها و شمارههای اختصاصیافته) به آنها اختیاراتی تفویض شده است.
در حال حاضر 13 سرور ریشه در حال کار هستند. با این حال، از آنجایی که در هر دقیقه تعداد باورنکردنی درخواست تبدیل Domain به IP وجود دارد که باید پاسخ داده شود، هر یک از این سرورهای ریشه بصورت mirror که در فارسی به آن آینه گفته می شود، تنظیم شده اند. نکته جالب در مورد این راه اندازی این است که هر یک از سرورهای میرور، یک سرور واحد با آدرس IP یکسانی را به اشتراک می گذارند. هنگامی که درخواستهایی برای یک سرور ریشه خاص انجام میشود، درخواست به نزدیکترین میرور هدایت میشود.
این سرورهای ریشه چه کاری انجام می دهند؟ سرورهای ریشه درخواست های اطلاعات مربوط به دامنه های سطح بالا را رسیدگی می کنند. بنابراین اگر درخواستی برای چیزی وارد شود که یک سرور نام سطح پایین نمی تواند آن را حل کند، یک پرس و جو به سرور ریشه دامنه ارسال می شود.
سرورهای ریشه در واقع نمی دانند که دامنه در کجا میزبانی می شود. با این حال، آنها می توانند درخواست کننده را به DNS Server هدایت کنند که دامنه سطح بالای درخواست شده خاص را مدیریت می کنند.
بنابراین اگر درخواستی برای “www.wikipedia.org” به سرور اصلی داده شود، سرور ریشه نتیجه را در سوابق خود پیدا نخواهد کرد. فایل های زون خود را برای فهرستی که با “www.wikipedia.org” مطابقت دارد بررسی می کند. یکی را پیدا نخواهد کرد.
در عوض یک رکورد برای TLD “org” پیدا می کند و آدرس نام سرور مسئول آدرس های “org” را به نهاد درخواست کننده می دهد.
اقدامات TLD Servers
سپس درخواست کننده درخواست جدیدی را به آدرس IP ارسال می کند (که توسط سرور ریشه به آن داده می شود) که مسئولیت دامنه سطح بالای درخواست را بر عهده دارد.
بنابراین، برای ادامه مثال ما، درخواستی را به DNS Serverی که مسئول دانستن دامنههای «org» است ارسال میکند تا ببیند آیا میداند «www.wikipedia.org» در کجا قرار دارد یا خیر.
یک بار دیگر، درخواست کننده به دنبال “www.wikipedia.org” در Zone File خود می گردد. این رکورد را در فایل های خود پیدا نمی کند.
با این حال، رکوردی را پیدا می کند که آدرس Name Server مسئول “wikipedia.org” را فهرست می کند. این به پاسخی که میخواهیم نزدیکتر میشود.
مرحله Domain-Level Name Servers
در این مرحله، درخواست کننده آدرس IP سرور DNS را دارد که مسئول دانستن آدرس IP واقعی Host است. یک درخواست جدید به Name Server ارسال می کند و می پرسد که آیا می تواند “www.wikipedia.org” را resolve کند.
سپس DNS Server فایل های Zone خود را بررسی می کند و متوجه می شود که دارای یک فایل Zone مرتبط با “wikipedia.org” است. در داخل این فایل، یک رکورد برای میزبان “www” وجود دارد. این رکورد آدرس IP سروری را در اختیار دارد که می گوید سرور میزبان این سایت در کجا قرار دارد. در اینجا Name Server پاسخ نهایی را به درخواست کننده برمی گرداند.
Resolving Name Server چیست؟
در سناریوی فوق، ما به یک “درخواست کننده” اشاره کردیم. در این شرایط، درخواست کننده کیست؟
تقریباً در همه موارد، درخواست کننده همان چیزی است که ما آن را «resolving name server» می نامیم. اساساً یک واسطه برای کاربر است که نتایج جستجوی قبلی را برای بهبود سرعت، ذخیره میکند و همچنین آدرس سرورهای ریشه را میداند تا بتواند درخواستهایی را که برای اولین بار به دست آن رسیده است و از قبل پاسخ آن را نمی داند از سرور های ریشه می پرسد و در نتیجه عملیات resolve را، «حل و فصل» کند.
اساساً، یک کاربر معمولاً چند resolving name server را روی سیستم رایانه خود پیکربندی میکند. این سرورها معمولاً توسط یک ISP یا سازمان های دیگر ارائه می شوند. به عنوان مثال، گوگل سرورهای DNS را resolve می کند که می توانید از آنها پرس و جو کنید. این ها می توانند به صورت خودکار یا دستی در رایانه شما پیکربندی شوند.
وقتی یک URL را در نوار آدرس مرورگر خود تایپ می کنید، رایانه شما ابتدا نگاه می کند تا ببیند آیا می تواند به صورت محلی بفهمد که منبع در کجا قرار دارد یا خیر. این فایل “host” را در رایانه و چند مکان دیگر بررسی می کند. سپس درخواست را به سرور resolver ارسال می کند و منتظر می ماند تا آدرس IP سرور اصلی را دریافت کند.
سپس سرور نام حل کننده، کش خود را برای پاسخ بررسی می کند. اگر آن را پیدا نکرد، مراحل ذکر شده در بالا را طی می کند.
در Zone File چه اتفاقی رخ می دهد؟
ما در بالا به ایده “Zone File” و “Records” اشاره کردیم.
فایلهای Zone راهی هستند که Name Serverها اطلاعات دامنههایی را که میشناسند ذخیره میکنند. نیم سرورها اگر اطلاعاتی راجب یک دامنه داشته باشند، آن را در Zone File ذخیره می کنند.
اگر Name Server برای رسیدگی به recursive queries پیکربندی شده باشد، مانند یک سرور Resolver، پاسخ را می یابد و آن را برمی گرداند. در غیر این صورت، به درخواستکننده میگوید چه مسیری را دنبال کند.
هر چه یک Name Server فایل های Zone بیشتری داشته باشد، می تواند به درخواست های بیشتری پاسخ دهد.
در فایل zone DNS، متغیر $ORIGIN
به عنوان یک پارامتر محدودکننده استفاده میشود که تأثیر بر روی نامهای دامنه (domain names) دارد که در همان فایل zone ذکر میشوند. این پارامتر تعیین کننده پیشوند (prefix) برای نامهای دامنه است که در این فایل اعلام میشود.
به عبارت دیگر، ORIGIN مشخص میکند که نامهای دامنه که در فایل zone ذکر میشوند، به چه فضای نامی (name space) اشاره دارند. در ابتدای یک فایل zone، به صورت پیشفرض این ORIGIN برابر با نام دامنه مرجع (primary domain name) فایل zone است. اما این مقدار میتواند با استفاده از دستورات $ORIGIN در فایل zone تغییر یابد.
به عنوان مثال، اگر ORIGIN برابر با google.com تعیین شده باشد، هر نام دامنه که بدون نقطه در ابتدا در فایل zone ذکر شود، به صورت google.com تفسیر میشود. به طور مثال، نام دامنه mysite به معنای mysite.google.com خواهد بود اگر ORIGIN برابر با google.com تنظیم شده باشد.
استفاده از ORIGIN میتواند فایل zone را کوتاهتر و خواناتر کند، زیرا به جای تکرار نام دامنهها با پیشوندهای یکسان، میتوان به صورت نسبی از ORIGIN استفاده کرد.
TTL چیست؟
به طور مشابه، $TTL مخفف “Time to Live” است و در شبکههای کامپیوتری به کار میرود. این مفهوم مربوط به زمانی است که یک پکت داده (مثلاً در پروتکل IP) باید در شبکه باقی بماند و بعد از آن منقضی شود. در واقع، TTL نشاندهنده تعداد هاپهایی (یا سرورهای میانی) است که یک پکت داده میتواند از طریق آنها عبور کند، قبل از اینکه به دست مقصد نهایی برسد.
زمانی که یک پکت داده از طریق شبکه ارسال میشود، مقصد نهایی در فیلد TTL یک مقدار عددی را مشخص میکند. هرگاه یک هاپ (سرور) این پکت را از طریق خود عبور دهد، این مقدار یک واحد کاهش پیدا میکند. اگر مقدار TTL به صفر برسد (به این معنی که از تعداد هاپهای مجاز عبور کرده است)، پکت داده منقضی شده و از شبکه حذف میشود. این اقدام معمولاً از پرهزینهتر شدن شبکه و جلوگیری از حلقههای بینهایت در مسیرهای پکتها جلوگیری میکند.
مقدار TTL معمولاً به عنوان یک پارامتر قابل تنظیم در نرمافزارهای شبکه مورد استفاده قرار میگیرد تا کنترل کیفیت خدمات و جلوگیری از مشکلات مرتبط با پکتهای گمشده یا محدودیتهای ترافیک را سادهتر کند.
انواع Record
در فایل zone، میتوانیم انواع رکوردهای مختلفی داشته باشیم. ما در اینجا به برخی از رایج ترین (یا انواع اجباری) خواهیم پرداخت.
رکورد SOA
رکورد Start of Authority یا SOA یک رکورد اجباری در همه فایل های Zone است. این باید اولین رکورد واقعی در یک فایل باشد (اگرچه مشخصات $ORIGIN یا $TTL ممکن است در بالا ظاهر شود). همچنین یکی از پیچیده ترین برای درک است.
شروع رکورد SOA چیزی شبیه به این است:
domain.com. IN SOA ns1.domain.com. admin.domain.com. ( 12083 ; serial number 3h ; refresh interval 30m ; retry interval 3w ; expiry period 1h ; negative TTL )
بیایید توضیح دهیم که هر قسمت برای چیست:
domain.com.: این ریشه zone است. مشخص می کند که فایل zone برای domain.com است. دامنه. اغلب، میبینید که با @ جایگزین میشود، که فقط یک placeholder است که محتویات متغیر $ORIGIN را که در بالا در مورد آن آموختیم جایگزین میکند.
IN SOA: بخش “IN” به معنای اینترنت است (و در بسیاری از رکوردها وجود خواهد داشت). SOA نشانگر این است که این یک رکورد Start of Authority است.
ns1.domain.com.: این Name Server اصلی را برای این دامنه تعریف می کند. Name Serverها میتوانند اولیه یا ثانویه باشند، و اگر DNS پویا پیکربندی شده باشد، یک سرور باید «اولیه» باشد که به اینجا میرود. اگر DNS پویا را پیکربندی نکردهاید، این فقط یکی از سرورهای نام اصلی شماست.
admin.domain.com.: این آدرس ایمیل مدیر این zone است. “@” با یک نقطه در آدرس ایمیل جایگزین می شود. اگر قسمت نام آدرس ایمیل به طور معمول دارای یک zone است، در این قسمت با یک “” جایگزین می شود (your.name@domain.com تبدیل به your\name.domain.com می شود).
12083: این شماره سریال فایل zone است. هر بار که یک فایل zone را ویرایش می کنید، باید این عدد را افزایش دهید تا فایل zone به درستی منتشر شود. سرورهای ثانویه بررسی خواهند کرد که آیا شماره سریال سرور اصلی برای یک zone بزرگتر از شماره ای است که آنها در سیستم خود دارند یا خیر. اگر بزرگتر باشد، فایل zone جدید را درخواست می کند، اگر بزرگتر نباشد، سرویس با همان فایل اصلی ادامه کار می دهد.
3h: این فاصله بازخوانی برای zone است. این مقدار زمانی است که سرور ثانویه قبل از نظرسنجی اولیه برای تغییرات فایل zone منتظر می ماند.
30 دقیقه: این فاصله تلاش مجدد برای این zone است. اگر سرور ثانویه زمانی که دوره بروزرسانی تمام میشود، نتواند به سرور اولیه متصل شود، این مدت زمان را منتظر میماند و دوباره برای polling سرور اولیه تلاش میکند.
3w: این دوره انقضا است. اگر یک سرور DNS ثانویه نتوانسته باشد برای این مدت زمان با سرور اصلی تماس بگیرد، دیگر پاسخها را به عنوان منبع معتبر برای این zone باز نمیگرداند.
1h: این مدت زمانی است که Name Server در صورتی که نام درخواستی را در این فایل پیدا نکند، خطای نام را کش می کند.
رکورد نوع A و نوع AAAA
هر دوی این رکوردها یک میزبان را به یک آدرس آی پی Map می کنند. رکورد “A” برای نگاشت هاست به آدرس IPv4 استفاده می شود، در حالی که رکوردهای “AAAA” برای mapping میزبان به آدرس IPv6 استفاده می شود.
فرمت کلی این رکوردها به این صورت است:
host IN A IPv4_address host IN AAAA IPv6_address
بنابراین از آنجایی که رکورد SOA ما یک سرور اصلی را در “ns1.domain.com” فراخوانی می کند، باید آن را به یک آدرس به یک آدرس آی پی map کنیم زیرا “ns1.domain.com” در منطقه “domain.com” است که این فایل تعریف کننده است
رکورد می تواند چیزی شبیه به این باشد:
ns1 IN A 111.222.111.222
توجه داشته باشید که ما مجبور نیستیم نام کامل را ارائه کنیم. ما فقط می توانیم میزبان را بدون FQDN بدهیم و سرور DNS بقیه را با مقدار $ORIGIN پر می کند. با این حال، اگر بخواهیم معنایی داشته باشیم، میتوانیم به همین راحتی از کل FQDN استفاده کنیم:
ns1.domain.com. IN A 111.222.111.222
در بیشتر موارد، اینجا جایی است که شما وب سرور خود را به عنوان “www” تعریف می کنید:
www IN A 222.222.222.222
همچنین باید بگوییم که دامنه اصلی به کجا میرود. ما می توانیم این کار را به صورت زیر انجام دهیم:
domain.com. IN A 222.222.222.222
میتوانستیم از «@» برای اشاره به دامنه پایه استفاده کنیم:
@ IN A 222.222.222.222
ما همچنین این گزینه را داریم که هر چیزی را که در این دامنه به صراحت برای این سرور تعریف نشده است حل کنیم. ما می توانیم این کار را با وایلدکارد “*” انجام دهیم:
* IN A 222.222.222.222
در مقاله ای جداگانه به توضیح مفصل wild card خواهیم پرداخت.
همه اینها به خوبی با رکوردهای AAAA برای آدرس های IPv6 کار می کنند.
رکوردهای CNAME
رکوردهای CNAME یک نام مستعار (alias) برای نام canonical برای سرور شما تعریف می کنند (یکی که توسط یک رکورد A یا AAAA تعریف می شود).
برای مثال، میتوانیم یک رکورد A داشته باشیم که میزبان «server1» را تعریف کند و سپس از «www» به عنوان نام مستعار برای این میزبان استفاده کنیم:
server1 IN A 111.111.111.111 www IN CNAME server1
توجه داشته باشید که این نامهای مستعار با برخی از دست دادنهای عملکرد همراه هستند زیرا به یک پرس و جو اضافی برای سرور نیاز دارند. اغلب اوقات، با استفاده از رکوردهای A یا AAAA اضافی می توان به همین نتیجه دست یافت.
یکی از مواردی که توصیه می شود یک CNAME مورد استفاده قرار گیرد، ارائه یک نام مستعار برای یک resource خارج از zone فعلی است.
رکورد MX
رکوردهای MX برای تعریف mail exchanges استفاده می شود. این کمک می کند تا پیام های ایمیل به درستی به سرور ایمیل شما برسد.
برخلاف بسیاری از انواع رکوردهای دیگر، رکوردهای ایمیل معمولاً یک هاست را به چیزی مپ نمی کنند، زیرا در کل zone اعمال می شود. به این ترتیب، آنها معمولاً به این شکل هستند:
IN MX 10 mail.domain.com.
توجه داشته باشید که در ابتدا نام میزبانی وجود ندارد.
همچنین توجه داشته باشید که یک عدد اضافی در آن وجود دارد. این شماره ترجیحی است که به رایانه ها کمک می کند تا در صورت وجود چندین سرور ایمیل تعریف شده، تصمیم بگیرند که به کدام سرور پیام ارسال کنند. اعداد کمتر اولویت بیشتری دارند.
رکورد MX به طور کلی باید به میزبانی اشاره کند که توسط یک رکورد A یا AAAA تعریف شده است و نه میزبانی که توسط یک CNAME تعریف شده است.
بنابراین، فرض کنید که ما دو سرور ایمیل داریم. باید رکوردهایی وجود داشته باشد که چیزی شبیه این باشد:
IN MX 10 mail1.domain.com. IN MX 50 mail2.domain.com. mail1 IN A 111.111.111.111 mail2 IN A 222.222.222.222
در این مثال، میزبان “mail1” سرور تبادل ایمیل ترجیحی است.
ما همچنین می توانیم آن را به این صورت بنویسیم:
IN MX 10 mail1 IN MX 50 mail2 mail1 IN A 111.111.111.111 mail2 IN A 222.222.222.222
رکورد NS
این نوع رکورد، Name Serverهایی را که برای zone استفاده می شود، تعریف می کند.
سرورهای نام یا سرورهای DNS، سرورهایی هستند که وظیفه ترجمه نام دامنهها به آدرسهای IP متناظر و برعکس را بر عهده دارند. در واقع، وقتی کاربری یک دامنه مانند example.com
را وارد میکند، درخواست DNS به سرورهای نام یا سرورهای DNS ارسال میشود تا آدرس IP متناظر با آن دامنه را بازگردانند.
رکورد NS (نام سرور) در DNS، مشخص میکند که کدام سرورها (سرورهای نام یا DNS) مسئولیت ارائه اطلاعات DNS برای یک دامنه خاص را دارند. به عبارت دیگر، رکورد NS به سرورهای معینی اشاره میکند که برای پاسخگویی به درخواستهای DNS مرتبط با یک دامنه، مسئول هستند.
پس از دریافت رکورد NS برای یک دامنه، سرورهای DNS به عنوان نتیجه از پرسوجو، آدرسهای IP مربوط به سایت یا خدمات موجود در آن دامنه را برمیگردانند. این فرایند اساسی برای عملکرد صحیح اینترنت و ارتباطات آن است، زیرا بدون DNS، ارتباط با وبسایتها و خدمات آنلاین به طور مستقیم بر اساس آدرسهای IP بسیار دشوار خواهد بود.
IN NS ns1.domain.com. IN NS ns2.domain.com.
شما باید حداقل دو سرور dns در هر فایل zone تعریف شده داشته باشید تا در صورت وجود مشکل در یک سرور، سرور دوم به درستی کار کند.
مثل همیشه، مسیردهی هاست ها را با رکوردهای A یا AAAA اضافه کنید:
IN NS ns1.domain.com. IN NS ns2.domain.com. ns1 IN A 111.222.111.111 ns2 IN A 123.211.111.233
چندین نوع رکورد دیگر وجود دارد که می توانید استفاده کنید، اما اینها احتمالاً رایج ترین انواعی هستند که با آنها برخورد خواهید کرد.
رکوردهای PTR
رکوردهای PTR برای تعریف یک نام مرتبط با یک آدرس IP استفاده می شوند. رکوردهای PTR معکوس رکوردهای A یا AAAA هستند. رکوردهای PTR از این جهت منحصر به فرد هستند که از ریشه .arpa شروع می شوند و به صاحبان آدرس های IP واگذار می شوند.مراکز منطقهای ثبت اینترنتی Regional Internet Registries ” (RIRs) مسئول مدیریت اختصاص آدرسهای IP به سازمانها و ارائهدهندگان خدمات اینترنت هستند. این مراکز شامل APNIC، ARIN، RIPE NCC، LACNIC و AFRINIC هستند. به عبارت دیگر، RIRها وظیفه تخصیص آدرسهای IP به موسسات و شرکتهای ارائهدهنده خدمات اینترنت در منطقه خود را دارند..
در اینجا یک نمونه از رکورد PTR برای 111.222.333.444 را مشاهده می کنید:
444.333.222.111.in-addr.arpa. 33692 IN PTR host.example.com.
این مثال از یک رکورد PTR برای یک آدرس IPv6 فرمت nibble پشت سرور IPv6 DNS Google 2001:4860:4860::8888 را نشان می دهد.
8.8.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.8.4.0.6.8.4.1.0.0.2.ip6.arpa. 86400IN PTR google-public-dns-a.google.com.
ابزار خط فرمان dig با پرچم -x می تواند برای جستجوی نام DNS معکوس یک آدرس IP استفاده شود.
در اینجا مثالی از دستور dig آورده شده است. + short برای کاهش خروجی به نام DNS معکوس اضافه می شود.
dig -x 8.8.4.4 +short
خروجی دستور dig در بالا، نام دامنه در رکورد PTR برای آدرس IP خواهد بود:
google-public-dns-b.google.com.
سرورهای موجود در سطح اینترنت از رکوردهای PTR برای قرار دادن نام دامنه در ورودیهای گزارش، تصمیمگیری آگاهانه در مورد مدیریت هرزنامهها و نمایش جزئیات آسان برای خواندن سایر دستگاهها استفاده میکنند.
اغلب سرورهای ایمیلی که معمولاً مورد استفاده قرار می گیرند، رکورد PTR آدرس IP را که از آن ایمیل دریافت می کند، جستجو می کنند. اگر آدرس IP میزبان دارای یک رکورد PTR مرتبط با آن نباشد، ایمیل های ارسال شده ممکن است به عنوان هرزنامه تلقی شده و رد شوند. مهم نیست که FQDN در PTR با نام دامنه ایمیل ارسالی مطابقت داشته باشد. آنچه مهم است این است که یک رکورد PTR معتبر با یک رکورد A متناظر و منطبق وجود دارد.
به طور معمول به روترهای شبکه در اینترنت رکوردهای PTR داده می شود که با موقعیت فیزیکی آنها مطابقت دارد. به عنوان مثال، ممکن است ارجاعاتی به «NYC» یا «CHI» برای یک روتر در شهر نیویورک یا شیکاگو ببینید. این در هنگام اجرای traceroute یا MTR و بررسی مسیری که ترافیک اینترنت طی می کند مفید است.
اکثر ارائه دهندگانی که سرورهای اختصاصی یا خدمات VPS را ارائه می دهند به مشتریان این امکان را می دهند که یک رکورد PTR برای آدرس IP خود تنظیم کنند.
نکته: مهم است که FQDN در رکورد PTR دارای یک رکورد A متناظر و منطبق باشد. مثال: 111.222.333.444 دارای PTR server.example.com است و server.example.com یک رکورد A است که به 111.222.333.444 اشاره می کند.
سخن پایانی
اکنون باید درک بسیار خوبی از نحوه عملکرد DNS داشته باشید. در حالی که درک ایده کلی پس از آشنایی با استراتژی نسبتاً آسان است، اما هنوز هم اجرای فنی آن برای مدیران بی تجربه دشوار است.
سعی کنید انواع مختلف رکوردها را به خاطر بسپارید و به آنها فکر کنید و در صورت نیاز دوباره این مطلب را مطالعه کنید تا درخت دانش مرتبط با این موضوع در ذهن شما شکل بگیرد.
برای بررسی کلی نحوه تنظیم دامنه ها در کنترل پنل آموزش های بعدی ما را دنبال کنید.