เป็นไปได้ไหมที่ชื่อโดเมนหนึ่งมีที่อยู่ IP ที่เกี่ยวข้องหลายรายการ


89

ตัวอย่างเช่นเมื่อเราเชื่อมต่อกับตอนแรกเราพยายามที่จะเชื่อมต่อไปยังwww.example.com และถ้าลองครั้งแรกล้มเหลวแล้วเราพยายาม192.0.2.1192.0.2.222

เป็นไปได้ไหม? เราสามารถลงทะเบียนที่อยู่ IP สำรองหลายรายการสำหรับชื่อโดเมนเดียวได้หรือไม่?


มันจะไม่ได้ผลอย่างแน่นอน (กับ Round-Robin) หากคุณสอบถามโฮสต์หลายครั้งระบบจะให้ IP-s ที่แตกต่างกันกลับมาทุกครั้งที่คุณทำการสืบค้นไม่ใช่เฉพาะเมื่อโฮสต์ล้มเหลว
karatedog

@karatedog ฉันสมมติว่าการเชื่อมต่อซ็อกเก็ตจะพยายามเชื่อมต่อกับ IP ถัดไปหากไม่สามารถเชื่อมต่อกับอันแรกได้
Akash Kava

4
@AkashKava: การเชื่อมต่อเดียวมีขั้นตอนภายในหลายขั้นตอน ประยุกต์: แอปพลิเคชันสอบถาม DNS และรับที่อยู่ IP จากนั้นจะเชื่อมต่อกับที่อยู่ IP นั้น หากการเชื่อมต่อล้มเหลวแอปพลิเคชันจะไม่กลับไปที่ขั้นตอนแรกและค้นหา DNS อีกครั้งเฉพาะในกรณีที่มีการเข้ารหัสอย่างชัดเจนเพื่อดำเนินการนี้ และการค้นหาเซิร์ฟเวอร์ DNS หลายครั้งไม่จำเป็นต้องให้ที่อยู่ IP ที่แตกต่างกัน ดังนั้นในระยะสั้น DNS สต็อคจึงไม่สามารถใช้เพื่อวัตถุประสงค์ในการโหลดบาลานซ์ได้
karatedog

เราสามารถใช้เทคนิคนี้เพื่อปรับขนาดโหลดบาลานเซอร์หลาย ๆ ตัวได้หรือไม่
Vikas Verma

คำตอบ:


65

นี่คือ Round robin DNS นี่เป็นวิธีที่ค่อนข้างง่ายสำหรับการทำโหลดบาลานซ์ โดยปกติเซิร์ฟเวอร์ DNS จะหมุน / สับเปลี่ยนระเบียน DNS สำหรับคำขอ DNS ที่เข้ามาแต่ละรายการ น่าเสียดายที่ไม่ใช่วิธีแก้ปัญหาที่แท้จริงสำหรับความล้มเหลว หากเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งล้มเหลวผู้เยี่ยมชมบางรายจะยังคงถูกส่งไปยังเซิร์ฟเวอร์ที่ล้มเหลวนี้


3
ขึ้นอยู่กับความคาดหวังของคุณเกี่ยวกับเวลาในการฟื้นตัว หากบริการที่ให้ไว้สามารถหยุดทำงานได้ในเวลาไม่กี่วินาทีหรือหลายนาทีคุณสามารถอัปเดต DNS ได้ตามนั้น (เช่นนำ IP ของระบบที่ล้มเหลวออก) หากสิ่งนี้ไม่เป็นที่ยอมรับ DNS ไม่สามารถช่วยคุณได้และคุณต้องใช้ตัวจัดสรรภาระงานและโครงสร้างเครือข่ายที่มีความพร้อมใช้งานสูง
Jens Bradler

คุณรู้หรือไม่ว่าลูกค้าเลือก ip จากรายการอย่างไร? เป็นการเลือกแบบสุ่มหรือลูกค้าควรเลือกรายการแรก? เนื่องจากในกรณีแรกรอบ / โรบินจะไม่มีประโยชน์มากนัก
Tobia

เป็นหน้าที่ของเซิร์ฟเวอร์ DNS ในการสับเปลี่ยนหรือหมุนระเบียน ไคลเอนต์ส่วนใหญ่จะใช้เฉพาะระเบียนแรก ตัวอย่างเช่น Bind9 สามารถกำหนดค่าให้ใช้ลำดับที่แตกต่างกันกับชุดระเบียนประเภทนี้: bind.isc.org/doc/arm/9.13/Bv9ARM.ch05.html#rrset_ordering
Jens Bradler

เราสามารถใช้เทคนิคนี้เพื่อปรับขนาดโหลดบาลานเซอร์หลาย ๆ ตัวได้หรือไม่
Vikas Verma

48

คุณสามารถทำมันได้. นั่นคือสิ่งที่พวกใหญ่ทำเช่นกัน

คำถามแรก:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

คำถามถัดไป:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

อย่างที่คุณเห็นรายการ IP จะหมุนไปรอบ ๆ แต่ลำดับสัมพัทธ์ระหว่างสอง IP ยังคงเหมือนเดิม

อัปเดต: ฉันเห็นความคิดเห็นหลายรายการที่คุยโวว่า DNS round-robin ไม่สะดวกสำหรับการล้มเหลวดังนั้นนี่คือบทสรุป: DNS ไม่ได้มีไว้สำหรับการล้มเหลว ดังนั้นเห็นได้ชัดว่าไม่ดีสำหรับความล้มเหลว ไม่เคยถูกออกแบบมาเพื่อแก้ปัญหาสำหรับความล้มเหลว


