ค้นหาเว็บไซต์

ติดตั้งและกำหนดค่าเซิร์ฟเวอร์ DNS แบบแคชเท่านั้นใน RHEL/CentOS 7 - ตอนที่ 10


เซิร์ฟเวอร์ DNS มีหลายประเภท เช่น เซิร์ฟเวอร์หลัก เซิร์ฟเวอร์รอง การส่งต่อ และแคช เป็นต้น โดย DNS ที่ใช้แคชเท่านั้นเป็นเซิร์ฟเวอร์ที่ตั้งค่าได้ง่ายกว่า เนื่องจาก DNS ใช้โปรโตคอล UDP จึงปรับปรุงเวลาในการสืบค้นเนื่องจากไม่จำเป็นต้องมีการตอบรับ

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

หากคุณต้องการตั้งค่าเซิร์ฟเวอร์ DNS Caching-Only ใน CentOS/RHEL 6 ให้ทำตามคำแนะนำนี้ที่นี่:

การตั้งค่าเซิร์ฟเวอร์ชื่อ DNS สำหรับแคชเท่านั้นใน CentOS/RHEL 6

สภาพแวดล้อมการทดสอบของฉัน

DNS server		:	dns.tecmintlocal.com (Red Hat Enterprise Linux 7.1)
Server IP Address	:	192.168.0.18
Client			:	node1.tecmintlocal.com (CentOS 7.1)
Client IP Address	:	192.168.0.29

ขั้นตอนที่ 1: การติดตั้งเซิร์ฟเวอร์ DNS แบบแคชเท่านั้นใน RHEL/CentOS 7

1. เซิร์ฟเวอร์ DNS แบบแคชเท่านั้นสามารถติดตั้งได้ผ่านแพ็คเกจการเชื่อมโยง หากคุณจำชื่อแพ็คเกจไม่ได้ คุณสามารถค้นหาชื่อแพ็คเกจได้อย่างรวดเร็วโดยใช้คำสั่งด้านล่าง

yum search bind

2. ในผลลัพธ์ข้างต้น คุณจะเห็นแพ็คเกจหลายรายการ จากนั้น เราต้องเลือกและติดตั้งเฉพาะแพ็คเกจ bind และ bind-utils โดยใช้คำสั่ง yum ต่อไปนี้

yum install bind bind-utils -y

ขั้นตอนที่ 2: กำหนดค่า DNS เฉพาะแคชใน RHEL/CentOS 7

3. เมื่อติดตั้งแพ็คเกจ DNS แล้ว เราก็สามารถกำหนดค่า DNS ได้เลย เปิดและแก้ไข /etc/named.conf โดยใช้โปรแกรมแก้ไขข้อความที่คุณต้องการ ทำการเปลี่ยนแปลงตามที่แนะนำด้านล่าง (หรือคุณสามารถใช้การตั้งค่าของคุณตามความต้องการของคุณ)

listen-on port 53 { 127.0.0.1; any; };
allow-query     { localhost; any; };
allow-query-cache       { localhost; any; };

คำสั่งเหล่านี้สั่งให้เซิร์ฟเวอร์ DNS ฟังบนพอร์ต UDP 53 และอนุญาตให้มีการสืบค้นและแคชตอบกลับจาก localhost และเครื่องอื่น ๆ ที่เข้าถึง เซิร์ฟเวอร์

4. สิ่งสำคัญที่ควรทราบก็คือ ความเป็นเจ้าของไฟล์นี้จะต้องตั้งค่าเป็น root:named และหากเปิดใช้งาน SELinux หลังจากแก้ไขแล้ว ไฟล์การกำหนดค่าที่เราจำเป็นต้องตรวจสอบให้แน่ใจว่าบริบทถูกตั้งค่าเป็น named_conf_t ดังแสดงในรูปที่ 4 (สิ่งเดียวกันสำหรับไฟล์เสริม /etc/named.rfc1912.zones ):

ls -lZ /etc/named.conf
ls -lZ /etc/named.rfc1912.zones

