วิธีติดตั้ง 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.34
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.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)
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

4. สร้างไฟล์ 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.34
34          IN PTR    ns1.demo.local.

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

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

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

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

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

แก้ไข IP Address
1
nameserver 192.168.1.34

10. ทดสอบการทำงานของ Forward Zone ด้วยคำสั่ง dig
วิธีการติดตั้ง DNS Server (Domain Name System) บน Linux CentOS ด้วย BIND - รับทำเว็บไซต์ รับเขียนเว็บไซต์

11. ทดสอบการทำงานของ Reverse Zone ด้วยคำสั่ง dig
วิธีการติดตั้ง DNS Server (Domain Name System) บน Linux CentOS ด้วย BIND - รับทำเว็บไซต์ รับเขียนเว็บไซต์

12. ทดสอบการทำงานด้วยคำสั่ง nslookup
วิธีการติดตั้ง DNS Server (Domain Name System) บน Linux CentOS ด้วย BIND - รับทำเว็บไซต์ รับเขียนเว็บไซต์

12. ทดสอบเชื่อมต่อจากเครื่องภายในเครือข่าย (บทความนี้ใช้ Windows XP ในการทดสอบ) ให้ทำการแก้ไข DNS ที่เครื่อง Client
วิธีการติดตั้ง DNS Server (Domain Name System) บน Linux CentOS ด้วย BIND - รับทำเว็บไซต์ รับเขียนเว็บไซต์

13. ทดสอบการเชื่อมต่อจากเครื่อง Client ด้วย ping
วิธีการติดตั้ง DNS Server (Domain Name System) บน Linux CentOS ด้วย BIND - รับทำเว็บไซต์ รับเขียนเว็บไซต์

14. ทดสอบการเชื่อมต่อจากเครื่อง 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)
วิธีการติดตั้ง DNS Server (Domain Name System) บน Linux CentOS ด้วย BIND - รับทำเว็บไซต์ รับเขียนเว็บไซต์

** หมายเหตุ :

ในกรณีที่ใช้จริงกับ Domain หมายเลย IP จะต้องเป็นแบบ Static ที่ทำการลิ้งค์กับ ISP / Data Center โดยตรง และสามารถเรียกใช้งานได้จากระบบ Internet (ไม่ใช้ IP ที่อยู่ในระบบ Lan)

ทางเลือกที่ 1 ชี้ Record ของ A มายังหมายเลข IP ของ Server
โดยปกติแล้วเมื่อเราจดโดเมน ผู้ให้บริการโดเมนจะมี DNS ให้เราสามารถใช้งานได้ฟรี โดยเราสามารถชี้ DNS ไปยัง DNS ของผู้ให้บริการ จากนั้นสร้าง Record ของ A มายังหมายเลข IP ของ Server ได้ทันที

ทางเลือกที่ 2 ทำที่ Web Hosting ที่ใช้งานอยู่ อันนี้มีความหมายเดียวกันกับทางเลือกที่ 1 เพราะ Web Hosting ก็ให้บริการ DNSภายในตัวอยู่แล้ว แต่สามารถชี้ตัวเว็บมาที่ Server อื่น ที่ไม่ใช้ของ Web Hosting ได้

สร้าง Record A เหมือนกับ ตัวเลือกที่ 1 (การแก้ไขจะต้องรอ 6-24 ชม. เช่นเดียวกัน)

ทางเลือกที่ 3 สร้าง DNS ขึ้นมาเอง โดยสร้างจาก Server ที่เรา Config ขึ้นมา วิธีนี้อาจจะซับซ้อนพอสมควร 
โดยขั้นแรกเราจะต้องไปสร้างชื่อ DNS ให้ชี้มาที่ IP ของเราก่อน โดยสามารถทำได้ที่ผู้ให้บริการ Domain ทั้งหลาย เช่นใช้ของ Online ก็สามารถทำการเลือกที่ Register DNS

Windows Server 2012 DNS Domain

เข้าหน้าเว็บของ Onlinenic

Windows Server 2012 DNS Domain

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

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