رکورد CNAME چیست و چطور کار میکند؟

رکوردهای CNAME ابزاری مهم در دنیای برندسازی کسب و کار و مدیریت وب سایت هستند که چندین هدف را دنبال می کنند. به عنوان مثال به زیر دامنه های “store.example.com” یا “blog.example.com” را مشاهده کنید – اینها بخش های متمایز یک وب سایت هستند که انواع خاصی از محتوا را برای بازدیدکنندگان ارائه می دهند. ایجاد زیر دامنه هایی مانند “shop” یا “blog” با استفاده از رکوردهای CNAME امکان پذیر است. یکی دیگر از کاربردهای رکوردهای CNAME فعال کردن استفاده از شبکه های تحویل محتوا (CDN) است که باعث بهبود زمان بارگذاری صفحه و تجربه کاربری می شود. در این مقاله ما به نحوه عملکرد رکوردهای CNAME بررسی موارد استفاده از آنها و یادگیری بهترین شیوه ها برای پیاده سازی رکوردهای CNAME خواهیم پرداخت.
رکورد های CNAME چه هستند؟
CNAME مخفف “Canonical Name” نوعی رکورد در سیستم نام دامنه (DNS) است. رکورد CNAME در دو حالت استفاده میشود:
- ایجاد یک ساب دامنه که به یک سرور دیگر متصل شود.
- انتقال بازدیدکننده از دامنه ای به دامنهی دیگر.
برای ایجاد زیر دامنهای مثل “shop.example.com” در یک فروشگاه آنلاین میتوانید از رکورد CNAME استفاده کنید. این رکورد به شما اجازه میدهد تا زیر دامنه را به دامنه اصلی (مثلاً example.com) یا به یک منبع خارجی مثل پلتفرم Shopify (به آدرسی مانند shops.myshopify.com) متصل کنید. به عبارت سادهتر، با استفاده از رکورد CNAME شما میتوانید یک نام مستعار برای دامنه خود ایجاد کرده و ترافیک را به هر کجا که میخواهید هدایت کنید.
در حالت دوم از رکورد CNAME به عنوان یک اشاره گر یا نام مستعار برای ارتباط بین دو نام دامنه استفاده میشود. این امکان را فراهم میکند که یک نام دامنه را با آدرس IP یک نام دامنه دیگر مرتبط کنید. به بیان سادهتر رکورد CNAME مانند یک نام مستعار یا میانبر برای یک دامنه عمل میکند.
متعلقات رکورد CNAME چه هستند؟
یک جدول از مثال رکورد CNAME ایجاد کرده ایم
| TTL | Value | Record Type | Hostname |
| 1800 seconds | @ (example.com) | CNAME | www.example.com |
| 3600 seconds | blogalias.com | CNAME | blog.example.com |
| 3600 seconds | domainverify.googlehosted.com | CNAME | mail.example.com |
اجازه بدهید هر کدام از بخش های بالا را شرح دهیم
۱. نام میزبان (Hostname):
نام میزبان یک شناسه یا برچسب منحصر به فرد است که برای شناسایی و تمایز دستگاهها در یک شبکه استفاده میشود. در سامانه نام دامنه (DNS)، نام میزبان عموماً با یک نام دامنه مرتبط است. به عنوان مثال، در نام دامنه “www.example.com”، “www” یک نام میزبان است که سرور یا سرویس خاصی را در دامنه “example.com” نشان میدهد. نام میزبان به مسیریابی درخواستهای شبکه به دستگاه یا سرور مناسب کمک میکند. علاوه بر وبسایتها از آن میتوان برای دسترسی به منابعی مانند سرورهای ایمیل، سرورهای FTP یا هر دستگاه دیگری که به شبکه متصل است استفاده کرد.
۲. نوع رکورد (Record Type):
نوع رکورد برای رکوردهای CNAME همیشه روی “CNAME” تنظیم میشود تا حلکنندههای DNS یا همان RESOVLER بتوانند آن را به درستی شناسایی کنند. این امر به حلکننده (RESOVLER ) اجازه میدهد تا alias را دنبال کرده و نام اصلی را ترجمه کند و در نهایت آدرس IP یا نوع سرور مربوطه را بازیابی نماید.
۳. مقدار (Value):
این بخش مقصد یا هدفی را نشان میدهد که حلکنندههای DNS باید پرس و جوها (queries) برای نام میزبان مشخص شده را به آنجا هدایت کنند. به عنوان مثال اگر نیاز به تأیید مالکیت نام دامنه خود در گوگل داشته باشید، باید یک رکورد CNAME با مقدار منحصر به فردی که آنها ارائه میدهند، مانند “domainverify.googlehosted.com”، اضافه کنید.
۴. زمان عمر رکورد (TTL):
مقدار TTL برای یک رکورد CNAME مدت زمانی را تعیین میکند که DNS Resolver و سرورهای کش باید رکورد را قبل از بررسی برای بهروزرسانیها، در حافظه نهان (cache) خود ذخیره کنند. این مقدار بر حسب ثانیه مشخص میشود. به عنوان مثال یک TTL برابر با 3600 نشان دهنده یک ساعت زمان ذخیره در حافظه نهان است.
موارد استفاده از رکوردهای CNAME:
رکوردهای CNAME انعطافپذیری بالایی را در مدیریت وبسایتها ارائه میدهند. با استفاده از این رکوردها میتوانید ترافیک را هدایت کنید، زیر دامنهها را راهاندازی کنید یا از سرویسهای ارائهدهندگان شخص ثالث بهرهمند شوید. صرف نظر از نوع یا اندازه کسب و کارتان، رکوردهای CNAME به شما امکان میدهند تا حضور آنلاین خود را شخصیسازی و بهینه کنید. در ادامه، به برخی از کاربردهای کلیدی رکوردهای CNAME میپردازیم:
ریدایرکت دامنه:
رکوردهای CNAME میتوانند ترافیک را از یک دامنه به دامنه دیگر هدایت کنند. این قابلیت جابهجایی بین وبسایتها را آسان میکند. زمانی که یک رکورد CNAME برای یک دامنه ایجاد میشود، به عنوان یک نام مستعار عمل میکند. این کار به دامنه منبع اجازه میدهد تا به همان آدرس IP دامنه مقصد اشاره کند.
به عنوان مثال ،پوشاک جان (John’s Apparel)، یک خرده فروش آنلاین لباس است که تصمیم گرفت وبسایت خود را با نام دامنه جدید “new-johnsapparel.com” تغییر برند دهد. برای اطمینان از انتقال بدون مشکل این شرکت یک رکورد CNAME برای دامنه قدیمی “old-johnsapparel.com” راهاندازی میکند تا کاربران را به وبسایت جدید هدایت کند. هنگامی که کاربران “old-johnsapparel.com” را در مرورگر وب خود تایپ میکنند، رکورد CNAME آنها را به وبسایت جدید هدایت میکند. با این کار کاربران نیازی به یادگیری یا به خاطر سپردن URL جدید ندارند و در نتیجه، هنگام تغییر نام دامنه احتمال از دست دادن مشتریان کاهش مییابد.
| Value | Hostname | Type |
| new-johnapparel.com |
old-johnapparel.com | CNAME |
راهاندازی زیر دامنه با رکوردهای CNAME:
رکوردهای CNAME اغلب برای ایجاد ساب دامنه هایی استفاده میشوند که به سرورها یا سرویسهای جداگانه هدایت میگردند. این امر به سازمانها کمک میکند تا بخشهای خاصی از وبسایت خود را به صورت مستقل سازماندهی و مدیریت کنند.
به عنوان مثال شرکت الف (ABC Corporation) یک شرکت توسعه نرمافزار است که دارای خدمات و بخشهای متعددی است. این شرکت میخواهد خدمات مختلف خود را زیر ساب دامنه های خاصی سازماندهی و مدیریت کند. به عنوان مثال یک زیر دامنه به نام “support.abc-corp.com” باید برای درگاه پشتیبانی مشتریان به “support-target-server.com” هدایت شود. این کار به آنها امکان میدهد تا در عین حال که حضور آنلاین مطلوبی (User Experience) را حفظ میکنند بخشهای مختلف کسب و کار خود را به صورت مستقل مدیریت کنند.
| Value | Hostname | Type |
| support-target-server.com |
support.abc-corp.com | CNAME |
استفاده از رکوردهای CNAME برای شبکههای تحویل محتوا (CDN):
رکوردهای CNAME میتوانند برای ادغام شبکههای تحویل محتوا (CDN) استفاده شوند. CDNها محتوای وبسایت را در چندین سرور ذخیره و توزیع میکنند که منجر به بهبود عملکرد وبسایت و دسترسی جهانی میشود.
به عنوان مثال فروشگاه آنلاین کفش و موارد دیگر (Shoes & More) انواع مختلفی از محصولات کفش و لوازم جانبی را به مشتریان در سراسر جهان میفروشد. این فروشگاه با رشد قابل توجهی مواجه شده است که منجر به ترافیک بالای وبسایت و نیاز به بهینهسازی عملکرد و سرعت بارگذاری وبسایت شده است. این شرکت تصمیم گرفت برای بهبود عملکرد وبسایت خود یک CDN ادغام کند. برای دستیابی به این هدف آنها برای یک سرویس CDN ثبت نام کردند و توصیه شد که یک رکورد CNAME راهاندازی کنند.
| Value | Hostname | Type |
| cdn-provider-example.com |
shoesandmore.com | CNAME |
خدمات ایمیل
رکوردهای CNAME به صاحبان دامنه اجازه میدهند تا خدمات ایمیل را از ارائهدهندگان شخص ثالث پیکربندی کنند. به عنوان مثال با ایجاد یک رکورد CNAME میتوانید زیر دامنه ایمیل دامنه خود (مانند “mail.example.com”) را با یک ارائهدهنده خدمات ایمیل اختصاصی مانند گوگل یا مایکروسافت مرتبط کنید.
به عنوان مثال برخی از شرکت ها ایرانی از سرویس ایمیل جداگانه برای شرکت های خود استفاده میکنند.
| Value | Hostname | Type |
| mail.provider.com | mail.handmadecrafts-treasures.com | CNAME |
ادغام خدمات شخص ثالث
با استفاده از رکوردهای CNAME، سازمانها میتوانند به راحتی خدمات شخص ثالث مانند پلتفرمهای تجارت الکترونیک، سیستمهای پشتیبانی مشتری یا ابزارهای تحلیلی را ادغام کنند و تجربه کاربری بینظیری را تضمین نمایند. به عنوان مثال اگر نیاز به استفاده از Google Analytics برای وبسایت خود دارید، باید یک رکورد CNAME را به رکوردهای DNS خود اضافه کنید تا نام دامنه خود را تأیید کنید.
به عنوان مثال فروشگاه آنلاین XYZ Goods یک کسب و کار تجارت الکترونیک است که طیف گستردهای از محصولات را از طریق وبسایت خود میفروشد. آنها میخواهند Google Analytics را به سایت خود اضافه کنند تا بینش ارزشمندی در مورد ترافیک وبسایت و رفتار مشتریان خود کسب کنند. برای دستیابی به این هدف آنها نیاز دارند تا یک رکورد CNAME را به رکوردهای DNS خود اضافه کنند تا نام دامنه خود را برای Google Analytics تأیید کنند.
| Value | Hostname | Type |
| analytics.google.com |
www.xyz-goods-onlinestore.com | CNAME |
چطور DNS رکورد های CNAME را مدیریت و Resovle میکند؟