มิฉะนั้น ให้กำหนดค่าบริบท SELinux ก่อนดำเนินการต่อ:

semanage fcontext -a -t named_conf_t /etc/named.conf
semanage fcontext -a -t named_conf_t /etc/named.rfc1912.zones

5. นอกจากนี้ เราจำเป็นต้องทดสอบการกำหนดค่า DNS ตอนนี้เพื่อหาข้อผิดพลาดทางไวยากรณ์บางอย่างก่อนที่จะเริ่มบริการเชื่อมโยง:

named-checkconf /etc/named.conf

6. หลังจากที่ผลการตรวจสอบไวยากรณ์ดูเหมือนจะสมบูรณ์แบบแล้ว ให้เริ่มบริการ ชื่อ ใหม่เพื่อให้การเปลี่ยนแปลงใหม่มีผล และยังทำให้บริการเริ่มต้นโดยอัตโนมัติระหว่างการบู๊ตระบบ จากนั้นตรวจสอบ สถานะ:

systemctl restart named
systemctl enable named
systemctl status named

7. จากนั้น เปิดพอร์ต 53 บนไฟร์วอลล์

firewall-cmd --add-port=53/udp
firewall-cmd --add-port=53/udp --permanent

ขั้นตอนที่ 3: เซิร์ฟเวอร์ DNS เฉพาะแคช Chroot ใน RHEL และ CentOS 7

8. หากคุณต้องการปรับใช้เซิร์ฟเวอร์ DNS แบบแคชเท่านั้นภายในสภาพแวดล้อม chroot คุณต้องมีแพ็คเกจ chroot ติดตั้งอยู่บนระบบและ ไม่จำเป็นต้องกำหนดค่าเพิ่มเติมเนื่องจากเป็นค่าเริ่มต้นของฮาร์ดลิงก์ไปยัง chroot

yum install bind-chroot -y

เมื่อติดตั้งแพ็คเกจ chroot แล้ว คุณสามารถรีสตาร์ทตั้งชื่อเพื่อให้การเปลี่ยนแปลงใหม่มีผล:

systemctl restart named

9. ถัดไป สร้างลิงก์สัญลักษณ์ (หรือชื่อ /etc/named.conf) ภายใน /var/named/chroot/etc/:

ln -s /etc/named.conf /var/named/chroot/etc/named.conf

ขั้นตอนที่ 4: กำหนดค่า DNS บนเครื่องไคลเอนต์

10. เพิ่มเซิร์ฟเวอร์ DNS Cache IP 192.168.0.18 เป็นตัวแก้ไขในเครื่องไคลเอ็นต์ แก้ไข /etc/sysconfig/network-scripts/ifcfg-enp0s3 ดังแสดงในรูปต่อไปนี้:

DNS=192.168.0.18

และ /etc/resolv.conf ดังต่อไปนี้:

nameserver 192.168.0.18

11. ในที่สุดก็ถึงเวลาตรวจสอบเซิร์ฟเวอร์แคชของเรา เมื่อต้องการทำเช่นนี้ คุณสามารถใช้ยูทิลิตี้ dig หรือคำสั่ง nslookup

เลือกเว็บไซต์ใดก็ได้และค้นหาสองครั้ง (เราจะใช้ facebook.com เป็นตัวอย่าง) โปรดทราบว่าด้วยการขุดครั้งที่สอง แบบสอบถามจะเสร็จสิ้นเร็วขึ้นมากเนื่องจากกำลังให้บริการจากแคช

dig facebook.com

คุณยังสามารถใช้ nslookup เพื่อตรวจสอบว่าเซิร์ฟเวอร์ DNS ทำงานตามที่คาดไว้

nslookup facebook.com

สรุป

ในบทความนี้ เราได้อธิบายวิธีตั้งค่าเซิร์ฟเวอร์ DNS Cache-only ใน Red Hat Enterprise Linux 7 และ CentOS 7 และทดสอบในเครื่องไคลเอ็นต์ โปรดแจ้งให้เราทราบหากคุณมีคำถามหรือข้อเสนอแนะโดยใช้แบบฟอร์มด้านล่าง