یک رکورد DNS که گاهاً آن را RR یا رکورد مرجع نیز می نامند، یک دامنه را به یک IP به اصطلاح Map می کند؛ یعنی بجای حفظ کردن آدرس IP سایت های مختلف، کاربر تنها نام آن دامنه را به خاطر می سپارد. و کار تبدیل نام دامنه ها به آدرس IP سایت ها نیز توسط DNS Server ها انجام می شود.رکوردهای DNS شامل اطلاعات مهمی هستند که نحوه یافتن آدرس آی پی سایت و مرجع پاسخ دهنده به درخواست ها را مشخص می کنند. این رکوردها فایل های متنی خاصی هستند که در قالب سینتکس DNS نوشته شده و در فایل های Zone (zone file) نگهداری می شوند.پس به عبارتی، یک zone file جایی است که تمام رکوردهای DNS برای دامنه مورد نظر در آن نگهداری می شوند. بنابراین هر زمان که شخصی یک DNS Query یا اجرا کند، سرورها اطلاعات را از این فایل ها دریافت کرده و به کاربر نمایش می دهند.هر رکورد یک تاریخ انقضا دارد که به آن time to live یا TTL گویند. این مقدار به DNS Server اطلاع می دهد که چه زمانی باید اطلاعات آن رکورد را refresh کند. رکوردهای DNS دارای یک نوع (Type) و یک مقدار value نیز هستند که در ادامه تمام این جزئیات را بررسی خواهیم کرد.
منظور از DNS Lookup چیست؟
همانطور که گفتیم آدرس های IP کاربرپسند و قابل حفظ کردن نیستند؛ فرض کنید برندها برای تبلیغات مجبور بودند آدرس سایت شان را با آی پی به مخاطبین نمایش دهند!!پروسه ای که نام دامنه ها را به آدرس های IP (خوانا از دید دستگاه ها) تبدیل می کند، DNS Lookup نامیده می شود. در واقع این فرآیند به این صورت عمل می کند:زمانی که نام سایتی را در مرورگر وارد می کنید، مثلاً mizbancloud.com، فرآیند lookup فوراً این موضوع را چک می کند که آیا قبلاً از این سایت بازدید کرده بودید یا نه!کامپیوتر شما تمام رکوردهایی که قبلاً از آنها بازدید کرده باشید را در کش DNS خود نگه می دارد.اگر فرآیند Lookup یا جستجو، اطلاعات رکورد را پیدا کند، به سرعت آن را تحویل مرورگر داده و سایت را برای شما قابل رویت می کند.
اگر اولین بار باشد که از سایتی بازدید می کنید، Lookup یک درخواست به سمت DNS سرور لوکال شما ارسال می کند. به این سرور Resolving name server یا Recursive resolver گویند.
اگر درخواست ارسال شده نتواند رکوردهای DNS را در این مرحله پیدا کند، به سمت یک Root name server هدایت خواهد شد؛ و سپس به سمت TLD server lookup!پس از اینکه فرآیند Lookup همراه با داده های DNS مورد نظر به اتمام رسد، کامپیوتر شما آن را کش خواهد کرد.در نهایت وبسایت مدنظر شما پس از شناسایی رکوردهای DNS و اتصال به سرور نگه دارنده منابع سایت (سرور اصلی یا سرورهای لبه CDN) به طور کامل بارگذاری خواهد شد.
آشنایی با مفهوم DNS Propagation
انتشار DNS یا DNS Propagation مدت زمانی است که رکوردهای DNS برای آپدیت شدن به طول می انجامند. یعنی اگر شما تصمیم بگیرید که آدرس های IP را برای یک هاست نیم خاص تغییر دهید، ممکن است تا 72 ساعت برای تکثیر آن زمان لازم باشد.سیستم نام دامنه یا DNS ساختار طولانی و پیچیده ای دارد؛ همانطور که می تواند در کمتر از چند میلی ثانیه به اطلاعات بیشتر سایت ها دسترسی پیدا کند، با تغییر رابطه چندان خوبی ندارد.هر زمان که شما تغییر یا اصلاحی روی DNS های خود اعمال کنید، از زمان دقیق نمایش آن برای تمام کاربران اطلاعی نخواهید یافت.
تنظیمات TTL
DNS یا DNS Resolver ها هر از چند گاهی نسخه های کش اطلاعات DNS شان را پاک می کنند تا داده های جدید را DNS Server ها دریافت کنند. به مدت زمانی که بین دو رفرش طول می کشد را TTL گویند. بنابراین طول DNS Propagation به مدت زمانی که در TTL تعیین می کنید بستگی خواهد داشت.برای مثال، تنظیم TTL روی 30 دقیقه، باعث خواهد شد تا هر سروری در جهان تنها به مدت نیم ساعت بر داده های قبلی تکیه کند، تا اینکه سیستم لوکال اطلاعات DNS را مجدداً Refresh کند.
ثبت نام دامنه
ممکن است یک Root server که TLD دامنه را از درخواست کاربر استخراج می کند، TTL ی به اندازه 48 ساعت یا بیشتر داشته باشد تا از استفاده بی جا خودداری شود. به همین دلیل است که اگر نیم سرور سایت خود را تغییر دهید، باید مدتی صبر کنید تا در Root server نیز انعکاس یابد.هر زمان که تغییری در رکوردهای DNS خود دادید، می توانید با استفاده از سایت های مختلف نظیر DNSchecker یا intodns، وضعیت انتشار رکوردها را بررسی کنید.
لیستی از رکوردهای DNS
تقریباً 90 نوع رکورد DNS مختلف وجود دارد، اما نیازی به شناختن تمام آنها نیست! حتی شاید بیشتر آنها تا بحال مورد استفاده قرار نگرفته باشند. در ادامه چند مورد از کاربردی ترین و رایج ترین رکوردهای DNS را باهم مرور خواهیم کرد...
-
رکورد NS
رکورد NS یا Name Server، جزو مهم ترین رکوردهایی است که اطلاعات دامنه یک وبسایت را در خود ذخیره می کند. زمانی که به دنبال اطلاعات یک دامنه می گردید، رکورد NS مسئول فراهم کردن لیستی از سرورهای Authoritative DNS برای شماست. اساساً رکوردهای نیم سرور به شما این امکان را می دهند تا موقعیت رکوردهای دیگر را پیدا کنید.
برای مدیریت بهینه یک DNS، رکوردهای NS نقش بسزایی را ایفا می کنند، چراکه آنها موقعیت DNS Zone را نمایش می دهند. یعنی به یک نقطه معین برای یافتن سایر رکوردها اشاره می کنند. برای مثال اگر از CDN میزبان کلود استفاده کرده باشید، NS شما پس از ویرایش، به IP های میزبان کلود اشاره خواهد کرد.
-
رکورد A
یک رکورد آدرس (Address Record) یک دامنه را به یک آدرس IPv4 که میزبان منابع سایت است Map می کند. زمانی که یک a record اضافه می کنید، نام دامنه به طور خودکار به آی پی مشخصی که شما وارد کردید، الحاق (متصل) می شود.
برای مثال ممکن است به این شکل دو A record ایجاد کنید:
A @ 31.25.90.170 3600
A Blog 31.25.90.170 3600
این دو رکورد یکی برای دامنه اصلی و دیگری برای ساب دامنه (blog) است که به یک آدرس IP و یک مقدار TTL (3600) اشاره می کنند.
وضعیت ابر برای رکوردهای A در CDN
برای اتصال یک سایت به CDN باید از طریق A Record آدرس ip سرور اصلی خود را معرفی کنید. در صورتی که NS های ارائه دهنده CDN (نظیر CDN میزبان کلود) را بر روی NS های دامنه خود ست کرده باشید، با دو حالت مواجه خواهید شد:
خاموش بودن وضعیت ابر (پروکسی) برای رکورد A دامنه اصلی:
در این صورت ترافیک از سرورهای CDN عبور نکرده و در اصل CDN به عنوان یک DNS ابری، تنها معرف آدرس IP سرور اصلی شما خواهد بود.
روشن بودن وضعیت ابر برای رکورد A دامنه اصلی:
در این صورت ترافیک از سرورهای CDN عبور کرده و با کوئری گرفتن از نام دامنه نیز آی پی سرورهای CDN نمایش داده خواهند شد.
* بنابراین برای استفاده از خدمات CDN باید وضعیت ابر را برای رکورد A دامنه اصلی و ساب دامنه هایی که مایلید به CDN متصل شوند، روشن کنید.
-
رکورد AAAA
این رکورد دامنه را به یک آدرس IPv6 متصل می کند. برای مثال به این رکورد نگاه کنید:
ipxo.com 300 AAAA 2606:4700:3032ac43:b794
-
رکورد CNAME
این رکورد کارکرد Canonical را دارد؛ یعنی برای ریدایرکت کردن خودکار از یک دامنه به دامنه دیگر مورد استفاده قرار می گیرد. برای مثال اگر بخواهید مسیر store.yourdomain.com به طور خودکار به فروشگاه شما در Ebay ریدایرکت شود، باید یک رکورد CNAME شبیه به این برای اینکار ایجاد کنید:
CNAME store yourstore.ebay.com 86400
*این رکورد به IP اشاره نمی کند!
رکورد CNAME در زمان اتصال به CDN
در شرایط استفاده از CDN، اگر می خواهید دامنه شما به طور خودکار به آدرس با www ریدایرکت شود، می توانید در تنظیمات داشبورد CDN این ریدایرکت را فعال کنید و نیازی به ساخت CANME برای این آدرس نیست!
با این حال اگر رکورد CNAME را برای www ساخته اید، دو حالت رخ خواهد داد:
خاموش بودن وضعیت ابر برای رکورد اصلی (A مسیر اصلی دامنه):
در این صورت اگر وضعیت ابر برای این رکورد CNAME روشن باشد، ترافیک به سمت سرورهای CDN هدایت شده که در نهایت با صفحه ارور مواجه خواهند شد.
روشن بودن وضعیت ابر برای رکورد اصلی:
در این صورت روشن یا خاموش بودن وضعیت ابر برای این رکورد CNAME اهمیتی ندارد و ترافیک به سمت دامنه اصلی هدایت شده و سپس محتوا توسط CDN توزیع می شود.
-
رکورد MX
این رکورد برای هدایت ایمیل ها به میل سرور (Mail server) مورد استفاده قرار می گیرد. این میل سرور برای از طریق SMTP برای دامنه شما، ایمیل ها را تحویل می دهد. این رکوردها همیشه به یک دامنه اشاره می کنند، نه IP. البته می توانید برای یک دامنه از چند رکورد MX با اولویت های مختلف استفاده کنید.
رکورد MX در صورت اتصال به CDN
در میزبان کلود، امکان فعال کردن وضعیت ابر (پروکسی) برای رکوردهای MX وجود ندارد؛ دلیل این امر نیز این است که اگر وضعیت پروکسی برای این رکورد فعال باشد، ایمیل ها بجای هدایت به سمت Mail server به سمت سرورهای cdn هدایت شده که در انتها fail خواهند شد.
بنابراین اگر در ارائه دهنده CDN، امکان فعال کردن این رکورد را دارید، باید از خاموش بودن پروکسی برای این رکورد اطمینان حاصل کنید.
علاوه بر این دقت داشته باشید که در صورت فعال بودن وضعیت ابر برای رکورد دامنه اصلی، نباید Value رکورد MX را به دامنه اصلی خود دهید؛ چراکه دقیقاً همانند توضیح پاراگراف قبل، ایمیل ها به سرورهای CDN ارسال خواهد شد.
بنابراین حالت صحیح ساخت رکورد MX در شرایط استفاده از CDN باید به این صورت باشد:
- on☁️ A yoursite.com 31.25.90.170 3600
- off☁️ A mail 31.25.90.170 3600
- off☁️ MX mail mail.yoursite.com 86400
-
رکورد SFP
این رکورد تقریباً پروتکل جدیدی است برای مقابله با اسپم؛ رکورد SPF از یک رکورد TXT در فایلی درون DNS Zone استفاده می کند تا لیستی از هاست نیم (Hostname) و آدرس های مجاز برای ارسال ایمیل را معرفی کند. پس از پیکربندی این رکورد، ایمیل سرورها می توانند رکورد SPF را شناسایی کرده و با کلیدهای موجود، اسپم نبودن آن آدرس را تایید کنند.
-
رکورد TXT
یک رکورد TXT نوعی از رکوردهای DNS است که اطلاعاتی متنی برای مراجع خارج از دامنه شما فراهم کند. ممکن است چندین TXT رکورد ساخته باشید که شامل جزئیاتی خوانا برای انسان ها در مورد سرور، شبکه، دیتاسنتر و اطلاعات مالی و غیره باشند.
برخی از کاربردهای رکورد txt عبارتند از: استفاده در SPF، DK و DKIM. این رکورد را برای اعتبارسنجی ابزارهای شخص ثالث نظیر Microsoft 365، Google Search Console و امثالهم نیز بکار می برند.
جمع بندی
رکوردهای DNS بخش جداناپذیری از اینترنت هستند؛ این رکوردها زیرساختی برای سرورهای DNS بوده و آنها را در فرآیند جستجو یا DNS Lookup راهنمایی می کنند. در کل، این رکوردها راهی کاربرپسند تبدیل نام دامنه سایت ها به آدرس های IP هستند. رکوردهای مختلفی از جمله A، CNAME، MX و TXT وجود دارند که برای اهداف مختلفی مورد استفاده قرار می گیرند؛ در این مطلب در خصوص این رکوردهای رایج اطلاعاتی ارائه شد و نکات مهم برای اتصال آنها ضمن استفاده از CDN نیز برای شما فراهم شد.
ارائه دهنده خدمات زیرساخت یکپارچه ابری