~3 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴
1. DNS چیست و چگونه کار میکند؟ (به زبان ساده)
DNS همان سیستمی است که نام دامنه مثل domain.com را به IP مثل 1.2.3.4 تبدیل میکند. بدون DNS، اینترنت عملاً قابل استفاده نبود.
سه بخش اصلی DNS:
- Parent Nameservers ۱۳ سرور اصلی در جهان که فقط میگویند: «Nameserverهای این دامنه چیست؟»
- Registrar جایی که دامنه را خریدی. اینجا مشخص میکنی دامنه از چه NSهایی استفاده کند.
- Nameserverهای خودت روی سرور DirectAdmin هستند و پاسخ نهایی IP را میدهند.
روند واقعی یک درخواست DNS:
- کاربر → DNS ISP
- ISP → Parent NS (Nameserverهای دامنه چیست؟)
- Parent → ns1.domain.com و ns2.domain.com
- ISP → پرسش از ns1/ns2: «IP سایت چیه؟»
- Nameserver شما → IP را برمیگرداند
- 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
نوشته و پژوهش شده توسط دکتر شاهین صیامی