خانه هاست و میزبانی وب رکورد CNAME چیست و چه کاربردی دارد؟
تاریخ به‌روزرسانی : 1397/08/05
به قلم : شهاب بیرامی
زمان مطالعه : 12 دقیقه

📌 خلاصه مطلب (TL;DR)

  • رکورد CNAME چیست؟
    رکورد CNAME (Canonical Name) نوعی رکورد DNS است که یک دامنه یا ساب‌دامین را به‌عنوان «نام مستعار» به دامنه دیگری (نام اصلی یا canonical) متصل می‌کند.
  • کاربردهای اصلی:
    اتصال www به دامنه اصلی، پیکربندی CDN، اتصال ساب‌دامین‌ها به سرویس‌های ثالث، مدیریت آسان‌تر DNS.
  • محدودیت مهم:
    رکورد CNAME را نمی‌توان در ریشه دامنه (Zone Apex) استفاده کرد؛ برای این کار از رکورد ALIAS یا CNAME Flattening استفاده کنید.
  • تفاوت با A Record:
    رکورد A مستقیماً به آدرس IP اشاره می‌کند، اما CNAME به یک نام دامنه دیگر.

اگر می‌خواهید وب‌سایت خود را به‌درستی راه‌اندازی کنید یا از سرویس‌هایی مانند CDN، ایمیل سازمانی یا هاست ابری استفاده کنید، آشنایی با رکوردهای DNS ضروری است. یکی از مهم‌ترین و پرکاربردترین این رکوردها، رکورد CNAME است که به شما امکان می‌دهد چندین نام دامنه را به یک مقصد واحد متصل کنید.

در این راهنمای جامع، همه چیز درباره رکورد CNAME را یاد می‌گیرید: از تعریف و کاربردها گرفته تا نحوه تنظیم، محدودیت‌ها، و تفاوت آن با سایر رکوردهای DNS مانند A، ALIAS و MX.

💡 از تجربه ما:
این راهنما بر اساس تجربه تیم فنی برتینا در پیکربندی هزاران دامنه برای مشتریان هاست، سرور مجازی و سرور اختصاصی تهیه شده است. اگر در تنظیم DNS دامنه خود به مشکل برخوردید، تیم پشتیبانی ما ۲۴ ساعته در خدمت شماست.

رکورد CNAME چیست؟

رکورد CNAME (مخفف Canonical Name Record) نوعی رکورد در سیستم نام دامنه (DNS) است که یک نام دامنه را به‌عنوان «نام مستعار» (Alias) به نام دامنه دیگری (نام اصلی یا Canonical) متصل می‌کند. به زبان ساده، CNAME به شما اجازه می‌دهد که یک دامنه یا ساب‌دامین را به دامنه دیگری ارجاع دهید.

برای مثال، اگر می‌خواهید هم www.example.com و هم example.com به یک وب‌سایت اشاره کنند، می‌توانید یک رکورد CNAME برای www ایجاد کنید که به دامنه اصلی اشاره کند.

ساختار رکورد CNAME

یک رکورد CNAME از دو بخش اصلی تشکیل شده است:

  • Host (نام میزبان): دامنه یا ساب‌دامینی که می‌خواهید به‌عنوان نام مستعار تعریف کنید (مثلاً www یا blog)
  • Target (مقصد): نام دامنه‌ای که Host باید به آن اشاره کند (مثلاً example.com)
# نمونه رکورد CNAME
www.example.com. IN CNAME example.com.
blog.example.com. IN CNAME example.com.
shop.example.com. IN CNAME myshop.shopify.com.

رکورد CNAME چگونه کار می‌کند؟

وقتی کاربر آدرس www.example.com را در مرورگر وارد می‌کند، فرآیند زیر اتفاق می‌افتد:

  1. مرورگر از سرور DNS درخواست آدرس IP مربوط به www.example.com را می‌کند
  2. سرور DNS رکورد CNAME را پیدا می‌کند که به example.com اشاره دارد
  3. سرور DNS یک جستجوی جدید برای example.com انجام می‌دهد
  4. رکورد A مربوط به example.com پیدا شده و آدرس IP بازگردانده می‌شود
  5. مرورگر به آن آدرس IP متصل می‌شود

جدول مقایسه انواع رکوردهای DNS

برای درک بهتر جایگاه CNAME در میان رکوردهای DNS، جدول زیر را ببینید:

نوع رکورد کاربرد مقصد قابل استفاده در Zone Apex همزیستی با رکوردهای دیگر
A اتصال دامنه به آدرس IPv4 آدرس IP (مثلاً 192.0.2.1) ✅ بله ✅ بله
AAAA اتصال دامنه به آدرس IPv6 آدرس IPv6 ✅ بله ✅ بله
CNAME ایجاد نام مستعار برای دامنه نام دامنه (مثلاً example.com) ❌ خیر ❌ خیر (انحصاری)
ALIAS/ANAME نام مستعار برای Zone Apex نام دامنه (resolve می‌شود به IP) ✅ بله ✅ بله
MX مشخص کردن سرور ایمیل نام سرور ایمیل + اولویت ✅ بله ✅ بله
TXT ذخیره متن (SPF، DKIM، تأیید مالکیت) رشته متنی ✅ بله ✅ بله
NS مشخص کردن Name Server نام سرور DNS ✅ بله (اجباری) ✅ بله

کاربردهای رکورد CNAME

رکورد CNAME کاربردهای متنوعی در مدیریت دامنه و زیرساخت وب دارد:

1. اتصال www به دامنه اصلی

رایج‌ترین استفاده از CNAME، اتصال نسخه www دامنه به نسخه بدون www است:

www IN CNAME example.com.

2. پیکربندی CDN و سرویس‌های ابری

سرویس‌های CDN مانند Cloudflare، AWS CloudFront و Azure CDN معمولاً یک hostname به شما می‌دهند که باید با CNAME به آن متصل شوید:

cdn IN CNAME d111111abcdef8.cloudfront.net.
www IN CNAME example.com.cdn.cloudflare.net.

3. اتصال ساب‌دامین‌ها به سرویس‌های ثالث

برای اتصال ساب‌دامین‌ها به سرویس‌هایی مانند Shopify، GitHub Pages، یا پلتفرم‌های SaaS:

shop IN CNAME shops.myshopify.com.
blog IN CNAME username.github.io.
support IN CNAME example.zendesk.com.

4. مدیریت ساده‌تر تغییرات IP

اگر چندین ساب‌دامین با CNAME به یک دامنه اصلی اشاره کنند، با تغییر IP در رکورد A دامنه اصلی، همه ساب‌دامین‌ها به‌روز می‌شوند.

5. Load Balancing و Failover

برخی سرویس‌های DNS پیشرفته از CNAME برای توزیع بار و failover استفاده می‌کنند.

محدودیت‌های رکورد CNAME

رکورد CNAME با وجود کاربردهای فراوان، محدودیت‌های مهمی دارد که باید بدانید:

1. عدم استفاده در Zone Apex (ریشه دامنه)

طبق استانداردهای RFC 1034 و RFC 1035، نمی‌توانید رکورد CNAME را در ریشه دامنه (Zone Apex) قرار دهید. یعنی برای example.com (بدون ساب‌دامین) نمی‌توانید CNAME تعریف کنید.

🚨 مهم:
دلیل این محدودیت این است که Zone Apex باید رکوردهای SOA و NS داشته باشد، و CNAME نمی‌تواند با هیچ رکورد دیگری همزیستی کند.

2. انحصاری بودن CNAME

اگر یک hostname دارای رکورد CNAME باشد، نمی‌تواند هیچ رکورد دیگری (A، MX، TXT و...) داشته باشد. این یعنی نمی‌توانید همزمان CNAME و MX برای یک ساب‌دامین داشته باشید.

3. افزایش زمان Lookup

هر رکورد CNAME یک مرحله اضافی به فرآیند DNS lookup اضافه می‌کند. اگرچه این تأخیر معمولاً ناچیز است، اما در سیستم‌های حساس به latency می‌تواند تأثیرگذار باشد.

4. زنجیره CNAME (CNAME Chain)

اگر یک CNAME به CNAME دیگری اشاره کند، زنجیره‌ای ایجاد می‌شود که کارایی را کاهش می‌دهد. بهتر است از زنجیره‌های طولانی CNAME خودداری کنید.

CNAME Flattening چیست؟

برای غلبه بر محدودیت Zone Apex، برخی ارائه‌دهندگان DNS از تکنیکی به نام CNAME Flattening استفاده می‌کنند. در این روش، سرور DNS به جای بازگرداندن رکورد CNAME، آدرس IP نهایی را مستقیماً برمی‌گرداند.

مزایای CNAME Flattening:

  • امکان استفاده از CNAME-like در Zone Apex
  • کاهش تعداد DNS lookup
  • سازگاری با استانداردهای RFC
  • ایده‌آل برای اتصال به CDN و سرویس‌های ابری

ارائه‌دهندگانی که CNAME Flattening پشتیبانی می‌کنند:

  • Cloudflare: به صورت پیش‌فرض فعال است (مستندات Cloudflare)
  • AWS Route 53: با استفاده از ALIAS Records
  • Azure DNS: با Alias Records
  • DNS Made Easy: با ANAME Records

رکورد ALIAS در مقابل CNAME

رکورد ALIAS (یا ANAME) جایگزینی برای CNAME است که محدودیت‌های آن را ندارد:

ویژگی CNAME ALIAS
استفاده در Zone Apex ❌ خیر ✅ بله
همزیستی با رکوردهای دیگر ❌ خیر ✅ بله
استاندارد RFC ✅ RFC 1034/1035 ❌ غیراستاندارد
پشتیبانی همه ارائه‌دهندگان ارائه‌دهندگان خاص
خروجی به Client نام دامنه آدرس IP

نحوه تنظیم رکورد CNAME

تنظیم رکورد CNAME در اکثر پنل‌های مدیریت DNS ساده است. در اینجا مراحل کلی را شرح می‌دهیم:

مراحل تنظیم CNAME:

  1. ورود به پنل مدیریت DNS: وارد کنترل پنل دامنه یا سرویس DNS خود شوید
  2. انتخاب دامنه: دامنه مورد نظر را انتخاب کنید
  3. افزودن رکورد جدید: روی گزینه Add Record یا افزودن رکورد کلیک کنید
  4. انتخاب نوع CNAME: از لیست نوع رکورد، CNAME را انتخاب کنید
  5. وارد کردن Host: نام ساب‌دامین را وارد کنید (مثلاً www یا blog)
  6. وارد کردن Target: دامنه مقصد را وارد کنید (مثلاً example.com)
  7. تنظیم TTL: مقدار TTL را تنظیم کنید (پیش‌فرض معمولاً 3600 ثانیه است)
  8. ذخیره تغییرات: رکورد را ذخیره کنید

💡 نکته:
انتشار تغییرات DNS ممکن است تا 24-48 ساعت طول بکشد. اگر از Cloudflare استفاده می‌کنید، تغییرات تقریباً آنی اعمال می‌شوند.

تنظیم CNAME در cPanel:

1. Login to cPanel
2. Go to "Zone Editor" under Domains
3. Click "Manage" next to your domain
4. Click "+ Add Record" and select "CNAME"
5. Enter Name (e.g., www) and Record (target domain)
6. Click "Save Record"

تنظیم CNAME در Cloudflare:

1. Login to Cloudflare Dashboard
2. Select your domain
3. Go to DNS > Records
4. Click "Add record"
5. Type: CNAME
6. Name: subdomain (e.g., www)
7. Target: target domain (e.g., example.com)
8. Proxy status: Choose Proxied or DNS only
9. Click "Save"

بررسی و عیب‌یابی رکورد CNAME

برای بررسی صحت تنظیم رکورد CNAME می‌توانید از ابزارهای زیر استفاده کنید:

استفاده از dig (Linux/macOS):

dig www.example.com CNAME

# نمونه خروجی:
;; ANSWER SECTION:
www.example.com. 3600 IN CNAME example.com.

استفاده از nslookup (Windows):

nslookup -type=CNAME www.example.com

ابزارهای آنلاین:

مشکلات رایج CNAME و راه‌حل‌ها

مشکل علت راه‌حل
CNAME در Zone Apex کار نمی‌کند محدودیت استاندارد DNS از ALIAS/ANAME یا CNAME Flattening استفاده کنید
تداخل CNAME با رکوردهای دیگر CNAME انحصاری است رکوردهای متداخل را حذف کنید یا از ALIAS استفاده کنید
تأخیر در اعمال تغییرات DNS Propagation 24-48 ساعت صبر کنید؛ کش مرورگر را پاک کنید
زنجیره CNAME طولانی CNAME به CNAME اشاره می‌کند مستقیماً به مقصد نهایی اشاره کنید
خطای گواهی SSL گواهی SSL شامل دامنه CNAME نیست گواهی را برای دامنه جدید صادر کنید

بهترین شیوه‌ها برای استفاده از CNAME

برای استفاده بهینه از رکوردهای CNAME، این نکات را رعایت کنید:

  1. از زنجیره CNAME خودداری کنید: همیشه مستقیماً به مقصد نهایی اشاره کنید
  2. TTL مناسب انتخاب کنید: برای تغییرات مکرر، TTL کوتاه‌تر (300-600 ثانیه) و برای رکوردهای پایدار، TTL بلندتر (3600-86400 ثانیه)
  3. سرویس‌های ثالث را مانیتور کنید: اگر CNAME به سرویس ثالث اشاره می‌کند، تغییرات آن‌ها را پیگیری کنید
  4. مستندسازی کنید: تمام رکوردهای CNAME و دلیل ایجاد آن‌ها را مستند کنید
  5. از ALIAS برای Zone Apex استفاده کنید: اگر ارائه‌دهنده DNS شما پشتیبانی می‌کند

