ไม่ นี่ไม่ใช่วิธีการทำงาน คุณสามารถกำหนดค่ามากกว่าหนึ่งระเบียนของประเภทและชื่อบางอย่างในโซน โดยทั่วไปแล้วลูกค้าไม่ทราบถึงสิ่งนั้น มันร้องขอชื่อและประเภทบางอย่าง (เช่น เบราว์เซอร์ขอชื่อที่คุณป้อนลงในช่องที่อยู่ ประเภท A, AAAA)
หากมีการส่งคืนเรคคอร์ดมากกว่าหนึ่งเรคคอร์ด ระบบจะเลือกเรคคอร์ดหนึ่งโดยการสุ่มและพยายามเชื่อมต่อที่นั่น ขึ้นอยู่กับไคลเอนต์ที่จะลองเชื่อมต่อกับเรกคอร์ดอื่นอีกครั้งหากมีอยู่ นอกจากนี้ เซิร์ฟเวอร์ยังส่งเสริมพฤติกรรมนี้ด้วยการตอบคำถามเดียวกันโดยเรียงลำดับเรกคอร์ดต่างกันในแต่ละครั้ง ดังนั้นแม้ว่าไคลเอนต์บางคนจะ "เลือกคนแรกเสมอ" การสุ่มบนเซิร์ฟเวอร์ก็ยังคงเกิดขึ้น ด้วยวิธีนี้ทำให้ได้รูปแบบดั้งเดิมของการทำโหลดบาลานซ์
ตัวจัดสรรภาระงาน DNS พิเศษส่งคืนระเบียน A ที่มี TTL ต่ำมาก ดังนั้นจึงหมดอายุอย่างรวดเร็ว เซิร์ฟเวอร์จึงสามารถตอบสนองได้อย่างรวดเร็วต่อโหลดที่เพิ่มขึ้นอย่างกะทันหัน หรือการหยุดทำงานของโหนดส่วนหลัง โดยละเว้นที่อยู่จากการตอบกลับคุณจะเห็นการดำเนินการนี้หากคุณพยายามแก้ไขเซิร์ฟเวอร์การประชุมทางวิดีโอของ Zoom พวกเขาใช้เทคโนโลยีนี้ แต่นั่นต้องใช้ซอฟต์แวร์พิเศษนี้ ซึ่งเป็นตัวจัดสรรภาระงาน DNS เพื่อจัดการ DNS สำหรับชื่อนี้ และนี่เป็นเพียงจุดเริ่มต้นของเรื่องราว
โดยทั่วไป หากลอง IP ครั้งแรกที่ได้รับจากระเบียน A แล้วไม่มีการตอบสนอง เว็บไคลเอ็นต์มักจะส่งคืนความล้มเหลว แม้ว่าจะมี IP อื่นให้ลองก็ตาม มีซอฟต์แวร์ที่สามารถลองใหม่อีกครั้งได้ เช่น OpenVPN สามารถลองใหม่ได้ไม่จำกัด แต่นี่เป็นกรณีพิเศษ
DNS จัดเตรียมความซ้ำซ้อนด้วยกลไกที่แตกต่างไปจากเดิมอย่างสิ้นเชิง โดยคาดหวังให้ไคลเอ็นต์ฉลาดพอ มีระเบียน DNS ชนิดพิเศษที่เรียกว่า เอส.อาร์.วี (บริการ) ซึ่งมี 4 ฟิลด์ข้อมูล: ลำดับความสำคัญ น้ำหนัก พอร์ต ชื่อ
ชื่อที่ง่ายที่สุด: ชื่อของเรกคอร์ด A เรกคอร์ด SRV นี้อธิบาย พอร์ตคือพอร์ต TCP หรือ UDP ที่บริการที่ร้องขออยู่บนเซิร์ฟเวอร์ชื่อนั้น ต้องเป็นชื่อที่มีบันทึก A หรือ AAAA ที่เกี่ยวข้อง ไม่อนุญาตให้ใช้ CNAME หากมีระเบียน A หรือ AAAA มากกว่าหนึ่งรายการในชื่อนั้น เราจะมีลักษณะการทำงาน DNS "ลองครั้งเดียว" ตามปกติสำหรับระเบียน SRV เฉพาะนี้ (แต่ไคลเอ็นต์ควรลองใช้ระเบียน SRV อื่นๆ หากมี เช่น ด้วยค่าที่มีลำดับความสำคัญสูงกว่า)
น้ำหนักทำให้สามารถควบคุมโหลดบาลานซ์ได้ลึกมากขึ้น: ถ้ามีหลายเรคคอร์ดที่มีลำดับความสำคัญเท่ากัน ลูกค้าควรพยายามกระจายโหลดตามน้ำหนัก มักจะทำด้วยความน่าจะเป็น
ลำดับความสำคัญมีไว้สำหรับความซ้ำซ้อน: ต้องพยายามบันทึกแรกที่มีค่าต่ำสุด จากนั้นจึงจัดลำดับความสำคัญถัดไปและอื่นๆ แต่อีกครั้ง การลองใหม่ขึ้นอยู่กับลูกค้า
บันทึกมีลักษณะดังนี้:
_kerberos._tcp.example.net. SRV 0 100 88 dc.example.net
ขีดล่างเป็นขีดล่างตามตัวอักษรจริงๆ ในชื่อเรกคอร์ด มันบอกว่าบริการ "kerberos" ให้บริการผ่าน TCP ที่พอร์ต dc.example.net 88 dc.example.net ต้องเป็นระเบียน A หรือ AAAA ตัวอย่างนี้มาจาก MS Active Directory ซึ่งอาศัย DNS อย่างมากสำหรับการดำเนินการที่เหมาะสม และใช้สำหรับ ldap (ไดเร็กทอรี) และ kerberos (กรอบความปลอดภัย)หากคุณมีตัวควบคุมโดเมน AD มากกว่าหนึ่งตัว จะมีเรกคอร์ดดังกล่าวมากขึ้น โดยชี้ไปที่ DC ต่างๆ
บันทึกประเภทนี้ใช้สำหรับเช่น ldap, kerberos, kpasswd (เปลี่ยนรหัสผ่าน kerberos), xmpp (jabber), sip (โทรศัพท์ ip) และ อื่น ๆ บริการ.
เอ็มเอ็กซ์ เป็นเหมือน "กรณีพิเศษของ SRV" ซึ่งเชื่อมโยงกับพอร์ต 25 และมีเพียงฟิลด์ "ลำดับความสำคัญ" โดยไม่มี "น้ำหนัก" เป็นเพียง "รูปแบบเก่า" ซึ่งคิดค้นขึ้นก่อน SRV (และเป็นแรงบันดาลใจ) และใช้สำหรับอีเมลเท่านั้น
SRV ไม่สามารถช่วยคุณเกี่ยวกับบริการบนเว็บได้ ช่วยเฉพาะบริการที่ไคลเอนต์รู้จักใช้บันทึก SRV เพื่อค้นหาเซิร์ฟเวอร์ ลูกค้าเว็บไม่เคยทำเช่นนี้