Score:-2

ความซ้ำซ้อนกับหลายเซิร์ฟเวอร์บน DNS เดียวกัน

ธง sv

ฉันมีชื่อโดเมนเช่น api.test.com. ฉันยังมีเซิร์ฟเวอร์สามเครื่อง

ฉันต้องการความซ้ำซ้อนในระหว่างนั้น และถ้าเซิร์ฟเวอร์หนึ่งออฟไลน์ ชื่อโดเมน api.test.com จะไม่เปลี่ยนเส้นทางไป แต่สำหรับผู้อื่นเท่านั้น

ฉันพบว่าเราสามารถมีหลาย /AAAA บันทึกในชื่อโดเมนเดียวกัน แต่ไม่นับว่าคอมพิวเตอร์ ping หรือไม่ เพียงแค่สุ่มให้หนึ่งใน IP ทั้งหมดที่มี

ฉันจะทำอย่างไรให้มีความซ้ำซ้อนกับมัน ? ฉันควรหาเซิร์ฟเวอร์อื่นที่เปลี่ยนเส้นทางคำขอทั้งหมด เช่น พร็อกซี หรือไม่

Patrick Mevzek avatar
cn flag
DNS เพียงอย่างเดียวไม่สามารถให้บริการแทนที่เมื่อเกิดข้อผิดพลาดได้ ที่อยู่หลายแห่งให้โหลดบาลานซ์เท่านั้น
Nikita Kipriyanov avatar
za flag
@PatrickMevzek นั่นไม่เป็นความจริงทั้งหมด DNS มีข้อกำหนดบางประการสำหรับการเฟลโอเวอร์ในระเบียน SRV และ MXแต่ในบันทึกเหล่านั้นเท่านั้น
Elikill58 avatar
sv flag
จริงหรือ ? เยี่ยมมาก ฉันจะใช้กับหลาย IP ได้อย่างไร
cn flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [DNS แบบ Round-Robin "ดีพอ" สำหรับโหลดบาลานซ์เนื้อหาสแตติกหรือไม่](https://serverfault.com/questions/101053/is-round-robin-dns-good-enough-for-load-balancing-static- เนื้อหา)
Patrick Mevzek avatar
cn flag
@NikitaKipriyanov ใช่ แต่ OP กำลังพูดถึงประเภทการเข้าถึง HTTP./HTTPS และ 1) `MX` ไร้ประโยชน์ที่นั่นและ 2) `SRV` บันทึกด้วยเพราะเบราว์เซอร์ไม่ได้ใช้ และความล้มเหลวไม่ได้รวมอยู่ใน DNS สำหรับบันทึกเหล่านั้น เป็นเพราะไคลเอ็นต์กำลังจัดการพวกเขาในลักษณะเฉพาะเท่านั้น ขณะนี้กับบันทึก `HTTPS` / `SVCB` ในอนาคต สิ่งต่าง ๆ จะแตกต่างออกไป แต่ก็ยังขึ้นอยู่กับไคลเอนต์ การแทนที่เมื่อเกิดข้อผิดพลาดไม่ใช่คุณสมบัติภายในของ DNS มันสามารถเปิดเผยข้อมูลที่อาจใช้สำหรับสิ่งนั้นได้ แต่ขึ้นอยู่กับไคลเอ็นต์ทั้งหมด
Elikill58 avatar
sv flag
@TomTom หลังจากตรวจสอบก็ไม่ตอบอย่างสมบูรณ์ คำตอบของ Nikita อธิบายเพิ่มเติมเกี่ยวกับ DNS และเหตุใดเราจึงใช้ไม่ได้ และลิงก์ที่คุณให้ไว้มีวิธีแก้ปัญหาซึ่งดูเหมือนว่าจะเป็น [HAProxy](http://www.haproxy.org/)
Nikita Kipriyanov avatar
za flag
@TomTom ฉันยังอยากอ่านระหว่างบรรทัดและพิจารณาว่าสิ่งนี้ซ้ำกัน แต่ดูสิ ไม่มีคำถามใดที่พูดถึง HTTP(S) และเนื้อหาคงที่ แม้แต่ในแท็ก คำถามนี้เป็นคำถามที่มีสูตรที่ดีเกี่ยวกับ DNS นี่เป็น **ไม่** ซ้ำกับคำถามนั้น แต่เป็นคนละคำถามกัน
Score:1
ธง za

ไม่ นี่ไม่ใช่วิธีการทำงาน คุณสามารถกำหนดค่ามากกว่าหนึ่งระเบียนของประเภทและชื่อบางอย่างในโซน โดยทั่วไปแล้วลูกค้าไม่ทราบถึงสิ่งนั้น มันร้องขอชื่อและประเภทบางอย่าง (เช่น เบราว์เซอร์ขอชื่อที่คุณป้อนลงในช่องที่อยู่ ประเภท 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 เพื่อค้นหาเซิร์ฟเวอร์ ลูกค้าเว็บไม่เคยทำเช่นนี้

Elikill58 avatar
sv flag
ขอบคุณสำหรับคำตอบ. เหตุใด SRV จึงไม่สามารถช่วยเหลือในบริการเว็บได้หากเขาเลือก IP ที่ถูกต้องระหว่างอันที่ทำงานตามลำดับความสำคัญ ? MX สามารถช่วยฉันเกี่ยวกับบริการเว็บได้หรือไม่
Nikita Kipriyanov avatar
za flag
ฉันอธิบายไปแล้ว SRV ช่วยเฉพาะบริการที่ใช้บันทึก SRV จริง เว็บไคลเอนต์ไม่เคยสอบถามพวกเขาและไม่ใช้บันทึก SRV คุณสามารถสร้างบันทึกดังกล่าวได้ แต่จะไม่มีใครสังเกตเห็น แม้ว่า MX จะเป็นกรณีพิเศษของระเบียน SRV ซึ่งใช้สำหรับอีเมล (เพื่อค้นหา Mail eXchanger ของโดเมน ตำแหน่งที่จะส่งอีเมลสำหรับโดเมนนั้น)
Elikill58 avatar
sv flag
โอ้ ใช่ ขอบคุณ ฉันพลาดบางส่วนเพราะฉันใช้โทรศัพท์ ดังนั้นฉันจึงไม่สามารถใช้ DNS ได้และฉันต้องทำอย่างอื่นเช่นใช้พร็อกซีซึ่งเปลี่ยนเส้นทาง ?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา