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

ตั้งค่าเซิร์ฟเวอร์ DNS สำหรับแคชเท่านั้นโดยใช้ "Bind" ใน CentOS 6.5


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

อ่านเพิ่มเติม: ตั้งค่าเซิร์ฟเวอร์ DNS Master-Slave ใน CentOS 6.5

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

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

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

สภาพแวดล้อมการทดสอบของฉัน
IP Address	:	192.168.0.200
Host-name	:	dns.tecmintlocal.com
OS		:	Centos 6.5 Final
Ports Used	:	53
Config File	:	/etc/named.conf
script file	:	/etc/init.d/named

ขั้นตอนที่ 1: การติดตั้ง DNS แบบแคชเท่านั้น

1. DNS แบบแคชเท่านั้นสามารถติดตั้งได้โดยใช้แพ็คเกจ 'bind' ลองค้นหาชื่อแพ็คเกจเล็กน้อยหากเราจำชื่อแพ็คเกจเติมไม่ได้โดยใช้คำสั่งด้านล่าง

yum search bind

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

yum install bind bind-utils -y

ขั้นตอนที่ 2: กำหนดค่า DNS สำหรับแคชเท่านั้น

3. เมื่อติดตั้งแพ็คเกจ DNS แล้ว ให้ดำเนินการต่อเพื่อกำหนดค่า DNS เปิดและแก้ไขไฟล์ 'named.conf' โดยใช้โปรแกรมแก้ไขเป็นกลุ่ม

vim /etc/named.conf

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

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

  1. listen-on port 53 – ข้อความนี้บอกว่าเซิร์ฟเวอร์แคชต้องการใช้พอร์ต 53 สำหรับการสืบค้น
  2. allow-query – ระบุว่าที่อยู่ IP ใดที่อาจสอบถามเซิร์ฟเวอร์ ซึ่งฉันได้กำหนดไว้สำหรับ localhost จากทุกที่ที่ทุกคนสามารถส่งคำถามได้
  3. allow-query-cache – สิ่งนี้จะเพิ่มคำขอแบบสอบถามไปยังการเชื่อมโยง
  4. การเรียกซ้ำ – การดำเนินการนี้จะสอบถามคำตอบและส่งคืนให้กับเรา ในระหว่างการสืบค้น อาจส่งการสอบถามไปยังเซิร์ฟเวอร์ DNS อื่น ๆ ผ่านทางอินเทอร์เน็ต และดึงการสืบค้นกลับ

5. หลังจากแก้ไขไฟล์ เราต้องยืนยันว่าความเป็นเจ้าของไฟล์ 'named.conf' ไม่ได้เปลี่ยนจาก root:named หรือไม่ เนื่องจาก DNS ทำงานภายใต้ผู้ใช้ระบบ ชื่อ

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

6. หากเซิร์ฟเวอร์เปิดใช้งานด้วย selinux หลังจากแก้ไขไฟล์ 'named.conf' แล้ว เราจำเป็นต้องตรวจสอบบริบทของ selinux ไฟล์กำหนดค่าที่มีชื่อทุกไฟล์จะต้องอยู่ใน “ system_u:object_r:named_conf_t:s0” บริบทดังที่แสดงในภาพด้านล่าง

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

เอาล่ะ ที่นี่เราต้องทดสอบการกำหนดค่า DNS ตอนนี้เพื่อหาข้อผิดพลาดทางไวยากรณ์บางอย่าง ก่อนที่จะเริ่มบริการการเชื่อมโยง หากพบข้อผิดพลาดใดๆ สามารถตรวจสอบได้จาก /var/messages เช่นกัน

named-checkconf /etc/named.conf

หลังจากที่ผลการตรวจสอบไวยากรณ์ดูเหมือนจะสมบูรณ์แบบแล้ว ให้เริ่มบริการใหม่เพื่อให้มีผลกับการเปลี่ยนแปลงข้างต้น และให้บริการทำงานอย่างต่อเนื่องในขณะที่รีบูตเซิร์ฟเวอร์และยืนยันเหมือนเดิม

/etc/init.d/named restart
chkconfig named on
chkconfig --list named

7. จากนั้น เปิดพอร์ต 53 บนไฟร์วอลล์เพื่ออนุญาตการเข้าถึง

iptables -I INPUT -p udp --dport 53 -j ACCEPT

ขั้นตอนที่ 4: DNS แคชเฉพาะ Chroot

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

yum install bind-chroot -y

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

/etc/init.d/named restart

9. เมื่อคุณรีสตาร์ท Name Service มันจะสร้างฮาร์ดลิงก์จากไฟล์กำหนดค่า /etc/named ไปยัง /var/named/chroot/etc/ โดยอัตโนมัติ ไดเรกทอรี เพื่อยืนยัน เพียงใช้คำสั่ง cat ใต้ /var/named/chroot

sudo cat /var/named/chroot/etc/named.conf

ในการกำหนดค่าข้างต้น คุณจะเห็นการกำหนดค่า /etc/named.conf เดียวกัน เนื่องจากจะถูกแทนที่ขณะติดตั้งแพ็คเกจ bind-chroot

ขั้นตอนที่ 5: การตั้งค่า DNS ฝั่งไคลเอ็นต์

10. เพิ่มเซิร์ฟเวอร์แคช DNS IP 192.168.0.200 เป็นตัวแก้ไขให้กับเครื่องไคลเอนต์

ในเครื่องที่ใช้ Debian จะอยู่ภายใต้ /etc/resolv.conf และในเครื่องที่ใช้ RPM จะอยู่ภายใต้คำสั่ง setup หรือเราสามารถแก้ไขได้ ด้วยตนเองภายใต้ไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0

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

ลองค้นหา 'facebook.com' เป็นครั้งแรก เพื่อที่มันจะแคชข้อความค้นหาของมัน

dig facebook.com

dig facebook.com

ใช้คำสั่ง 'nslookup' เพื่อยืนยันสิ่งเดียวกัน

nslookup facebook.com

หากต้องการอ่านเพิ่มเติมเกี่ยวกับตัวอย่างและการใช้งานคำสั่ง dig และ nslookup ให้ใช้ลิงก์ต่อไปนี้

  1. 8 คำสั่ง nslookup และการใช้งาน
  2. 10 คำสั่งขุดและการใช้งาน

ที่นี่เราได้เห็นว่าเราตั้งค่าเซิร์ฟเวอร์แคช DNS อย่างเดียวได้สำเร็จเพียงใดโดยใช้แพ็คเกจผูก และยังรักษาความปลอดภัยโดยใช้แพ็คเกจ chroot