การติดตั้งและปรับแต่ง DNS Server แบบ Caching-Only


ระบบโดเมนเนม (Domain Name System) หรือ DNS เป็นระบบที่ใช้ในการแปลงชื่อเว็บไซต์ ให้เป็นหมายเลขไอพี หรือแปลงหมายเลขไอพี ให้เป็นชื่อเว็บไซต์

ถ้าไม่มีการใช้ระบบโดเมนเนม เมื่อเราต้องการเข้าเว็บไซต์ต่างๆ เราต้องใช้หมายเลขไอพีแทน แต่เนื่องจากว่าหมายเลขไอพีของเครื่องเซิร์ฟเวอร์ ในระบบอินเตอร์เน็ตนั้น มีอยู่จำนวนมหาศาล จึงเป็นการยากที่จะจดจำหมายเลขไอพีว่า หมายเลขไอพีนี้เป็นของเซิร์ฟเวอร์ หรือว่าเว็บไซต์ใด

พื้นฐานคำสั่งเกี่ยวกับ DNS

คำสั่ง host จะใช้ในการตรวจสอบ dns อย่างง่าย

ตัวอย่างการใช้งาน

$ host www.cphow.com

www.cphow.com has address 202.43.35.234

$ host 202.43.35.234

234.35.43.202.in-addr.arpa domain name pointer www.cphow.com.

คำสั่ง nslookupใช้ในการตรวจสอบการแปลงหมายเลขไอพี กับ โดเมนเนม

ตัวอย่างการใช้งาน

$ nslookup www.cphow.com

Server: 202.12.97.1

Address: 202.12.97.1#53

Name: www.cphow.com

Address: 202.43.35.234

 



ซอฟต์แวร์ที่ใช้ในการติดตั้ง

ซอฟต์แวร์ที่ใช้ในการติดตั้ง DNS Server ที่ได้รับความนิยมมากที่สุดในปัจจุบันนั้น มีชื่อว่า BIND มาจาก Berkeley Internet Name Domain ซึ่งมีอยู่แล้วในแผ่น Fedora Core 6 Linux แผ่นที่ 2

 

ขั้นตอนการติดตั้ง BIND

ขั้นตอนที่ 1

ใส่แผ่น Fedora Core 6 Linux แล้วทำการเมาท์แผ่น แล้วไปยังไดเรคเทอรี Fedora/RPMS

# mount /dev/cdrom /mnt/cdrom

# cd /mnt/cdrom/Fedora/RPMS

ขั้นตอนที่ 2

ทำการติดตั้งไฟล์ bind-9.3.2-41.fc6.i386.rpm และ bind-chroot-9.3.2-41.fc6.i386.rpm ดังนี้

# rpm -ihv bind-9.3.2-41.fc6.i386.rpm bind-chroot-9.3.2-41.fc6.i386.rpm

warning: bind-9.3.2-41.fc6.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2

Preparing... ########################################### [100%]

1:bind ########################################### [ 50%]

2:bind-chroot ########################################### [100%]

Locating /var/named/chroot//etc/named.conf failed:

[FAILED]

ขั้นตอนการปรับแต่ง DNS Server แบบ Caching-Only

ขั้นตอนที่ 1

ไฟล์คอนฟิกกูเกชั่นหลักจะอยู่ที่ /etc/named.conf หรือในบางครั้งอาจจะพบว่าอยู่ที่ /var/named/chroot/etc/named.conf เนื่องจากว่ามีการจัดการเรื่องของความปลอดภัย ที่เรียกว่า chroot โดยเป็นการจำลองพาธเสมือนขึ้นมา เราต้องคัดลอกไฟล์ต้นฉบับจาก /usr/share/doc/bind-9.3.2/sample/etc/named.conf ไปยัง /var/named/chroot/etc/named.conf และจะมีไฟล์ที่เกี่ยวข้องที่ต้องคัดลอกไปเหมือนกัน

  • /usr/share/doc/bind-9.3.2/sample/etc/named.root.hints คัดลอกไปยัง /var/named/chroot/etc/

  • /usr/share/doc/bind-9.3.2/sample/etc/named.rfc1912.zones คัดลอกไปยัง /var/named/chroot/etc/

ดังนี้

# cp /usr/share/doc/bind-9.3.2/sample/etc/named.conf /var/named/chroot/etc/named.conf

# cp /usr/share/doc/bind-9.3.2/sample/etc/named.root.hints /var/named/chroot/etc/

# cp /usr/share/doc/bind-9.3.2/sample/etc/named.rfc1912.zones /var/named/chroot/etc/

จากนั้นทำการคัดลอกไดเรคเทอรี # usr/share/doc/bind-9.3.2/sample/var/ ไปยัง /var/named/chroot/var/ ดังนี้

# cp -r /usr/share/doc/bind-9.3.2/sample/var/* /var/named/chroot/var/

ขั้นตอนที่ 2

ทำการสร้างคีย์สำหรับการอัพเดตข้อมูล dns โดยใช้คำสั่ง /usr/sbin/dns-keygen ดังนี้

[root@netserv etc]# /usr/sbin/dns-keygen

xxxxYhdtKBA5BnHdJnyNRp9dkFYLFcIFgOZsxxxx

 

เมื่อได้คีย์เรียบร้อยแล้ว ให้นำไปใส่ไว้ส่วนของ key ddns_key ในไฟล์ named.conf ดังนี้

จาก

key ddns_key

{

algorithm hmac-md5;

#secret "use /usr/sbin/dns-keygen to generate TSIG keys";

};

เป็น

key ddns_key

{

algorithm hmac-md5;

#secret "use /usr/sbin/dns-keygen to generate TSIG keys";

secret "xxxxYhdtKBA5BnHdJnyNRp9dkFYLFcIFgOZsxxxx";

};

ขั้นตอนที่ 2

ทำการเพิ่มส่วนของ forwarders โดยข้างในเป็นหมายเลขไอพีของ DNS Server ที่เราใช้งานอยู่ ดังนี้

จาก

options

{

...

// Put files that named is allowed to write in the data/ directory:

directory "/var/named"; // the default

dump-file "data/cache_dump.db";

statistics-file "data/named_stats.txt";

memstatistics-file "data/named_mem_stats.txt";

};

เป็น

options

{

...

// Put files that named is allowed to write in the data/ directory:

directory "/var/named"; // the default

dump-file "data/cache_dump.db";

statistics-file "data/named_stats.txt";

memstatistics-file "data/named_mem_stats.txt";

forwarders {

202.69.137.83;

202.47.249.4;

};

};

ตรวจสอบการทำงานของ DNS Server แบบ Caching-Only

ก่อนอื่นให้ตรวจสอบเซอร์วิส named ว่าทำงานได้ถูกต้องหรือไม่ โดยทำการ start , stop , restart เซอร์วิส ดังนี้

# /etc/init.d/named start

# /etc/init.d/named stop

# /etc/init.d/named restart