1
เราต้องเปิดใช้งานบางอย่างเพื่อให้ Round Robin นี้ทำงานได้หรือเซิร์ฟเวอร์ DNS ทุกตัวจะทำโดยอัตโนมัติ ฉันมี linux หนึ่งตัวและ MS DNS หนึ่งตัว
Akash Kava

3
เหตุใด Google จึงทำเช่นนี้หากไม่ครอบคลุมกรณีเฟลโอเวอร์
Joseph Persie

12
@JosephPersie: เนื่องจาก DNS ไม่ได้ใช้สำหรับความล้มเหลว การให้หลาย ๆ ไอพีกับชื่อโดเมนเดียวกันการร้องขอที่เข้ามาจะถูกแยกระหว่างเซิร์ฟเวอร์ที่รับฟังที่อยู่ IP เหล่านั้น คิดว่าเป็นการจัดสรรภาระงานระดับแรกโดยไม่ต้องตรวจสอบประสิทธิภาพการทำงานของแบ็กเอนด์ คุณไม่จำเป็นต้องใช้สิ่งนี้หากคุณไม่มีเซิร์ฟเวอร์หลายพันเครื่อง :-)
karatedog

จะเกิดอะไรขึ้นเมื่อตัวจัดสรรภาระงานหยุดทำงานและคำขอถูกส่งต่อไปยังตัวจัดสรรภาระงานเดียวกัน
Jitendra Vispute

1
@JitendraVispute: DNS ไม่ทราบเกี่ยวกับบริการที่อยู่เบื้องหลังที่อยู่ IP ที่ส่งคืน กล่าวโดยสรุปคือหากมีเซิร์ฟเวอร์เสียหรือบริการที่ไม่สมบูรณ์อยู่เบื้องหลังที่อยู่ IP ที่เพิ่งส่งคืนโดยเซิร์ฟเวอร์ DNS คำขอไปยัง IP นั้นจะล้มเหลว
karatedog

2

ใช่เป็นไปได้ แต่ไม่สะดวกอย่างที่ Jens กล่าว การใช้โหลดบาลานเซอร์รุ่นใหม่เช่น Alteon ซึ่งใช้โปรโตคอลที่เป็นกรรมสิทธิ์ที่เรียกว่าDSSP (Distributed site state Protocol) ซึ่งทำการตรวจสอบไซต์เป็นประจำเพื่อให้แน่ใจว่าบริการนั้นพร้อมใช้งานทั้งในพื้นที่หรือทั่วโลกเช่นพื้นที่ทางภูมิศาสตร์ที่แตกต่างกัน อย่างไรก็ตามคุณต้องอยู่ใน Master DNS ของคุณเพื่อมอบสิทธิ์ URL หรือบริการให้กับอุปกรณ์โดยกำหนดค่าเป็นเซิร์ฟเวอร์ชื่อที่เชื่อถือได้สำหรับ IP หรือบริการนั้น เมื่อทำเช่นนี้อุปกรณ์จะตอบคำถาม DNS ซึ่งจะแก้ไข IP ที่มีบริการโดยRound-Robinหรือไม่ได้รับการคัดกรองตามวิธีที่คุณเลือกจากเมตริกต่างๆ


1
สิ่งนี้ดูเหมือนโฆษณามากกว่าสิ่งใด ๆ และตัวจัดสรรภาระงานไม่ใช่นักแสดงที่เป็นตัวเอกในโลก DNS (ในแง่ของข้อกำหนด) และเพื่อความแม่นยำ: "ใน DNS หลักของคุณเพื่อมอบสิทธิ์ URL หรือบริการ" ไม่มีแนวคิดของ URL หรือบริการในเนมเซิร์ฟเวอร์ / DNS เมื่อคุณมอบหมายคุณมอบหมายโซน (โดเมน) ให้กับเซิร์ฟเวอร์ชื่ออื่น "เป็นเซิร์ฟเวอร์ชื่อที่เชื่อถือได้สำหรับ IP หรือบริการนั้น" ดังนั้นเนมเซิร์ฟเวอร์จึงมีสิทธิ์สำหรับโซน / โดเมนไม่ใช่สำหรับที่อยู่ IP หรือบริการ
Patrick Mevzek

จากจุดทำงานของมันพวกเขาทำงานมันเป็นมาตรฐานโดยพฤตินัยสำหรับ CDN ทั้งหมดในการใช้ตัวโหลดบาลานซ์เพื่อจัดการสิ่งนี้ได้อย่างมีประสิทธิภาพเนื่องจากพวกเขาสามารถรวมคุณสมบัติขั้นสูงเช่น GEO-LOCATION เพื่อให้ที่อยู่ IP ที่อยู่ใกล้คุณหรือ สำหรับเซิร์ฟเวอร์ที่ตอบสนองสูงท่ามกลางเมตริกอื่น ๆ
Ezra A.Mosomi

1
และพวกเขาแนะนำปัญหามากมายในเวลาเดียวกัน ไม่มีกระสุนเงินทุกอย่างมีคุณสมบัติและข้อเสีย เนมเซิร์ฟเวอร์ใด ๆ สามารถระบุตำแหน่งทางภูมิศาสตร์และตอบกลับด้วย IP ที่แตกต่างกันตามไคลเอนต์โดยไม่จำเป็นต้องใช้โหลดบาลานเซอร์สำหรับสิ่งนั้น ยังมีมาตรฐานที่ช่วย: EDNS Client Subnet
Patrick Mevzek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.