فرآیند مدیریت و تفکیک رکوردهای CNAME توسط DNS به شرح زیر است:
۱. ارسال درخواست توسط کاربر:
این فرآیند زمانی آغاز میشود که کاربر درخواستی را ارسال میکند، مانند وارد کردن URL یک وبسایت در مرورگر وب خود.
۲. حلکننده DNS (DNS Resolver):
دستگاه کاربر، که معمولاً توسط ارائهدهنده خدمات اینترنتی (ISP) یا یک ارائهدهنده عمومی DNS اداره میشود، به عنوان حلکننده DNS عمل میکند. حلکننده DNS مسئول رسیدگی به پرس و جوهای DNS و ترجمه نام دامنهها به آدرسهای IP است.
۳. سرورهای ریشه DNS (Root DNS Servers):
اگر حلکننده DNS اطلاعات مورد نظر را در حافظه نهان (cache) خود نداشته باشد، با ارسال درخواست به سرورهای ریشه DNS، یک پرس و جوی DNS را آغاز میکند. سرورهای ریشه DNS نقطه شروع فرآیند تفکیک نام دامنه هستند و مسئول ارائه اطلاعات در مورد سرورهای دامنه سطح بالا (TLD) میباشند.
۴. سرور DNS دامنه سطح بالا (TLD DNS Server):
سرورهای ریشه DNS با ارائه آدرس IP سرور TLD DNS که مسئول TLD خاص دامنه درخواستی است، به پرس و جوی حلکننده پاسخ میدهند. به عنوان مثال، اگر دامنه درخواستی “example.com” باشد، سرور TLD DNS برای TLD “.com” شناسایی میشود.
۵. سرور معتبر DNS (Authoritative DNS Server):
حلکننده DNS با سرور TLD DNS تماس میگیرد تا آدرس IP سرور معتبر DNS مسئول دامنه “example.com” را به دست آورد. سرور معتبر DNS ، جایی است که رکوردهای DNS خاص، از جمله رکوردهای CNAME، برای دامنه نگهداری میشوند. پس از آن، حلکننده DNS اطلاعات به دست آمده را در حافظه نهان ذخیره میکند، که به پاسخ سریعتر برای پرس و جوهای بعدی و کاهش بار روی زیرساخت DNS کمک میکند.
به طور خلاصه، DNS با استفاده از حلکنندهها برای پرس و جو بهصورت سیستمی از سرورهای معتبر DNS، رکوردهای CNAME را مدیریت و تفکیک میکند و هر رکورد CNAME برخورد شده را تا رسیدن به مقصد نهایی دنبال میکند. حافظهگذاری باعث بهبود کارایی و کاهش نیاز به پرس و جوهای مکرر میشود.
بهترین روشها برای کار با رکوردهای CNAME
ایجاد رکوردهای CNAME نیاز به تفکر دقیق دارد تا اطمینان از یک تجربه کاربری بدون وقفه حاصل شود و از مشکلات احتمالی – مانند پیکربندی نادرست رکوردهای CNAME – که منجر به توقف موقت خدمات آنلاین میشود، جلوگیری شود. با رعایت این پنج روش برتر، میتوانید رکوردهای CNAME خود را به طور مؤثر مدیریت کرده و تنظیمات نام دامنه خود را بهینه کنید.
۱. هدف رکورد CNAME خود را مشخص کنید:
هدف از ایجاد رکورد CNAME را به طور واضح تعریف کنید؛ آیا برای هدایت مجدد دامنه، راهاندازی زیر دامنه یا ادغام با خدمات شخص ثالث است؟
۲. سازگاری رکورد را بررسی کنید:
پس از اینکه هدف از ایجاد رکورد CNAME را فهمیدید، اطمینان حاصل کنید که رکوردهای CNAME که ایجاد میکنید با مورد استفاده خاص شما و خدماتی که قصد ادغام آنها را دارید، سازگار باشند. به عنوان مثال، اگر یک CDN را به وبسایت خود ادغام میکنید، باید با ارائهدهنده CDN تماس بگیرید تا مقدار CNAME صحیح مورد نیاز برای اضافه کردن به رکورد CNAME خود را به دست آورید.
۳. مدیریت TTL (زمان عمر):
TTL (زمان عمر) مقداری است که طول عمر دادهها را در یک شبکه قبل از حذف شدن نشان میدهد. برای مدیریت موثر TTL، یک مقدار TTL مناسب برای رکورد CNAME تنظیم کنید. در این کار، به میزان بروزرسانی و میزان پاسخگویی مورد نظر توجه داشته باشید. مقادیر TTL پایینتر منجر به بهروزرسانیهای سریعتر میشود اما ممکن است بار پرس و جوهای DNS را افزایش دهد.
مثال: هنگام راهاندازی یک CDN، باید مقدار صحیحی را که توسط ارائهدهنده CDN شما ارائه میشود، وارد کنید. این مقدار تعیین میکند که حلکنندههای DNS تا چه مدت باید رکوردهای DNS را در حافظه نهان نگه دارند. بهطور معمول، مقدار TTL توصیهشده برای این کار حدود 3600 ثانیه (1 ساعت) است که به متعادل کردن کارایی حافظه نهان و پاسخگویی کمک میکند.
۴. از زنجیرههای CNAME اجتناب کنید:
به حداقل رساندن استفاده از چندین رکورد CNAME در یک زنجیره برای جلوگیری از تأخیر غیرضروری و نقاط بالقوهی خرابی توصیه میشود. هر جستجوی CNAME اضافی باعث ایجاد تأخیر در فرآیند تفکیک نام دامنه و افزایش احتمال برخورد با مشکلات میشود.
مثال: در اینجا یک زنجیره CNAME با سه حلقه وجود دارد. این زنجیره با زیر دامنه “sales.example.com” شروع میشود که به “marketing.example.com” هدایت میشود. زیر دامنه “marketing.example.com” به نوبه خود به “promotions.example.com” هدایت میشود و در نهایت، زیر دامنه “promotions.example.com” به “offers.example.com” هدایت میشود. استفاده از چنین زنجیرهای باعث میشود که هر بار کاربر آدرس «sales.example.com» را وارد کند، فرآیند تفکیک نام دامنه سه بار تکرار شود که میتواند سرعت بارگذاری وبسایت را تحت تأثیر قرار دهد.
| Value | Hostname | Type |
| marketing.example.com | sales.example.com | CNAME |
| promotions.example.com | marketing.example.com | CNAME |
| offers.example.com | promotions.example.com | CNAME |
۵. آزمایش رکورد:
برای اطمینان از اینکه رکورد CNAME شما به درستی کار میکند، پیکربندی آن را آزمایش کنید و تأیید کنید که طبق انتظار کار میکند. میتوانید این کار را با تأیید اینکه رکورد بهدرستی تفکیک شده و ترافیک را به مقصد مورد نظر هدایت میکند، انجام دهید. به عنوان مثال، پس از راهاندازی یک رکورد CNAME، جستجوهای DNS را انجام دهید یا از ابزارهای آنلاین DNS برای تأیید دقت رکورد استفاده کنید.
جمع بندی
رکوردهای CNAME برای ارائه خدمات آنلاین بسیار مهم هستند و معمولاً برای هدایت مجدد زیر دامنه، ادغام CDN، خدمات ایمیل و تجزیه و تحلیل استفاده میشوند. با این حال، استفاده از رکوردهای CNAME در دامنه اصلی با چالشهایی همراه است. برای غلبه بر این مشکل، میتوان از CNAME flattening استفاده کرد که رکوردهای CNAME را برای سازگاری به رکوردهای A تبدیل میکند.
در Gcore، ما CNAME flattening را به عنوان یک ویژگی رایگان در سرویس میزبانی DNS خود ارائه میدهیم که به شما امکان میدهد رکوردهای DNS را به طور کارآمد مدیریت کنید و عملیات بدون مشکل را برای کاربران تضمین کنید. خواه شما تازه وارد دنیای DNS باشید یا یک مدیر وب باتجربه، میزبانی DNS ما مدیریت رکوردهای CNAME و سایر رکوردهای DNS را آسان و بدون دردسر میسازد. با متخصصان ما تماس بگیرید و ما خوشحال خواهیم شد که به شما در شروع کمک کنیم.




