- آیا میخواهید یک resolver محلی و امن روی RHEL 9/ Rocky 9/ Alma 9 راهاندازی کنید؟
- پیشنیازها و نصب اولیه
- بررسی فایلهای پایه و اعتبارسنجی کانفیگ
- کانفیگ پیشنهادی برای یک caching resolver (پایه)
- تولید کلید RNDC و مدیریت از راه دور
- فایروال و SELinux
- امنیت بیشتر: محدودسازی، مانیتورینگ و جلوگیری از سوءاستفاده
- مانیتورینگ، لاگینگ و عیبیابی
- سناریوهای پیشرفته: views، split-horizon و سرورهای توزیعشده
- نکات عملی برای کاربردهای مختلف
- نمونه کانفیگ کامل خلاصه (مثال سریع)
- نکات پایانی و بهترین روشها
- چرا این سرویس را در زیرساخت ابری شرکت ارائهدهنده پیاده کنید؟
- سؤالات متداول
آیا میخواهید یک resolver محلی و امن روی RHEL 9/ Rocky 9/ Alma 9 راهاندازی کنید؟
در این راهنما قدمبهقدم پیادهسازی یک resolver (کَشکنندهی محلی) مبتنی بر BIND روی توزیعهای مبتنی بر RHEL 9 مانند Rocky Linux 9 و Alma Linux 9 را بررسی میکنیم. هدف ارائه یک resolver امن، قابل مانیتورینگ و بهینه برای استفاده در شبکههای داخلی، سرورهای ابری و خوشههای کاری است — مناسب برای مدیران سایت، DevOps، تریدرها، گیمرها و تیمهای AI که نیاز به کاهش latency و افزایش پایداری رزولوشن DNS دارند.
پیشنیازها و نصب اولیه
پیشنیازها
- سرور RHEL 9/Rocky Linux 9/Alma Linux 9 با دسترسی روت یا sudo.
- دسترسی به اینترنت برای آپدیت و دانلود root hints/forwarders.
- پکیجهای bind و bind-utils.
نصب اولیه
برای بهروزرسانی و نصب BIND از دستورات زیر استفاده کنید:
sudo dnf update -y
sudo dnf install -y bind bind-utils
sudo systemctl enable --now named
sudo systemctl status namedبررسی فایلهای پایه و اعتبارسنجی کانفیگ
فایلها و مسیرهای مهم:
- /etc/named.conf — کانفیگ اصلی
- /var/named — دایرکتوری پیشفرض zoneها
- /etc/rndc.key (بعد از rndc-confgen -a)
- /var/named/data — لاگها و cache dump
برای بررسی سریع کانفیگ از ابزارهای زیر استفاده کنید:
sudo named-checkconf
sudo named-checkzone example.com /var/named/example.com.zoneکانفیگ پیشنهادی برای یک caching resolver (پایه)
در /etc/named.conf بخش options را به شکل زیر ویرایش کنید. این مثال عملیاتی برای یک resolver محلی با محدودسازی پرسوجوها و forwarders است:
options {
directory "/var/named";
listen-on port 53 { 127.0.0.1; 10.10.10.5; };
listen-on-v6 { none; };
allow-query { localhost; localnets; 10.10.10.0/24; };
recursion yes;
forwarders { 1.1.1.1; 8.8.8.8; };
dnssec-validation auto;
managed-keys-directory "/var/named/dynamic";
minimal-responses yes;
max-cache-ttl 86400;
max-ncache-ttl 3600;
rate-limit {
responses-per-second 10;
window 5;
};
auth-nxdomain no;
};نکات عملی:
- forwarders را میتوان به resolverهای Anycast شرکت یا به Cloudflare/Google گذاشت؛ برای کاهش latency توصیه میشود از نزدیکترین لوکیشن استفاده کنید.
- minimal-responses و TTLهای معقول باعث کاهش ترافیک و بهبود کارایی میشوند.
تولید کلید RNDC و مدیریت از راه دور
برای مدیریت امن BIND از RNDC استفاده کنید. ابتدا کلید را تولید و سپس سرویس را ریاستارت کنید:
sudo rndc-confgen -a
sudo systemctl restart named
sudo rndc statusفایروال و SELinux
باز کردن پورتها در firewalld
sudo firewall-cmd --permanent --add-port=53/udp
sudo firewall-cmd --permanent --add-port=53/tcp
sudo firewall-cmd --reloadتنظیمات SELinux
در صورت استفاده از SELinux از دستورات زیر برای تنظیم context و مجوزها بهره ببرید:
sudo restorecon -Rv /var/named
sudo setsebool -P named_write_master_zones on
sudo semanage port -a -t dns_port_t -p tcp 53
sudo semanage port -a -t dns_port_t -p udp 53امنیت بیشتر: محدودسازی، مانیتورینگ و جلوگیری از سوءاستفاده
منع تکثیر (zone transfer) غیرمجاز
برای جلوگیری از AXFR غیرمجاز در zoneهای authoritative از کلیدهای TSIG استفاده کنید. مثال زیر نشاندهنده تعریف کلید و محدودسازی allow-transfer است:
key "xfr-key" {
algorithm hmac-sha256;
secret "BASE64-SECRET";
};
zone "example.com" IN {
type master;
file "example.com.zone";
allow-transfer { key "xfr-key"; };
};راهکارهای مقابله با DDoS و rate-limit
- از rate-limit در options استفاده کنید.
- استفاده از RPZ (Response Policy Zone) برای بلاک کردن دامنههای مخرب.
- در سطح شبکه از راهکارهای Anti-DDoS و Anycast/BGP بهره ببرید تا ترافیک مخرب توزیع شود.
DNSSEC و Validation
با فعال کردن dnssec-validation auto، resolver امضای DNSSEC را بررسی میکند و پاسخهای مخرب رد میشوند. مطمئن شوید managed-keys موجود است:
sudo ls /var/named/dynamicمانیتورینگ، لاگینگ و عیبیابی
لاگها و rotate
BIND بهصورت پیشفرض لاگ را به /var/named/data/ میریزد. برای مدیریت فایلها از logrotate استفاده کنید یا لاگها را به syslog/journal هدایت نمایید.
دستورات کاربردی
dig @10.10.10.5 example.com +stats
dig @10.10.10.5 google.com +short
sudo rndc flush
sudo named-checkconf
sudo named-checkzone example.com /var/named/example.com.zone
sudo systemctl status named
sudo journalctl -u named -fسناریوهای پیشرفته: views، split-horizon و سرورهای توزیعشده
views برای split-horizon
برای پاسخدهی متفاوت به کلاینتهای داخلی و خارجی از views استفاده کنید. مثال:
acl "internal" { 10.10.10.0/24; localhost; };
view "internal" {
match-clients { "internal"; };
recursion yes;
zone "example.com" {
type master;
file "zones/db.example.internal";
};
};
view "external" {
match-clients { any; };
recursion no;
zone "example.com" {
type master;
file "zones/db.example.public";
};
};توزیع جغرافیایی و Anycast
برای سرویسهایی با نیاز latency پایین (تریدرها، گیمرها)، توزیع resolverها در لوکیشنهای مختلف و استفاده از Anycast/BGP بهترین نتیجه را میدهد. شرکت ارائهدهنده این راهکار دارای بیش از 85 لوکیشن جهانی و زیرساخت Anycast و CDN برای راهاندازی resolverهای توزیعشده، محافظت DDoS و اتصال BGP است.
نکات عملی برای کاربردهای مختلف
برای مدیران وبسایت و وردپرس
- استفاده از caching resolver داخلی روی سرورهای cloud برای کاهش DNS lookups.
- تنظیم minimal-responses و معقولسازی TTLها برای بهبود سرعت بارگذاری صفحات.
- ترکیب CDN و DNS برای کاهش latency و افزایش availability توصیه میشود.
برای DevOps و کلاسترهای AI / Render
- اجرای resolver محلی روی هر نود یا یک resolver مرکزی با ظرفیت بالا برای دسترسی سریعتر به registryها و منابع.
- استفاده از caching DNS در jobهای CI/CD و دانلود پکیجها.
- در محیطهای بزرگ از split-horizon برای جداسازی سرویسهای داخلی و خارجی استفاده کنید.
برای تریدرها و گیمرها
- قرار دادن resolver در نزدیکترین لوکیشن جغرافیایی از بین 85 لوکیشن برای کاهش پینگ توصیه میشود.
- استفاده از resolverهای Anycast و سرورهای Anti-DDoS برای افزایش ثبات و محافظت در برابر حملات.
نمونه کانفیگ کامل خلاصه (مثال سریع)
تکه مهم از /etc/named.conf:
options {
directory "/var/named";
listen-on port 53 { 127.0.0.1; 10.10.10.5; };
allow-query { localhost; localnets; 10.10.10.0/24; };
recursion yes;
forwarders { 1.1.1.1; 8.8.8.8; };
dnssec-validation auto;
minimal-responses yes;
rate-limit { responses-per-second 10; window 5; };
};نکات پایانی و بهترین روشها
- همیشه قبل از ریاستارت named-checkconf و named-checkzone را اجرا کنید.
- دسترسی را محدود به subnets مشخص کنید؛ از باز گذاشتن resolver به همه خودداری کنید.
- از کلیدهای TSIG برای zone transfers و
rndc-confgen -aبرای مدیریت امن استفاده کنید. - لاگها را مانیتور کنید و آستانههای alert برای افزایش ترافیک یا خطاها تعریف نمایید.
- در صورت سرویسدهی به عموم از زیرساخت Anti-DDoS و توزیع جغرافیایی بهره ببرید.
چرا این سرویس را در زیرساخت ابری شرکت ارائهدهنده پیاده کنید؟
مزایا:
- استقرار resolverها در لوکیشنهای جغرافیایی مختلف برای کاهش پینگ و پاسخدهی سریع.
- حفاظت پیشرفته با Anti-DDoS و فایروالهای شبکهای.
- یکپارچگی با CDN و شبکههای توزیعشده برای افزایش availability و کاهش latency.
- پلنهای مدیریتشده (Managed DNS) و امکان میزبانی GitLab، دیتابیس و زیرساختهای AI.









