วันพฤหัสบดีที่ 2 มกราคม พ.ศ. 2557

วิธีติดตั้ง DNS Server (Domain Name System) บน CentOS (Linux) ด้วย BIND


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.4
3. FQDM ของ Server คือ ns1.demo.local
4. เครื่อง Client ที่นำมาช่วยในการทดสอบรันด้วย Windows XP

วิธีการติดตั้ง DNS บน Linux CentOS ด้วย BIND
1. ติตดั้งโปรแกรม bind
1
yum install bind* -y

2. แก้ไขค่าโปรแกรม bind (ปรับแก้ไขเฉพาะส่วนที่เป็นสีแดง)
1
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.4;};
 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. สร้างไฟล์ demo.local
nano -w /var/named/demo.local.zone
$TTL 86400
@   IN  SOA     ns1.demo.local. root.demo.local. (
        2013042201  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
; Specify our two nameservers
  IN NS  ns1.demo.local.
 
; Resolve nameserver hostnames to IP, replace with your two droplet IP addresses.
ns1  IN A  192.168.1.4

; Define hostname -> IP pairs which you wish to resolve
@  IN A  192.168.1.4
www  IN A  192.168.1.4
4. สร้างไฟล์ Forward Zone (แปลง Domain เป็น IP Address)
1
vi /var/named/f.demo.local

ใส่ค่าเข้าไปดังนี้แล้วบันทึกข้อมูล
1
2
3
4
5
6
7
8
9
10
11
12
$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

5. สร้างไฟล์ Reverse Zone (แปลง IP Address กลับเป็น Domain)
1
vi /var/named/r.demo.local

ใส่ค่าเข้าไปดังนี้แล้วบันทึกข้อมูล
1
2
3
4
5
6
7
8
9
10
11
$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.4
4          IN PTR    ns1.demo.local.

6. Start Service bind (สำหรับครั้งแรกต้องรอนานหน่อยเพราะระบบจะทำการสร้าง rndc.key อาจจะใช้เวลาเป็นนาที หรือเร็วกว่านั้น)
1
/etc/init.d/named start

7. ปิด Firewall (ปิดเพื่อการทดสอบเท่านั้น)
1
/etc/init.d/iptables stop

8. ตรวจสอบการสร้างไฟล์ Forward Zone 
1
named-checkzone demo.local /var/named/f.demo.local
ผลลัพธ์จะต้องได้ OK หากมีข้อผิดพลาดทบทวนวิธีการสร้างไฟล์ Forward Zone ใหม่

9. ตรวจสอบการสร้างไฟล์ Reverse Zone
1
named-checkzone demo.local /var/named/r.demo.local
ผลลัพธ์จะต้องได้ OK หากมีข้อผิดพลาดทบทวนวิธีการสร้างไฟล์ Reverse Zone ใหม่

10. แก้ไข nameserver 
1
vi /etc/resolv.conf

แก้ไข IP Address
1
nameserver 192.168.1.4

11. ทดสอบการทำงานของ Forward Zone ด้วยคำสั่ง dig




12. ทดสอบการทำงานของ Reverse Zone ด้วยคำสั่ง dig



13. ทดสอบการทำงานด้วยคำสั่ง nslookup



14. ทดสอบเชื่อมต่อจากเครื่องภายในเครือข่าย (บทความนี้ใช้ Windows XP ในการทดสอบ) ให้ทำการแก้ไข DNS ที่เครื่อง Client



15. ทดสอบการเชื่อมต่อจากเครื่อง Client ด้วย ping



16. ทดสอบการเชื่อมต่อจากเครื่อง Client ด้วย nslookup



ทดสอบติดตั้ง httpd เพื่อเรียกใช้งานผ่าน Domain www.demo.local
1. ติดตั้งโปรแกรม httpd
1
yum install httpd -y

2. Start Service httpd
1
/etc/init.d/httpd start

3. ที่เครื่อง Client ทดสอบเปิดโปรแกรมเว็บเบราว์เซอร์แล้วพิมพ์ www.demo.local (เชื่อมต่อ www บน Linux CentOS)




ไม่มีความคิดเห็น:

แสดงความคิดเห็น