سوالات متداول درباره رکورد CNAME

رکورد CNAME چیست و چه تفاوتی با رکورد A دارد؟

رکورد CNAME (Canonical Name) یک نام مستعار برای دامنه ایجاد می‌کند و به نام دامنه دیگری اشاره می‌کند. در مقابل، رکورد A مستقیماً یک دامنه را به آدرس IPv4 متصل می‌کند. CNAME برای اتصال ساب‌دامین‌ها به سرویس‌های خارجی یا ایجاد alias مناسب است، در حالی که A Record برای اتصال مستقیم دامنه به سرور استفاده می‌شود.

آیا می‌توان رکورد CNAME را برای دامنه اصلی (بدون www) استفاده کرد؟

خیر، طبق استانداردهای RFC 1034 و RFC 1035، رکورد CNAME را نمی‌توان در Zone Apex (ریشه دامنه مانند example.com) استفاده کرد. برای این کار، می‌توانید از رکورد ALIAS (در ارائه‌دهندگانی که پشتیبانی می‌کنند) یا CNAME Flattening (مانند Cloudflare) استفاده کنید.

چقدر طول می‌کشد تا تغییرات رکورد CNAME اعمال شود؟

انتشار تغییرات DNS (DNS Propagation) معمولاً بین چند دقیقه تا 24-48 ساعت طول می‌کشد. این زمان به TTL رکورد قبلی و سرورهای DNS میانی بستگی دارد. برای تسریع، می‌توانید TTL را قبل از تغییر کاهش دهید و کش مرورگر و DNS محلی را پاک کنید.

CNAME Flattening چیست و چه کاربردی دارد؟

CNAME Flattening تکنیکی است که در آن سرور DNS به جای بازگرداندن رکورد CNAME، آدرس IP نهایی را مستقیماً برمی‌گرداند. این روش به شما اجازه می‌دهد رفتار CNAME-like را در Zone Apex داشته باشید و همچنین تعداد DNS lookup را کاهش می‌دهد. Cloudflare این قابلیت را به صورت پیش‌فرض ارائه می‌دهد.

چرا نمی‌توانم همزمان CNAME و MX برای یک ساب‌دامین داشته باشم؟

طبق استانداردهای DNS، رکورد CNAME انحصاری است و نمی‌تواند با هیچ رکورد دیگری (از جمله A، MX، TXT و...) در یک hostname همزیستی کند. اگر نیاز به هر دو دارید، باید از رکورد ALIAS استفاده کنید که این محدودیت را ندارد، یا ساب‌دامین جداگانه‌ای برای ایمیل در نظر بگیرید.

آیا CNAME روی سرعت وب‌سایت تأثیر می‌گذارد؟

بله، اما تأثیر معمولاً ناچیز است. هر رکورد CNAME یک مرحله اضافی به DNS lookup اضافه می‌کند (چون باید مقصد نهایی resolve شود). این تأخیر معمولاً چند میلی‌ثانیه است. با این حال، در سیستم‌های حساس به latency یا زمانی که زنجیره CNAME طولانی باشد، می‌تواند قابل توجه شود. استفاده از CNAME Flattening این مشکل را برطرف می‌کند.

چگونه بررسی کنم که رکورد CNAME درست تنظیم شده است؟

می‌توانید از ابزارهای خط فرمان مانند dig (در Linux/macOS) یا nslookup (در Windows) استفاده کنید. دستور dig www.example.com CNAME اطلاعات رکورد CNAME را نمایش می‌دهد. همچنین ابزارهای آنلاین مانند DNS Checker، MXToolbox و Google Admin Toolbox برای بررسی انتشار جهانی DNS مفید هستند.

برای تنظیم DNS دامنه خود، از پشتیبانی برتینا کمک بگیرید

در این مقاله، همه چیز درباره رکورد CNAME را آموختید: از تعریف و کاربردها گرفته تا نحوه تنظیم و عیب‌یابی. اگر در پیکربندی DNS دامنه خود به کمک نیاز دارید یا می‌خواهید از خدمات حرفه‌ای برتینا استفاده کنید:

  • ✅ با هاست برتینا، تنظیمات DNS به صورت خودکار انجام می‌شود
  • ثبت دامنه با پنل مدیریت DNS پیشرفته
  • سرور مجازی با دسترسی کامل به تنظیمات DNS
  • ✅ پشتیبانی ۲۴ ساعته برای کمک در پیکربندی رکوردهای DNS

همین حالا با تیم فنی برتینا تماس بگیرید!
پشتیبانی ۲۴/۷ | مشاوره رایگان | تنظیم DNS رایگان

نظرات