DNS و Nameserverها در DirectAdmin – راهنمای کامل، کاربردی و حرفه‌ای

DNS ستون فقرات اینترنت است و وظیفه دارد نام دامنه را به IP تبدیل کند. در DirectAdmin می‌توان Nameserverهای اختصاصی ساخت، DNS را مدیریت کرد، DNS Clustering راه‌اندازی کرد و حتی از DNS خارجی استفاده نمود. این مقاله یک راهنمای جامع برای درک DNS، ساخت ns1/ns2، تنظیم Glue Record، رفع خطاها و مدیریت حرفه‌ای DNS در DirectAdmin است.

Nameservers in DirectAdmin

~3 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴

1. DNS چیست و چگونه کار می‌کند؟ (به زبان ساده)


DNS همان سیستمی است که نام دامنه مثل domain.com را به IP مثل 1.2.3.4 تبدیل می‌کند. بدون DNS، اینترنت عملاً قابل استفاده نبود.

سه بخش اصلی DNS:

  1. Parent Nameservers ۱۳ سرور اصلی در جهان که فقط می‌گویند: «Nameserverهای این دامنه چیست؟»
  2. Registrar جایی که دامنه را خریدی. اینجا مشخص می‌کنی دامنه از چه NSهایی استفاده کند.
  3. Nameserverهای خودت روی سرور DirectAdmin هستند و پاسخ نهایی IP را می‌دهند.

روند واقعی یک درخواست DNS:

  1. کاربر → DNS ISP
  2. ISP → Parent NS (Nameserverهای دامنه چیست؟)
  3. Parent → ns1.domain.com و ns2.domain.com
  4. ISP → پرسش از ns1/ns2: «IP سایت چیه؟»
  5. Nameserver شما → IP را برمی‌گرداند
  6. ISP پاسخ را کش می‌کند (TTL معمولاً ۴ ساعت)
---

2. ساخت Nameserver اختصاصی (ns1/ns2.domain.com)


مرحله ۱: ساخت رکورد A در DirectAdmin

در مسیر:


User Level → DNS Management → domain.com

دو رکورد A اضافه کنید:


ns1    A    1.2.3.4
ns2    A    5.6.7.8

اگر فقط یک IP دارید، هر دو را روی همان IP بگذارید.

---

مرحله ۲: ثبت Glue Record در Registrar

در بخش Hostnames / Glue Records:


ns1.domain.com → 1.2.3.4
ns2.domain.com → 5.6.7.8
---

مرحله ۳: تنظیم Nameserverهای دامنه

در Registrar، NS دامنه را به:


ns1.domain.com
ns2.domain.com
---

مرحله ۴: صبر برای Propagation

۴ تا ۴۸ ساعت زمان لازم است.

وضعیت را اینجا چک کنید:


https://intodns.com
---

3. اضافه کردن Nameserver سوم (ns3)


DirectAdmin فقط دو NS را نمایش می‌دهد، اما می‌توان NS سوم را دستی اضافه کرد.

مرحله ۱: سفارشی‌سازی قالب dns_ns.conf


mkdir -p /usr/local/directadmin/data/templates/custom
cd /usr/local/directadmin/data/templates/custom
cp ../dns_ns.conf .

در انتهای فایل اضافه کنید:


ns3.host.com.=|DOMAIN|.
---

مرحله ۲: بازنویسی تمام Zoneها


echo "action=rewrite&value=named" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d400
---

مرحله ۳: حذف خط اضافی از فایل اصلی

برای جلوگیری از تکرار در آینده.

---

4. استفاده از DNS خارجی (بدون اجرای named روی سرور)


اگر نمی‌خواهید سرویس DNS روی سرور DirectAdmin اجرا شود:

مرحله ۱: خاموش کردن named


systemctl stop named
systemctl disable named

مرحله ۲: ساخت سرویس Placebo

برای فریب DirectAdmin که فکر کند named فعال است:


nano /etc/systemd/system/named.service

محتوا:


[Unit]
Description=Named Placebo
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/bin/echo -n ''

سپس:


systemctl daemon-reload

مرحله ۳: خاموش کردن در services.status


echo "named=OFF" >> /usr/local/directadmin/data/admin/services.status
---

5. DNS Clustering (Multi-Server Setup)


برای داشتن DNS افزونه‌پذیر و Redundant:

مرحله ۱: دو سرور DirectAdmin داشته باشید

سرور A و سرور B

مرحله ۲: تنظیم MultiServer Setup

در سرور A:


Admin Level → MultiServer Setup

IP سرور B را اضافه کنید (Zone Transfer = ON)

در سرور B نیز همین کار را انجام دهید.

---

مرحله ۳: انتقال همه Zoneها


echo "action=rewrite&value=named" >> /usr/local/directadmin/data/task.queue
---

نکات مهم:

  • Domain Check = ON → فقط بررسی تکراری نبودن دامنه
  • Zone Transfer = ON → انتقال کامل DNS
  • Domain Check = OFF → انتقال بدون بررسی
---

6. نکات نهایی و عیب‌یابی رایج


  • Domain already exists → دامنه در named.conf یا سرورهای Cluster وجود دارد
  • Glue Record فراموش شده → ns1/ns2 resolve نمی‌شوند
  • Propagation → همیشه ۴ تا ۴۸ ساعت صبر کنید
  • مخفی کردن نسخه named:

options { version "secret"; }

سپس:


systemctl restart named

نوشته و پژوهش شده توسط دکتر شاهین صیامی