وقتی داری DNS دامنهتون رو تنظیم میکنید، دو تا رکورد پرکاربرد A و CNAME هستن. خیلی از کاربرا نمیدونن باید از کدوم استفاده کنن و همینم مشکلات زیادی درست میکنه. تو این مقاله فرق این دو رو کامل توضیح میدم.
A Record چیه؟
رکورد A سادهترین رکورد DNSه. یه دامنه رو به یه IP آدرس نسخه IPv4 وصل میکنه. مثلاً میگه saba.host بره به 185.226.140.140.
تقریباً هر سایتی حداقل یه A Record داره. بدون A Record، سایت شما آدرس مشخصی نداره و کار نمیکنه.
مثال A Record
Name: @
Type: A
Value: 185.226.140.140
TTL: 3600
علامت @ یعنی دامنه اصلی (root). اگه بجاش www بذارید، برای www.yourdomain.com میشه.
CNAME Record چیه؟
CNAME یا Canonical Name به جای IP، به یه دامنه دیگه اشاره میکنه. یعنی یه نام مستعار برای دامنهای دیگهست.
مثلاً اگه blog.saba.host یه CNAME به saba.host داشته باشه، هر کس blog.saba.host رو بزنه، در واقع به saba.host متصل میشه.
مثال CNAME
Name: blog
Type: CNAME
Value: saba.host
TTL: 3600
تفاوت اصلی
خلاصه اصلی: A Record به IP اشاره میکنه، CNAME به دامنه اشاره میکنه.
وقتی IP سرور تغییر کنه، A Record باید دستی تغییر کنه. ولی CNAME چون به دامنه اشاره میکنه، اگه دامنه مقصد A Record جدید بگیره، CNAME خودش کار میکنه.
کی از A Record استفاده کنم؟
دامنه اصلی (Root Domain)
مهمترین قانون: دامنه اصلی (مثل saba.host بدون هیچی جلوش) باید A Record باشه، نمیشه CNAME. این محدودیت پروتکل DNSه.
وقتی IP ثابت داری
اگه سرورت یه IP ثابت داره که تغییر نمیکنه، A Record ساده و مستقیمه.
سابدامینها که سرور مستقل دارن
اگه سابدامین مثل mail.saba.host روی یه سرور کاملاً مستقل داره، A Record بهتره.
کی از CNAME استفاده کنم؟
سابدامین که به دامنههای دیگه اشاره میکنه
مثلاً وقتی از Cloudflare استفاده میکنی، ازت میخوان یه CNAME به دامنه اونا بذاری. یا وقتی از سرویسهای SaaS استفاده میکنی.
وقتی مقصد ممکنه تغییر کنه
سرویسهای ابری معمولاً IPهای دینامیک دارن. CNAME باعث میشه بدون تغییر DNS، تغییرات پشت صحنه اعمال بشن.
سابدامینهای که به شبکه CDN اشاره میکنن
CDNها معمولاً چند تا IP دارن که ممکنه تغییر کنن. CNAME بهترین راهحله.
خدمات ایمیل و فایل استوریج
سرویسهای مثل Google Workspace یا AWS S3 معمولاً CNAME میخوان.
محدودیتهای CNAME
روی دامنه اصلی کار نمیکنه
saba.host نمیتونه CNAME داشته باشه. فقط سابدامینها.
با MX Record تداخل داره
اگه یه سابدامین MX داره، نمیتونه CNAME هم داشته باشه.
یه Lookup اضافه
CNAME یه lookup اضافه اضافه میکنه. مرورگر اول باید بره CNAME رو resolve کنه، بعد A Record دامنه مقصد رو. این چند میلیثانیه اضافه میکنه.
ANAME و ALIAS: راهحل CNAME روی دامنه اصلی
چون CNAME روی دامنه اصلی کار نمیکنه، بعضی سرویسهای DNS مثل Cloudflare و DNSimple یه راهحل به نام ANAME یا ALIAS دارن. اینها ظاهراً CNAME هستن ولی سرور DNS خودش تو پشت صحنه به A Record تبدیلشون میکنه.
اگه از این نوع DNSها استفاده میکنی، میتونی مثل CNAME عمل کنی حتی روی root domain.
مقایسه سرعت
A Record چون یه lookup میشه، معمولاً سریعتره. CNAME یه lookup اضافه داره.
ولی تفاوت واقعی خیلی کمه (چند میلیثانیه) و برای بیشتر سایتها اهمیتی نداره. اگه CDN استفاده میکنی، مزیت CDN از این چند میلیثانیه خیلی بیشتره.
مثالهای عملی
سایت روی هاست عادی
saba.host → A 185.226.140.140
www.saba.host → A 185.226.140.140 (یا CNAME saba.host)
سایت پشت Cloudflare
saba.host → A [IP کلودفلر]
www.saba.host → CNAME saba.host
سایت روی AWS S3
saba.host → A نمیشه (باید ALIAS باشه)
www.saba.host → CNAME bucket.s3-website.amazonaws.com
ایمیل با Google Workspace
saba.host → A [IP هاست]
mail.saba.host → CNAME ghs.google.com
خطاهای رایج
CNAME روی دامنه اصلی
خیلی رایج ولی اشتباه. کار نمیکنه!
CNAME به CNAME
یه CNAME که به یه CNAME دیگه اشاره کنه (chain). این کار میکنه ولی سرعت رو کم میکنه و توصیه نمیشه.
CNAME با رکوردهای دیگه
یه سابدامین که CNAME داره، نمیتونه MX یا TXT هم داشته باشه. اگه لازم داری، به جای CNAME از A Record استفاده کن.
راهنمای سریع تصمیم
این سوالا رو از خودت بپرس:
۱. دامنه اصلیه (بدون هیچی جلوش)؟ → A Record
۲. مقصد یه IP ثابته؟ → A Record
۳. مقصد یه سرویس خارجی با دامنه معلومه؟ → CNAME
۴. لازم داری MX یا TXT هم داشته باشه؟ → A Record
۵. مقصد ممکنه IPش تغییر کنه؟ → CNAME
جمعبندی
A Record و CNAME هر دو کاربرد خاص خودشون رو دارن. با فهم درست تفاوتها میتونی DNS رو حرفهای مدیریت کنی و از خطاهای رایج جلوگیری کنی.
اگه از سباهاست هاست میگیری، کنترل پنل DNS با رابط ساده هر دو نوع رکورد رو پشتیبانی میکنه. اگه سوالی داشتی، پشتیبانی حرفهای همیشه هست.