Domain-Name-DNS-Lookupใน Linux การตั้งค่า DNS ในไฟล์ /etc/resolve.conf ไว้หลายเครื่อง ก็หมายถึงการตั้งค่า primary dns, secondary dns … นั้นเอง และเมื่อ primary dns เกิดใช้งานไม่ได้ ระบบจะไปใช้งาน secondary dns แทน แต่ระยะเวลาที่จะเปลี่ยนไปใช้งาน secondary dns จะใช้เวลาประมาณ 5 วินาที (โดย default) ซึ่งก็คือระบบจะต้องรอให้เกิด timeout ก่อนถึงจะเริ่มใช้งาน secondary dns ดังนั้นหากเกิดปัญหาขึ้นจริงจะทำให้ระบบที่ใช้งาน dns ในการ lookup จะมีการใช้งานที่ช้ากว่าความเป็นจริง

ในบทความนี้จะมาแนะนำวิธีการ improve DNS lookup สำหรับระบบที่มี nameserver มากกว่า 1 เครื่อง และช่วยแก้ไขปัญหาเมื่อเกิด primary dns เกิดใช้งานไม่ได้

วิธีการเพิ่มประสิทธิภาพ DNS lookup

แก้ไขไฟล์ /etc/resolv.conf โดยให้เพิ่ม option ด้านล่างเข้าไป

[shell]options rotate
options timeout:1 attempts:5
options single-request-reopen[/shell]

ความหมายคือ จะเวียนใช้งาน nameserver ทุกตัว และกำหนด wait time = 1 วินาที ถ้าหากเกินจะไปถาม nameserver เครื่องต่อไป และบังคับให้ใช้ socket เดียวในการสอบถามทั้ง A และ AAAA record

* อย่างไรก็ดีการแก้ไขด้วยวิธีนี้ก็อาจจะยังมีปัญหากับระบบที่ต้องการความรวดเร็วในการ lookup ดังนั้นวิธีแก้ไขปัญหาอาจจะใช้วิธีอื่นนอกเหนือจากนี้ควบคู่ไปด้วยเช่น

  1. ใช้ระบบ cluster (load balance หรือ HA) เข้าช่วย
  2. เปลี่ยนลำดับ nameserver บน ไฟล์ resolv.conf