Domain Name Systen (DNS) คือ บริการในการแปลงชื่อ Domain ไปเป็น IP Address หรือแปลง IP Address กลับเป็น Domain ซึ่งเป็นบริการที่มีความสำคัญมากบนโลกอินเทอร์เน็ต และอินทราเน็ต โดยบทความนี้จะสอนการติดตั้ง DNS ด้วยโปรแกรม BIND บนระบบปฏิบัติการ CentOS 6
BIND (Berkeley Internet Name Domain) คือ โปรแกรมฟรี (Open Source) ที่ได้รับความนิมในการนำมาติดตั้ง Domain Name System (DNS) สำหรับอินเทอร์เน็ต และอินทราเน็ต
สถานการณ์ที่ใช้ในการติดตั้ง DNS
1. บทความนี้จะสอนติดตั้ง nameserver (Primary DNS) เท่านั้น (ใช้ Linux CentOS 1 เครื่องกับ 1 IP Address)
2. IP Address ของ Linux CentOS ที่ทำหน้าที่ DNS คือ 192.168.1.34
3. FQDM ของ Server คือ ns1.demo.local
4. เครื่อง Client ที่นำมาช่วยในการทดสอบรันด้วย Windows XP
วิธีการติดตั้ง DNS บน Linux CentOS ด้วย BIND
1. ติตดั้งโปรแกรม bind
yum install bind* -y
2. แก้ไขค่าโปรแกรม bind (ปรับแก้ไขเฉพาะส่วนที่เป็นสีแดง)
vi /etc/named.conf
แก้ไขเป็น
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.1.34;};
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "demo.local" IN {
type master;
file "f.demo.local";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "r.demo.local";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
3. สร้างไฟล์ Forward Zone (แปลง Domain เป็น IP Address)
vi /var/named/f.demo.local
ใส่ค่าเข้าไปดังนี้แล้วบันทึกข้อมูล
$TTL 86400
@ IN SOA ns1.demo.local. root.demo.local. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS ns1.demo.local.
ns1 IN A 192.168.1.34
@ IN A 192.168.1.34
www IN A 192.168.1.34
4. สร้างไฟล์ Reverse Zone (แปลง IP Address กลับเป็น Domain)
vi /var/named/r.demo.local
ใส่ค่าเข้าไปดังนี้แล้วบันทึกข้อมูล
$TTL 86400
@ IN SOA ns1.demo.local. root.demo.local. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS ns1.demo.local.
ns1 IN A 192.168.1.34
34 IN PTR ns1.demo.local.
5. Start Service bind (สำหรับครั้งแรกต้องรอนานหน่อยเพราะระบบจะทำการสร้าง rndc.key อาจะใช้เวลาเป็นนาที หรือเร็วกว่านั้น)
/etc/init.d/named start
6. ปิด Firewall (ปิดเพื่อการทดสอบเท่านั้น)
/etc/init.d/iptables stop
7. ตรวจสอบการสร้างไฟล์ Forward Zone
named-checkzone demo.local /var/named/f.demo.local
ผลลัพธ์จะต้องได้ OK หากมีข้อผิดพลาดทบทวนวิธีการสร้างไฟล์ Forward Zone ใหม่
8. ตรวจสอบการสร้างไฟล์ Reverse Zone
named-checkzone demo.local /var/named/r.demo.local
ผลลัพธ์จะต้องได้ OK หากมีข้อผิดพลาดทบทวนวิธีการสร้างไฟล์ Reverse Zone ใหม่
9. แก้ไข nameserver
vi /etc/resolv.conf
แก้ไข IP Address
nameserver 192.168.1.34
10. ทดสอบการทำงานของ Forward Zone ด้วยคำสั่ง dig
11. ทดสอบการทำงานของ Reverse Zone ด้วยคำสั่ง dig
12. ทดสอบการทำงานด้วยคำสั่ง nslookup
12. ทดสอบเชื่อมต่อจากเครื่องภายในเครือข่าย (บทความนี้ใช้ Windows XP ในการทดสอบ) ให้ทำการแก้ไข DNS ที่เครื่อง Client
13. ทดสอบการเชื่อมต่อจากเครื่อง Client ด้วย ping
14. ทดสอบการเชื่อมต่อจากเครื่อง Client ด้วย nslookup
ทดสอบติดตั้ง httpd เพื่อเรียกใช้งานผ่าน Domain www.demo.local
1. ติดตั้งโปรแกรม httpd
yum install httpd -y
2. Start Service httpd
/etc/init.d/httpd start
3. ที่เครื่อง Client ทดสอบเปิดโปรแกรมเว็บเบราว์เซอร์แล้วพิมพ์ www.demo.local (เชื่อมต่อ www บน Linux CentOS)