ใครสามารถอธิบายได้ว่าชื่อโฮสต์สองชื่อสามารถใช้ที่อยู่ IP เดียวกันร่วมกันได้หรือไม่
และถ้าชื่อโฮสต์หนึ่งชื่อแสดงที่อยู่ IP มากกว่าหนึ่งที่อยู่ก็จะเป็นไปได้เช่นกัน? ทำไม?
ใครสามารถอธิบายได้ว่าชื่อโฮสต์สองชื่อสามารถใช้ที่อยู่ IP เดียวกันร่วมกันได้หรือไม่
และถ้าชื่อโฮสต์หนึ่งชื่อแสดงที่อยู่ IP มากกว่าหนึ่งที่อยู่ก็จะเป็นไปได้เช่นกัน? ทำไม?
คำตอบ:
การกำหนดที่อยู่ IP มากกว่าหนึ่งรายการให้กับชื่อโฮสต์หนึ่งยังเป็นไปได้:
rr.example.com. A 192.0.2.12
rr.example.com. A 192.0.2.23
rr.example.com. A 192.0.2.34
rr.example.com. A 192.0.2.45
เมื่อคุณสอบถามเซิร์ฟเวอร์ DNS rr.example.com
คุณจะได้รับรายการที่อยู่ IP กลับมา จากนั้นคุณสามารถเลือกที่จะเชื่อมต่อกับหนึ่งในนั้น หากความพยายามครั้งแรกในการเชื่อมต่อถูกปฏิเสธอย่างแข็งขันให้ลองทำสิ่งต่อไปนี้
เบราว์เซอร์ส่วนใหญ่จะติดตามโฟลว์นี้ตราบใดที่อุปกรณ์ปลายทางปฏิเสธการเชื่อมต่อ TCP อย่างแข็งขัน หากหมดเวลาของจุดสิ้นสุดแหล่งข้อมูล ress จะไม่สามารถเข้าถึงได้แม้ว่า IP ทั้งหมดจะไม่ได้รับการลองก็ตาม
เนื่องจากแอปพลิเคชันส่วนใหญ่ (รวมเบราว์เซอร์) มักจะสนใจเพียง 1 IP endpoint ในแต่ละครั้งและเพียงเลือกคำตอบแรกที่มีอยู่คุณจึงเสี่ยงต่อการโหลดระหว่างเซิร์ฟเวอร์เป้าหมายเพื่อให้เซิร์ฟเวอร์แรกได้รับการรับส่งข้อมูลทั้งหมดในขณะที่อื่น ๆ .
เพื่อหลีกเลี่ยงปัญหานี้เซิร์ฟเวอร์ DNS ส่วนใหญ่จะเสนอสิ่งที่เรียกว่าการกำหนดค่า Round Robin ทำให้เซิร์ฟเวอร์สลับลำดับที่ส่งคืนระเบียนที่ตรงกันอย่างเท่าเทียมกัน ก่อนที่จะโหลดบาลานเซอร์เป็นเรื่องธรรมดานี่เป็นวิธีที่มีประสิทธิภาพในการโหลดบาลานซ์และใช้ความทนทานต่อความผิดปกติในระบบเครือข่าย
ใช่เป็นไปได้ที่ชื่อโฮสต์หลายชื่อจะใช้ที่อยู่ IP เดียวกันแนวทางปฏิบัติที่ดีที่สุดคือการใช้ระเบียน CNAME เพื่อชี้ไปที่ระเบียน A
bar.example.com. CNAME foo.example.com.
foo.example.com. A 192.0.2.23
จดบันทึกการหยุดทั้งหมด
การมีชื่อโฮสต์หนึ่งชื่อเพื่อแทนหลาย ๆ ที่อยู่ ip นั้นซับซ้อนกว่าเล็กน้อย หากเรากำลังพูดถึงเรคคอร์ด MX การแก้ปัญหานี้มีอยู่แล้วใน DNS โดยใช้หมายเลขลำดับความสำคัญหากคุณต้องการให้มันแทนหลายเรคคอร์ด A คุณควรใช้ load balancer, HAProxy
A
บันทึกที่มี IP เดียวกันสามารถปรากฏในโซนที่แตกต่างกันเช่นและx.foo.com. A 1.2.3.4
y.bar.com. A 1.2.3.4
A
บันทึกไวด์การ์ดซึ่งจะนำไปสู่ชื่อโฮสต์หลายชื่อบน IP เดียวกัน
นอกเหนือจากการเปลี่ยน CNAME ตามคำตอบอื่น ๆ ที่แนะนำแล้วคุณต้องจัดการตรรกะบนเซิร์ฟเวอร์การโฮสต์ของคุณด้วย ฉันใช้ Apache และฉันกำหนดค่าเป็น:
<VirtualHost 1.2.3.4:80>
ServerName www.abc.com
ServerAlias abc.com
...
</VirtualHost>
<VirtualHost 1.2.3.4:80>
ServerName www.xyz.com
ServerAlias xyz.com
...
</VirtualHost>
ฉันแน่ใจว่าโปรแกรม http เซิร์ฟเวอร์อื่น ๆ มีสิ่งที่คล้ายกัน
คุณต้องชัดเจนในสิ่งที่คุณหมายถึงชื่อโฮสต์สอง หากคุณหมายถึงกล่องฟิสิคัลสองกล่องที่มีที่อยู่ IP เดียวกันคำตอบคือโดยทั่วไปแล้ว กรณีที่คุณต้องการคือถ้าเซิร์ฟเวอร์ A และ serverB ทำงานเป็นคลัสเตอร์แบบแอคทีฟพาสซีฟคุณจะต้องให้แต่ละเซิร์ฟเวอร์มีสองที่อยู่หนึ่งชิ้น หนึ่งจะเป็นที่อยู่ IP ที่ทุ่มเทให้กับเซิร์ฟเวอร์นั้นและที่อยู่ IP ที่สองจะเป็นที่อยู่ที่ใช้ร่วมกันระหว่างเซิร์ฟเวอร์ แต่เฉพาะเซิร์ฟเวอร์ที่ใช้งานจะฟังที่อยู่ที่ใช้ร่วมกัน เซิร์ฟเวอร์แฝงเริ่มฟังในที่อยู่ที่ใช้ร่วมกันเมื่อเซิร์ฟเวอร์ที่ใช้งานอยู่ลดลง
นอกจากนี้ยังเป็นที่น่าสังเกตว่าใน IPv6 คุณสามารถกำหนด IP เดียวกันให้กับโฮสต์อย่างน้อยสองเครื่องและเครือข่ายจะทำการโหลดบาลานซ์และการเข้าแทนที่สำหรับคุณ (หากไม่สามารถเข้าถึงได้ให้ลองอีกอัน) ทั้งสองถูกมองว่าเป็นหนึ่งในเหตุผลปลายทางและไม่มี DNS ที่เกี่ยวข้อง แต่อย่างใด
IP หลายรายการสำหรับโดเมนเดียวกัน:
หลายโดเมนสำหรับ IP เดียวกัน:
คุณต้องตอบคำถามต่อไป: โดเมนทั้งหมดให้บริการเดียวกันหรือไม่
เซิร์ฟเวอร์จำนวนมากในเทเลคอม (เช่น HSS และ PCRF) ใช้การขนส่ง SCTP และดังนั้นเซิร์ฟเวอร์เหล่านี้จึงมีที่อยู่ IP หลายแห่ง ที่อยู่เหล่านี้ใช้สำหรับการมัลติโฮม (ซึ่ง SCTP รองรับ) ที่ให้การเชื่อมต่อกับความซ้ำซ้อนและความล้มเหลว
serverfault.com
และsuperuser.com
ดูที่อยู่ IP ที่ส่งคืนสำหรับทั้งสอง