สิ่งที่ฉันไม่เข้าใจคือเหตุใดฉันจึงต้องใช้ทั้งตัวแก้ไข DNS และเซิร์ฟเวอร์ DNS
นี่ไม่ใช่ความแตกต่างที่คุณควรยึดถือ
ความแตกต่างที่สำคัญในเซิร์ฟเวอร์ DNS อยู่ระหว่าง:
- เนมเซิร์ฟเวอร์ที่มีสิทธิ์
- เนมเซิร์ฟเวอร์แบบเรียกซ้ำ
(และคุณสามารถค้นหาตัวแก้ไข "stub" อื่น ๆ และชุดค่าผสมได้ โปรดดู RFC 8499 สำหรับคำจำกัดความทั้งหมด)
เนมเซิร์ฟเวอร์ที่มีสิทธิ์มีข้อมูลเต็มรูปแบบในโซนตั้งแต่หนึ่งโซนขึ้นไป (และโดยทั่วไปแล้ว โซนจะมีเนมเซิร์ฟเวอร์ที่มีสิทธิ์มากกว่าสองโซนและบางครั้งอาจมากกว่าสำหรับการทำโหลดบาลานซ์/ล้มเหลว)
เนมเซิร์ฟเวอร์แบบเรียกซ้ำไม่มีข้อมูลโดยทั่วไป (เมื่อเริ่มต้น) และจะทำการสืบค้นในนามของลูกค้า และเรียกซ้ำเพื่อติดตามการมอบสิทธิ์และระเบียน CNAME ทั้งหมดจนกว่าจะพบข้อผิดพลาดหรือคำตอบสำหรับการสืบค้นของไคลเอ็นต์
เนมเซิร์ฟเวอร์แบบเรียกซ้ำที่คุณใช้ (ไม่ว่าจะในกล่องของคุณ หรือ ISP ของคุณ หรือเซิร์ฟเวอร์ระยะไกล เช่น Google Public DNS หรือ Cloudflare หรืออื่นๆ) ทราบเกี่ยวกับเนมเซิร์ฟเวอร์รูท และจะติดต่อพวกเขาเพื่อรับข้อมูลเกี่ยวกับเนมเซิร์ฟเวอร์ TLD และอื่นๆ และอื่น ๆ เพื่อแก้ไขชื่อที่คุณต้องการในที่สุด
เนมเซิร์ฟเวอร์ที่มีสิทธิ์แต่ละรายการจะมีข้อมูลสำหรับโซนที่ดูแลเท่านั้น หากคุณสอบถามเพื่อสิ่งอื่น อาจปฏิเสธที่จะตอบกลับ (ตอบกลับที่ระดับ DNS ด้วยรหัส REFUSED) หรือตอบกลับด้วยการมอบสิทธิ์เพื่อแจ้งให้คุณทราบว่าคุณ (คุณในที่นี้คือเนมเซิร์ฟเวอร์แบบเรียกซ้ำที่ทำการค้นหา) ควรติดต่อผู้อื่น เนมเซิร์ฟเวอร์ที่มีสิทธิ์
"ตัวแก้ไข DNS" และ "เซิร์ฟเวอร์ DNS" ไม่ชัดเจน "ตัวแก้ไข DNS" ยังเป็น "เซิร์ฟเวอร์ DNS" ในแง่ที่รันซอฟต์แวร์ "DNS" ที่ทำหน้าที่เป็นเซิร์ฟเวอร์ (รับข้อความค้นหาและตอบกลับ) DNS ได้รับการออกแบบมาเพื่อให้ใช้พอร์ตเดียวกัน (53) สำหรับทั้งการดำเนินการที่เชื่อถือได้และเรียกซ้ำ ซึ่งทำให้เกิดความสับสน (ในการตั้งชื่อ ไม่มีปัญหาสำหรับคอมพิวเตอร์)
ซอฟต์แวร์เนมเซิร์ฟเวอร์บางตัวได้รับอนุญาตจากการออกแบบเท่านั้น (เช่น NSD, Yadifa, KnotDNS) บางตัวเรียกซ้ำได้เท่านั้น (เช่น Unbound) และบางตัวสามารถกำหนดค่าในโหมดใดโหมดหนึ่ง (เช่น: Bind, PowerDNS) แม้ว่าจะไม่แนะนำให้ผสมกันก็ตาม ทั้งสองโหมดการทำงานในกระบวนการเดียวกัน
RFC 8499 เป็นแหล่งข้อมูลและการอ่านที่แนะนำ