یکی از چیزایی که من احساس کردم تو زبان فارسی کم نوشته شده ٬راهنماهای کوتاه و سریع هستش .خیلی موقع ها شده شما زیاد با یه سرویس کار نمی کنید و کلا قرار نیست کارتون نصب اون باشه ٬ولی برای محیطهای آزمابشی و یا تست یک برنامه به اون نیاز پیدا می کنید .خوب حالا شمایید و چند تا راهنمای بلند بالا. باید بشینی کلش رو بخونی برای اینکه فقط می خوای به طور آزمایشی یا موقت نصبش کنی .تازه اگه راهنما روی توزیع شما جواب نده که این یه درد سرم روش. برای همین تصمیم گرفتم لابلای کارام هر از چند گاهی یه راهنمای سریع برای یکی از سرویس ها بنویسم. این دفعه در مورد bind9 توضیح میدم اگه به کارتون می خوره ادامه مطلب رو بخونید ......
برای راه اندازی bind به دو تا بسته روی سرویس دهنده نیاز دارید ٬یکی bind9 و دیگری bind9-host. یک بسته به نام bind9-doc هم هست که حاوی یک راهنمای بسیار خوب برای bind هستش در صورتی که نیاز به توضیحات و جزپیات بیشتری داشتید می توانید از این راهنما استفاده کنید. طریقه نصب هم که بسیار ساده است:
root@debian:~# apt-get install bind9 bind9-host bind9-doc
- پیکربندی client
بر روی client ها دو تا فایل رو باید تنظیم کنید یکی nsswitch.conf و resolve.conf . در فایلnsswitch.conf خطی به صورت زیر وجود دارد :
hosts: files dns
که شما باید جای dns و files رو عوض کنید تا برای تبدیل اسم به ip و بالعکس اول dns را جستجو کند و بعد فایل etc/hosts/. خوب اگر در فایل hosts هیچ چیزی تعریف نکرده اید احتیاجی به این کار نیست ٬چون اگر پیدا نکرد خودکار به سراغ dns می رود.
فایل بعدی فایل resolve.conf است. شما کافی است تنها خط زیر را به آن اضافه کنید:
nameserver 192.168.0.1
که 192.168.0.1 آدرس IP سرویس دهنده شماست. شما می توانید تا سه nameserver در این فایل تعریف کنید.
- پیکربندی سرویس دهنده
خوب نوبت به خود سرویس دهنده رسید .فایل اصلی پیکربندی bind فایل etc/bind/named.conf/ است. برای اضافه کردن یک ناحیه (zone) برای مثال giveme5.ir خطوط زیر را به فایل named.conf اضافه کنید:
zone "giveme5.ir" {
type master;
file "/etc/bind/db.giveme5.ir";
};
همانطور که مشاهده می کنید در اینجا ما به bind گفته ایم که تنظیمات را در فایل etc/bind/db.giveme5.ir بررسی کن .پس باید این فایل رو در مسیر تعیین شده بسازیم. برای آنکه لازم نباشد syntax فایل رو به خاطر بسپارید کافی است از یکی از فایلهای موجود کمک بگیرید:
root@debian:~# cp /etc/bind/db.local /etc/bind/db.giveme5.ir
حالا کافیه فایل رو به صورت زیر برای نام دامنه خود اصلاح کنید(در اینجا نام دامنه giveme5.ir و آدرس IP آن 192.168.0.1 فرض شده است ):
$TTL 604800
@ IN SOA giveme5.ir. behrad.giveme5.ir. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS giveme5.ir.
@ IN A 192.168.0.1
www IN A 192.168.0.1
ftp IN CNAME www
parsix IN A 192.168.0.2
خوب ما اینجا دامنه giveme5.ir را تعریف کرده ایم به علاوه زیر دامنه www و یک alias برای آن به نام ftp این کار برای زمانی است که چندین سرویس را بر روی یک سرویس دهنده راه اندازی کرده باشید یا می خواهید یک host را با چندین نام فراخوانی کنید. خط آخر نیز یک host به نام parsix را با آدرس آی پی 192.168.0.2 را معرفی می کند. شما می توانید به دلخواه خود زیر دامنه ها و alias ها به این شکل که گفته شد معرفی نمایید. بقیه گزینه ها نیز لازم به توضیح ندارند چون برای یک محیط آزمایشی لزومی به تغییر هیچکدام نیست.
خوب حالا برای آنکه تغییرات اعمال شده در فایلهای پیکربندی اعمال شود سروس bind را restart می کنیم:
root@debian:~# /etc/init.d/bind9 restart
- عیب یابی ( Troubleshooting)
برای آنکه مطمین شوید سرویس راه اندازی شده و درست عمل می کند می توانید به صورت زیر عمل کنید:
behrad@debian:~$ netstat -ant | grep LISTEN
که باید در خروجی دستور خطی مانند زیر وجود داشته باشد:
tcp 0 0 192.168.0.1:53 0.0.0.0:* LISTEN
و همچنین می توانید توسط دستور زیر مطمین شوید که bind عمل تبدیل را به خوبی انجام می دهد:
behrad@debian:~$ dig @192.168.0.1 www.giveme5.ir
در صورتی که سرویس درست راه اندازی شده باشد و فایلهای پیکربندی درست ویرایش شده باشند ٬خروجی این دستور باید رکورد تعریف شده برای www باشد.
در صورتی که هیچ یک از دستورات بالا خروجی مناسب را به شما نداد٬ فایل syslog را به صورت زیر مرور کنید:
root@debian:~# cat /var/log/syslog | grep bind
در صورتی که در ویرایش فایلهای پیکربندی اشتباهی کرده باشید در syslog شماره خطوط مشکل دار گزارش می شود و می توانید آنها اصلاح کرده و مجددا سرویس را restart کنید.
نویسنده : بهراد اسلامی فر
behrad At Giveme5 Dot irwww.giveme5.ir
