เราใช้เซิร์ฟเวอร์ DNS ของ Windows 2016+ เราพึ่งพา LocalNetPriority บนเซิร์ฟเวอร์ DNS ของเรา เรามีเซิร์ฟเวอร์ DNS ของ Active Directory หลายตัวในหลายไซต์ ลักษณะการทำงานที่คาดไว้คือเมื่อทำการสืบค้นเฉพาะกับเซิร์ฟเวอร์ DNS จะส่งคืนที่อยู่ IP ที่อยู่ในเครือข่ายย่อยเดียวกับที่การสืบค้นเริ่มต้น หากมีระเบียน A หลายรายการสำหรับโฮสต์เดียวกัน วิธีนี้ใช้ได้ดีในกรณีส่วนใหญ่
อย่างไรก็ตาม สำหรับคำขอที่มาจากเซิร์ฟเวอร์ DNS เอง จะไม่ทำงาน ขั้นแรก เซิร์ฟเวอร์ DNS (หรือ Active Directory) โดยค่าเริ่มต้น จะกำหนดค่าอินเทอร์เฟซเครือข่ายเพื่อใช้ตัวเองเป็นเซิร์ฟเวอร์ DNS ที่เลือกผ่าน localhost (127.0.0.1 และ ::1) สิ่งนี้ทำให้การเลือก LocalNetPriority ล้มเหลวเนื่องจากที่อยู่ IP ต้นทางไม่ได้อยู่ในเครือข่ายย่อยของเรา
ประการที่สอง เซิร์ฟเวอร์เลือกใช้ IPv6 มากกว่า IPv4 เราไม่ได้ใช้ IPv6 แต่ก็ไม่ต้องการปิดใช้งานเช่นกัน เนื่องจากก่อนหน้านี้ทำให้เกิดปัญหาอย่างชัดเจนในสถานการณ์ต่างๆ และ Microsoft อ้างว่าเป็นข้อบังคับและไม่สนับสนุนหรือแนะนำให้ปิดใช้งาน การใช้ IPv6 นั้นเป็นไปไม่ได้
ในที่สุดสิ่งนี้จะต้องทำงานเมื่อมีการหยุดชะงักของเครือข่าย ข้อกำหนดเฉพาะนี้ต้องการให้ localnetpriority ทำงานอย่างถูกต้องเมื่อตำแหน่งของดาวเทียมถูกตัดขาดจากส่วนที่เหลือของเครือข่าย ดังนั้น การใช้ตัวแก้ไข DNS แบบเพียร์เป็นเซิร์ฟเวอร์หลักจึงไม่เป็นไปตามข้อกำหนดนี้เพียงอย่างเดียว
ดูเหมือนว่าการตั้งค่า IPv4 ให้มีความสำคัญเหนือ IPv6 และการกำหนดค่าที่อยู่ IP จริงของเซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ DNS ที่เลือก อาจเป็นทางออกเดียว อย่างไรก็ตาม ฉันเรียนรู้มานานแล้วว่าการใช้ 127.0.0.1 เป็นตัวเลือกที่ดีที่สุด เพราะระหว่างการรีบูตหรือหากไม่ได้เสียบสายเครือข่าย ไดเร็กทอรีที่ใช้งานอยู่อาจขาดออกจากกันโดยสิ้นเชิง
ฉันพลาดอะไรไป มีวิธีแก้ไขปัญหานี้โดยตรงหรือไม่? บางทีฉันควรเพิ่มรายการไฟล์ HOSTS สำหรับโฮสต์เฉพาะที่เรามีปัญหาด้วย