ไลบรารีไคลเอ็นต์ DNS ทำ
ไลบรารี C ประกอบด้วยไคลเอนต์ DNS ที่รวมการค้นหาแบบชื่อ - ที่อยู่ในโปรโตคอล DNS และส่งไปยังพร็อกซีเซิร์ฟเวอร์ DNS เพื่อทำงานทั้งหมดของการแก้ปัญหาแบบสอบถาม มีไคลเอ็นต์ DNS เหล่านี้จำนวนมาก สิ่งที่อยู่ในไลบรารีรันไทม์ C หลักของระบบปฏิบัติการของคุณนั้นน่าจะมาจาก BIND ของ ISC แต่มีคนอื่นมากมายจากdns
ห้องสมุดของ Daniel J. Bernstein ผ่าน c-ares ไปสู่ adns
แม้ว่าหลายคนมีกลไกการกำหนดค่าดั้งเดิมของตนเอง แต่โดยทั่วไปจะมีโหมดความเข้ากันได้ของไลบรารี BIND ที่พวกเขาอ่านresolv.conf
ซึ่งเป็นไฟล์กำหนดค่าสำหรับไลบรารีไคลเอ็นต์ BIND C ของ ISC
nsswitch.conf
เอ็นเอสเป็นชั้นบนนี้และจะเป็นผู้กำหนด สิ่งหนึ่งที่การค้นหา NSS สามารถเรียกใช้ภายในได้คือไคลเอนต์ DNS และnsswitch.conf
อ่านโดยรหัส NSS ในไลบรารี C เพื่อตรวจสอบว่ามีการส่งการค้นหาไปยังไคลเอนต์ DNS หรือไม่และจัดการกับคำตอบที่หลากหลายได้อย่างไร
(มีความซับซ้อนเล็กน้อยจากแนวคิดนี้ที่เกิดจาก Name Services Cache Dæmon, nscd แต่เพียงเพิ่มไคลเอ็นต์ชั้นบนพิเศษในไลบรารี C ซึ่งพูดโปรโตคอล idiosyncratic ไปยังเซิร์ฟเวอร์ท้องถิ่นซึ่งจะทำหน้าที่เป็น ไคลเอ็นต์ DNS พูดโปรโตคอล DNS ไปยังเซิร์ฟเวอร์ DNS พร็อกซี systemd-resolved
เพิ่มภาวะแทรกซ้อนที่คล้ายกัน)
systemd-resolved
, NetworkManager
, connman
, dhcpcd
, resolvconf
และอื่น ๆ ปรับการตั้งค่าไฟล์ลูกค้าห่วง DNS ให้กับลูกค้าของสวิทช์ DNS ที่จะพูดคุยกับพร็อกซีเซิร์ฟเวอร์ DNS ที่แตกต่างกันเกี่ยวกับการบิน นี่อยู่นอกขอบเขตสำหรับคำตอบนี้โดยเฉพาะอย่างยิ่งเนื่องจากมีคำตอบมากมายในไซต์ WWW นี้ที่จัดการกับรายละเอียดไบเซนไทน์ที่กลไกดังกล่าวเกี่ยวข้องแล้ว
วิธีดั้งเดิมในการทำสิ่งต่าง ๆ ในโลกของ Unix ก็คือการเรียกใช้พร็อกซีเซิร์ฟเวอร์ DNS ทั้งบนตัวเครื่องหรือบน LAN ดังนั้นสิ่งที่คู่มือ FreeBSD กล่าวเกี่ยวกับระบบที่มีการกำหนดค่าตามปกติซึ่งการดำเนินการเริ่มต้นของไลบรารีไคลเอนต์ DNS ในกรณีที่ไม่resolv.conf
ตรงกับสิ่งที่ผู้ดูแลระบบ Unix ปกติมีอยู่ซึ่งเป็นเซิร์ฟเวอร์ DNS พร็อกซีที่รับฟัง 127.0.0.1 (คู่มือ FreeBSD สำหรับresolv.conf
เป็นจริง doco ที่ยังมาจาก ISC ของห่วงและสามารถของหลักสูตรยังพบได้ที่ห้องสมุดลูกค้าห่วง DNS ได้รับการจดทะเบียนเป็นสถานที่อื่น ๆ เช่นห้องสมุด GNU C.)
อ่านเพิ่มเติม