หน้าแรก > คุย Linux > ติดตั้ง DNS Server พร้อม Master & Slave อย่างรวดเร็ว

ติดตั้ง DNS Server พร้อม Master & Slave อย่างรวดเร็ว

มิถุนายน 3, 2011 ใส่ความเห็น Go to comments

 DNS Server ถือเป็นแหล่งอ้างอิง Domain Name เพื่อทำหน้าที่แปลง URL ไปเป็น IP Address ซึ่งหน้าที่หลักของ DNS ก็ประมาณนี้ จริงๆ แล้วถ้าคนเราจำ IP Address ได้ทุกเว็บก็คงจะพิลึกไม่น้อย ;P เอ่อ เขาใช้ Domain กันน่ะครับ ทีนี้การประกาศ Domain Name ต้องอาศัย DNS Server เป็นตัวประกาศว่า Domain นี้ใช้ Name Server อะไร มี sub-domain อะไรบ้าง IP Address อะไร เป็นต้น ถ้าอ่านแล้วยังงงๆ ให้ท่านไปหาอ่านเอาเองที่ http://en.wikipedia.org/wiki/Domain_Name_Server ครับ

ในครั้งนี้จะมาแนะนำการตั้ง DNS Server แบบเร็วๆ โดยมี 2 เครื่อง คือ master และ slave โดยเครื่อง slave จะทำหน้าที่อัพเดทข้อมูลจาก master อัตโนมัติ (replication) มาเริ่มกันเลย ในตัวอย่างนี้เราจะตั้ง DNS Server เพื่อใช้กับ Domain ชื่อ EXAMPLE.COM (จำง่ายดีครับ) โดยจะมีข้อมูลดังนี้ (ของผมเองนะ เปลี่ยน IP ไปตามที่คุณต้องการ)

Server 1 : ns1.example.com
IP Address : 172.16.19.226
Netmask : 255.255.0.0
Gateway : 172.16.16.1

Server 2 : ns2.example.com
IP Address : 172.16.19.73
Netmask : 255.255.0.0
Gateway : 172.16.16.1

ให้ติดตั้ง Ubuntu Server ทั้ง 2 เครื่อง เลือกติดตั้ง DNS Server ทั้ง 2 เครื่องครับ 😉 เมื่อติดตั้งเสร็จแล้วให้ config IP Address ให้ถูกต้อง

เครื่อง Server 1 (Master)

เพิ่ม Zone ลงในไฟล์ /etc/bind/named.conf.local ดังนี้

zone “example.com” {
type master;
file “/etc/bind/db.example.com”;
allow-transfer { 172.16.19.73/32; };
};

จาก config ข้างต้น ระบุ Zone เป็น example.com เป็น DNS master มีข้อมูล Zone ในไฟล์ /etc/bind/db.example.com และส่งข้อมูลการอัพเดทไปยังเครื่อง Server 2 ที่มี IP Address เป็น 172.16.19.73 สร้าง Zone File ชื่อ db.example.com มีข้อมูลดังนี้

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.example.com. admin@example.com. (
4 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 172.16.19.226
@ IN AAAA ::1

ns1 IN A 172.16.19.226
ns2 IN A 172.16.19.73

สั่ง restart service ของ bind แล้วทดสอบ dig ดูว่าได้ข้อมูลถูกต้องหรือไม่ หากว่าได้ข้อมูลถูกต้องแล้ว มาต่อกันที่เครื่องที่ 2 ครับ

เครื่อง Server 2 (Slave)

เพิ่ม Zone ลงในไฟล์ /etc/bind/named.conf.local ดังนี้

zone “example.com” {
type slave;
file “/etc/bind/db.example.com”;
masters { 172.16.19.226; };
};

จาก config ข้างต้น ระบุ Zone เป็น example.com เป็น DNS Slave มีข้อมูล Zone ในไฟล์ /etc/bind/db.example.com รับข้อมูลจาก DNS masters ที่มี IP Address เป็น 172.16.19.226 จากนั้นให้สร้างไฟล์เปล่าๆ ชื่อ db.example.com ขึ้นมาครับ จากนั้น chown ไดเรคทอรี /etc/bind ทั้งหมดโดยใช้ชื่อผู้ใช้ว่า bind

sudo chown bind -R /etc/bind

จากนั้นแก้ไขไฟล์ /etc/apparmor.d/usr.sbin.named ให้เพิ่ม กฏของ Apparmor ลงไปดังนี้

/etc/bind/** rw,
/etc/bind/ rw,

หากเก็บ Zone ไฟล์ไว้ที่ /var/cache/named ไม่ต้องแก้ไขคอนฟิกของ Appamor ครับ ในกรณีนี้เราแหกคอกเล็กน้อย 😛 จากนั้นก็สั่ง restart bind ได้เลย ให้สังเกต log ใน /var/log/syslog จะพบว่ามีการ sync zone example.com เข้ามา สังเกตดูในไฟล์ db.example.com ตอนนี้จะพบว่ามีข้อมูลเรียบร้อยแล้ว ในกรณีที่มีการอัพเดทใน NS1 ใน NS2 ก็จะมีการอัพเดทด้วย 🙂

หมวดหมู่:คุย Linux
  1. ยังไม่มีความเห็น
  1. No trackbacks yet.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: