การติดตั้ง dns server ด้วยโปรแกรม bind
- สมมติว่า name server ของ ISP ที่ให้บริการ มีหมายเลข ip คือ 10.0.0.5 และ name server ของเราเป็นเลข 10.0.1.3
ก่อนติดตั้ง ให้ทดสอบว่า server เครื่องนี้ สามารถท่องอินเทอร์เนตได้อย่างสมบูรณ์
- ลองใช้ browser ไปที่ www.google.com ว่าใช้งานได้
- ตรวจสอบดู dns server ที่ตนเองใช้อยู่ในปัจจุบันในแฟ้ม /etc/resolv.conf ด้วยคำสั่งว่า cat /etc/resolv.conf
ได้ข้อความประมาณว่า
nameserver 10.0.0.5
ตัวอย่างนี้คือระบบเลือกใช้ name server มีหมายเลข ip คือ 10.0.0.5
- ลองใช้คำสั่งว่า nslookup www.yahoo.com
Server: 10.0.0.5
Address: 10.0.0.5#53
Non-authoritative answer:
www.yahoo.com canonical name = www.yahoo.akadns.net.
Name: www.yahoo.akadns.net
Address: 209.191.93.52
- โปรแกรม bind ที่ติดตั้งบน linux fedora core 4 จะเป็น name server แบบ caching only คือเป็น name server ที่ไม่ต้องมีการส่งข้อมูลออกไปให้ name server อื่นๆ ทำหน้าที่ไปค้นหา ip จาก name server แต่เพียงอย่างเดียว
ติดตั้งโปรแกรม bind ด้วยคำสั่ง
yum install bind bind-utils bind-chroot
ตั้งให้ทำงานทุกครั้งที่บูทเครื่อง ด้วยคำสั่ง
chkconfig named on
สั่งให้ DNS sever ทำงาน ด้วยคำสั่ง
service named start
สามารถปรับแต่งค่าได้ที่แฟ้ม /var/named/chroot/etc/named.conf
แล้วต้องสั่งให้ reload ใหม่ด้วยคำสั่ง
service named reload
- หากต้องการทำเป็น name server แบบ forward only
ต้องแก้ไขแฟ้ม /var/named/chroot/etc/named.conf ให้มีข้อมูลประมาณดังตัวอย่าง
options {
directory "/var/named";
forward first;
forwarders {
10.0.0.5;
};
};
แก้ไขเสร็จแล้ว ให้สั่ง reload name server ใหม่ด้วยคำสั่ง
service named reload
ทดสอบผลงานด้วยคำสั่ง
nslookup www.yahoo.com 127.0.0.1
ได้ผลประมาณว่า
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
www.yahoo.com canonical name = www.yahoo.akadns.net.
Name: www.yahoo.akadns.net
Address: 209.191.93.52
ถึงตอนนี้แสดงว่า name server ของเราทำงานเป็นแบบ forward only ได้แล้ว
- หากต้องการทำเป็น caching only ด้วยก็ให้ทำต่อคือ
แก้ไขแฟ้ม /etc/resolv.conf เพิ่มข้อความว่า
name server 127.0.0.1 ไว้บนบรรทัดแรกสุด ประมาณว่า
nameserver 127.0.0.1
nameserver 10.0.0.5
หมายความว่า ให้เลือก query จากตนเองก่อน หากไม่พบ ก็ไปต่อที่ 10.0.0.5
แก้ไขแค่นี้ ก็ใช้ได้แล้ว ไม่ต้องไป reload หรือ restart
รอสัก 2 นาที แล้วลองทดสอบผลงานด้วยคำสั่ง
nslookup www.yahoo.com
ได้ผลประมาณว่า
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
www.yahoo.com canonical name = www.yahoo.akadns.net.
Name: www.yahoo.akadns.net
Address: 209.191.93.52
แสดงว่าใช้งานได้แล้ว
- หากต้องการทำเป็น name server สำหรับบริการทั่วๆไป
มีตนเองเป็น primary และมี myisp.domain.com เป็น secondary
ให้แก้ไขแฟ้ม /var/named/chroot/etc/named.conf ดังนี้
**** ต้องยกเลิกหรือลบบรรทัดข้อความ(ถ้ามี)ว่า
forward first; ทิ้งออกไปด้วย
**** การใส่ comment ใน zone file ให้ใส่เครื่องหมาย ";" นำหน้า
ให้มีข้อมูล zone และ reserve zone ที่ต้องการ ดังตัวอย่าง
zone "mydomain.com" {
type master;
allow-query { any; };
file "my-domain.zone";
};
zone "1.0.10.in-addr.arpa" {
type master;
file "10-0-1.zone";
};
ต่อไปให้สร้างแฟ้ม /var/named/chroot/var/named/my-domain.zone
มีข้อมูลประมาณดังตัวอย่าง
$TTL 3D
@ IN SOA ns.mydomain.com. (
200611146 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
NS ns
localhost A 127.0.0.1
ns A 10.0.1.3
myserver1 A 10.0.1.207
myserver2 A 10.0.1.208
ต่อไปให้สร้างแฟ้ม /var/named/chroot/var/named/10-0-1.zone
มีข้อมูลประมาณดังตัวอย่าง
$TTL 3D
@ IN SOA ns.mydomain.com. (
200611142 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
NS ns
NS mysip.domain.com
205 PTR myserver1.mydomain.com.
207 PTR myserver1.mydomain.com.
เมื่อสร้างแฟ้มเสร็จแล้ว ต้องเปลี่ยนสิทธิ์แฟ้มนี้ให้เป็นของ named ด้วยคำสั่ง
chown named.named /var/named/chroot/var/named/my-domain.zone
chown named.named /var/named/chroot/var/named/10-0-1.zone
เสร็จแล้วสั่งให้ DNS ทำงานด้วยคำสั่ง
service named restart
ทดสอบใช้งานได้เลย