در این مقاله به بررسی نحوه راه اندازی سرویس لینوکسی Bind که برای ما نقش سرویس Dns را دارد می پردازیم . در این مقاله می خواهیم بر روی یک سرور آلما لینوکس دامنه Nextdevops.local را راه اندازی کنیم . ابتدا با دستور زیر پکیج های مورد نظر را نصب می کنیم :
yum -y install bind bind-utils
سپس فایل کانفیگ آن را باز میکنیم :
vi /etc/named.conf
در بخش آدرس های آی پی اعلام کنیم که می تواند به تمام آی پی ها گوش کند . در این صورت به جای آدرس آی پی میتوانیم any بگذاریم .
سپس به سراغ ساخت zone می رویم . هر دامنه ای که تمایل داریم از این سرور به عنوان dns server استفاده کند یک Zone یا منظقه گفته می شود . در انتهای همین فایل وارد میکنیم :
zone "nextdevops.local" IN {
type master;
file "/var/named/nextdevops.local.db";
allow-update { none; };
};
ازین بخش جهت ریزالو (Resolve) کردن نام به آدرس آی پی استفاده می شود . یعنی شما نام دامنه را وارد میکنید و سرور به آی پی اعلام شده در کانفیگ در فایل /var/named/nextdevops.local.db اشاره خواهد کرد . به جهت اینکه این روال به صورت برعکس نیز رخ دهد می بایست ما reverse zone را نیز کانفیگ کنیم . یعنی آی پی را بزنیم و نام را برای ما برگرداند . در همین فایل می بایست کانفیگ زیر را وارد کنیم :
zone "1.168.192.in-addr.arpa" IN {
type master;
file "/var/named/192.168.1.db";
allow-update { none; };
};
در این بخش آی پی سرور dns را به صورت برعکس و صرفا سه اکتت اول را در خط اول وارد کنیم . در اینجا آی پی سرور ما 192.168.1.38 است که به صورت برعکس و 3 اکتت آخر می شود : 1.168.192
حال می بایست فایل هایی که در کانفیگ بالا به آن اشاره کردیم را بسازیم :
vi /var/named/nextdevops.local.db
کانفیگ مورد دلخواه ما به صورت زیر است :
@ IN SOA ns1.nextdevops.local. root.nextdevops.local. (
1001 ;Serial
3H ;Refresh
15M ;Retry
1W ;Expire
1D ;Minimum TTL
)
;Name Server Information
@ IN NS ns1.nextdevops.local.
;IP address of Name Server
ns1 IN A 192.168.1.38
;Mail exchanger
nextdevops.local. IN MX 10 mail.nextdevops.local.
;A - Record HostName To IP Address
www IN A 192.168.1.38
mail IN A 192.168.1.38
@ IN A 192.168.1.38
;CNAME record
ftp IN CNAME www.nextdevops.local.
در بخش بالا می بایست یک ns یا همان (nameserver) برای سرویس خود تعریف کنیم . (در جاهایی که nextdevops.local آمده میبایست با دامنه مد نظر خود جایگزین کنید) . برای اینکه دامنه با www بالا بیاد یا بدون آن یک A رکورد ایجاد کردیم . در صورتی که سرویس mail یا ftp نیز دارید می توانید رکورد آن را مطابق محیط خود تغییر دهید . در غیر این صورت نیازی به استفاده از آن نیست . برای reverse zone نیز مجدد باید فایل ذکر شده را بسازیم :
vi /var/named/192.168.1.db
در ان وارد میکنیم :
@ IN SOA ns1.nextdevops.local. root.nextdevops.local. (
1001 ;Serial
3H ;Refresh
15M ;Retry
1W ;Expire
1D ;Minimum TTL
)
;Name Server Information
@ IN NS ns1.nextdevops.local.
;Reverse lookup for Name Server
38 IN PTR ns1.nextdevops.local.
;PTR Record IP address to HostName
38 IN PTR www.nextdevops.local.
38 IN PTR mail.nextdevops.local.
دقت شود که عدد 38 اکتت آخر آدرس آی پی سرور Dns ما می باشد . سپس سرویس را ریست و enable میکنیم :
systemctl restart named
systemctl enable named
در صورتی که سرویس فایروال روشن است ، پورت 53 را باز میکنیم :
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload
اگر میخواهید که بر روی همان سرور لینوکسی ریزالو شدن دامنه خود را بررسی کنید ، نیاز است که این dns سرور را به عنوان سرویس DNS به لینوکس خود معرفی کنید . جهت انجام اینکار فایل /etc/resolv.conf را بازکنید و به صورت زیر بالای آی پی قبلی بنویسید :
nameserver 192.168.1.38
البته در صورتی که میخواهد که این تغییر دائمی باشد می بایست در کانفیگ کارت شبکه سرور خود dns را وارد کنید که در توزیع های redhat در مسیر زیر است :
/etc/sysconfig/network-scripts/ifcfg-eXX
حالا جهت بررسی صحت کارکرد سرویس از دستورات dig و nslookup می توانیم استفاده کنیم :
dig nextdevops.local
nslookup nextdevops.local
خروجی میبایست شبیه تصویر زیر باشد :