จัดการ 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
หากเป็น ubuntu ใช้คำสั่ง
apt-get install bind9 bind9-doc
สั่งให้ DNS sever ทำงาน ใช้คำสั่ง
/etc/init.d/bind9 start
ปรับแต่งค่าต่างๆได้ที่แฟ้ม /etc/bind/named.conf.options
แล้วสั่งให้ DNS server ทำงานใหม่ด้วยคำสั่ง
/etc/init.d/bind9 reload
หากเป็น fedora ใช้คำสั่ง
yum install bind bind-utils bind-chroot
ตั้งให้ทำงานทุกครั้งที่บูทเครื่อง ด้วยคำสั่ง
chkconfig named on
สั่งให้ DNS sever ทำงานใช้คำสั่ง
/etc/init.d/named start
ปรับแต่งค่าได้ที่แฟ้ม /var/named/chroot/etc/named.conf
แล้วต้องสั่งให้ reload ใหม่ด้วยคำสั่ง
/etc/init.d/named reload
- การทำเป็น name server แบบ forward only
หากเป็น ubuntu ให้แก้ไขแฟ้ม /etc/bind/named.conf.options
หากเป็น fedora ให้แก้ไขแฟ้ม /var/named/chroot/etc/named.conf ให้มีข้อมูลประมาณดังตัวอย่าง
options {
directory "/var/cache/bind";
### หากเป็น ubuntu ใช้ข้อความ directory "/var/cache/bind";
### หากเป็น fedora ใช้ข้อความ directory "/var/named";
forward first;
forwarders {
10.0.0.5;
};
};
แก้ไขเสร็จแล้ว ให้สั่ง reload name server ใหม่
หากเป็น ubuntu ใช้คำสั่ง
/etc/init.d/bind9 reload
หากเป็น fedora ใช้คำสั่ง
/etc/init.d/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
หากเป็น ubuntu แก้ไขที่แฟ้ม /etc/bind/named.conf.local
หากเป็น fedora แก้ไขที่แฟ้ม /var/named/chroot/etc/named.conf
**** ต้องยกเลิกหรือลบบรรทัดข้อความ(ถ้ามี)ว่า
forward first; ทิ้งออกไปด้วย
**** การใส่ comment ใน zone file ให้ใส่เครื่องหมาย ";" นำหน้า
ให้มีข้อมูล zone และ reserve zone ที่ต้องการ ดังตัวอย่าง
zone "mydomain.com" {
type master;
allow-query { any; };
file "/etc/bind/my-domain.zone";
// หากเป็น ubuntu ต้องใส่ path ด้วยว่า file "/etc/bind/my-domain.zone"
// หากเป็น fedora ไม่ต้องใส่ path เหลือแค่ file "my-domain.zone"
};
zone "1.0.10.in-addr.arpa" {
type master;
file "10-0-1.zone";
// หากเป็น ubuntu ต้องใส่ path ด้วยว่า file "/etc/bind/10-0-1.zone"
// หากเป็น fedora ไม่ต้องใส่ path เหลือแค่ file "10-0-1.zone"
};
ต่อไปให้สร้างแฟ้ม zone ต่างๆ
หากเป็น ubuntu แก้ไขแฟ้ม /etc/bind/my-domain.zone
หากเป็น fedora แก้ไขแฟ้ม /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
ต่อไปให้สร้างแฟ้ม reverse zone
หากเป็น ubuntu แก้ไขแฟ้ม /etc/bind/10-0-1.zone
หากเป็น fedora แก้ไขแฟ้ม /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.
หากเป็น ubunt ให้ DNS ทำงานด้วยคำสั่ง
/etc/init.d/bind9 restart
หากเป็น fedora เมื่อสร้างแฟ้มเสร็จแล้ว ต้องเปลี่ยนสิทธิ์แฟ้มนี้ให้เป็นของ 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 ทำงานด้วยคำสั่ง
/etc/init.d/named restart
ขอบคุณข้อมูลจาก : ศูนย์คอมพิวเตอร์มหาวิทยาลัยสงขลานครินทร์