مرحله اول: نصب
برای این منظور به مسیر زیر میرویم و BIND را کامپایل و نصب می کنیم.
/usr/ports/dns/bind99 make install clean
بعد از اتمام نصب BIND این مرحله به پایان می رسد و ما به مرحله بعدی که اصلی ترین مرحله می باشد می رویم.
مرحله دوم: پیکربندی
اولین کاری که برای پیکربندی سرور DNS خودمان باید انجام بدهیم اضافه کردن گزینه WITHOUT_BIND=YES به فایل src.conf است. برای این منظور به ترتیب دستورات زیر را اجرا می کنیم.
echo 'WITHOUT_BIND="YES"' >> /etc/src.conf
حالا باید فایل named.conf را برای تنظیم forwarder و zone و … ویرایش کنم. برای این منظور ابتدا فایل را با استفاده از یک ویرایشگر باز می کنیم.
vi /var/named/etc/namedb/named.conf
و سپس در حدود خط ۲۱ عبارت listen-on را از حالت توضیحات خارج می کنیم. با این کار به DNS می گوییم که هم به درخواست های داخلی و هم به در خواست های خارجی پاسخ دهد.
در زیر یک نمونه از این حالت آورده شده است:
// listen-on { 127,0,0,1 };
مجدد در همان فایل به حدود خط ۴۳ تا ۴۷ میرویم و بخش forwarders را از حالت توضیح خارج می کنیم.توجه کنید که ما می توانیم در این قسمت از آدرس ۱۲۷٫۰٫۰٫۱ و همچنین آدرس IP مربوط به DNS های ISP خود استفاده کنیم.
حال باید چیزی شبیه زیر داشته باشیم.
forwarders { ۱۹۲٫۱۶۸٫۰٫۲;۱۹۲٫۱۶۸٫۰٫۳; };
حال باید zone های خود را تعریف کنیم. برای این منظور به پایین همان فایل آمده و خطوط زیر را به آن اضافه می کنیم.
zone "test" { type master; file "master/test"; allow-transfer { localhost; }; allow-update { key rndc-key; }; };
همان طور که می بینید ما یک zone به اسم test ساختیم که فایل اصلی آن zone در مسیر master/test می باشد. شما می توایند از اسم domain خود استفاده کنید.
حال ما باید یک جستجوی برگشتی (reverse lookup) به zone خودمان اضافه کنیم. برای این منظور خطوط زیر را به انتهای فایل named.conf اضافه می کنیم.
zone "0.168.192.in-addr.arpa" { type master; file "master/test.rev"; allow-transfer { localhost; }; allow-update { key rndc-key; }; };
در بالا شما عبارت ۰٫۱۶۸٫۱۹۲ را می بینید که شاید تعجب کنید که این چیست. در واقع این شناسه شبکه من است ۱۹۲٫۱۶۸٫۰ که به صورت برگشتی نوشته شده است. (جستجوی برگشتی!)
شما می توانید بسته به نیازتان شناسه شبکه خود را تغییر دهید.
تا اینجا فعلاً کارمان با فایل named.conf تمام شد . آن را دخیره می کنیم و می بندیم.
حال ما نیاز داریم که یک rndc.key بسازیم و محتویات آن را به آخر فایل named.conf اضافه کنیم.
برای است منظور دستورات زیر را اجرا می کنیم:
rndc-confgen -a cd /var/named/etc/namedb cp named.conf named.conf.old cat rndc.key >> named.conf
در اینجا دیگر کار ما با فایل named.conf تمام شد و باید فایلهای zone بسازیم که شامل records و غیره می باشد.
ساختن فایل master forward local zone
به یاد داشته باشید که عبارت test را می توانید با نام domain خود جایگزین کنید.
خوب حالا باید فایل test را بسازیم. برای این منظور دستوران زیر را اجرا می کنیم.
cd /var/named/etc/namedb/master vi test
بعد از باز کردن فایل test محتویات زیر را در آن اضافه کنید.
$TTL ۳۶۰۰ test. IN SOA dnsfreebsd.test. root.test. ( ۱ ; Serial ۱۰۸۰۰ ; Refresh ۳۶۰۰ ; Retry ۶۰۴۸۰۰ ; Expire ۸۶۴۰۰ ) ;Minimum TTL ; DNS Servers test. IN NS dnsfreebsd.test. ; Computer names and records dnsfreebsd.test. IN A ۱۹۲٫۱۶۸٫۰٫۲ ; Aliases www IN CNAME dnsfreebsd.test. ; Mail MX Records test. IN MX ۱۰ dnsfreebsd.test.
شما می توانید بسته به نیاز خود aliases های بیشتری را اضافه کنید و یا همچنین A و MX رکوردهای بیشتری را اضافه کنید.
توجه داشته باشید در آخر نام domain خود حتماً علامت . (نقطه) را بگذارید.
همچنین شما می توانید hostname خودتان را جایگزین dnsfreebsd در این تنظیمات بکنید.
توجه داشته باشید که عبارت root.test آدرس email مدیر و صاحب zone است و در اینجا باید @ را با . (نقطه) جایگزین کنیم.
ساختن فایل master reverse lookup zone
برای ساختن این فایل دستورات زیر را اجرا می کنیم.
cd /var/named/etc/namedb/master vi test.rev
و سپس محتویات زیر را به فایل test.rev اضافه می کنیم.
$TTL ۳۶۰۰ ۰٫۱۶۸٫۱۹۲٫in-addr.arpa. IN SOA dnsfreebsd.test. root.test. ( ۱ ; Serial ۱۰۸۰۰ ; Refresh ۳۶۰۰ ; Retry ۶۰۴۸۰۰ ; Expire ۸۶۴۰۰) ; Minimum TTL ; DNS Servers ۰٫۱۶۸٫۱۹۲٫in-addr.arpa. IN NS dnsfreebsd.test. ; Computer IPs ۱۰۰ IN PTR dnsfreebsd.test. ۱۰۰ IN PTR www.test.
خوب در اینجا کارمان با تنظیمات تمام شد و میخواهیم سرور DNS مان را تست کنیم. برای این منظور کارهای زیر را انجام می دهیم.
vi /etc/resolv.conf
و سپس خطوط زیر را به آن اضافه می کنیم.
domain test nameserver 192.168.0.100 nameserver 192.168.0.2
بعد از انجام کارهای بالا فایل rc.conf را برای بالا آمدن خودکار سرویس BIND تنظیم می کنیم
echo 'named_enable=”YES”' >> /etc/rc.conf
سیستم را reboot می کنیم و حال به تست نهایی می پردازیم. برای این منظور دستور زیر را اجرا می کنیم.
dig google.com
اگر خروجی مانند زیر دیدید به شما تبریک می گویم.
;; SERVER: 192.168.0.100#53(192.168.0.100)