เป็นไปได้หรือไม่ที่ชื่อโฮสต์สองชื่อจะใช้ที่อยู่ IP เดียวกันร่วมกันหรือไม่


35

ใครสามารถอธิบายได้ว่าชื่อโฮสต์สองชื่อสามารถใช้ที่อยู่ IP เดียวกันร่วมกันได้หรือไม่

และถ้าชื่อโฮสต์หนึ่งชื่อแสดงที่อยู่ IP มากกว่าหนึ่งที่อยู่ก็จะเป็นไปได้เช่นกัน? ทำไม?


18
ต้องการตัวอย่างของโลกแห่งความจริงที่เกิดขึ้นหรือไม่ Ping serverfault.comและsuperuser.comดูที่อยู่ IP ที่ส่งคืนสำหรับทั้งสอง
Scott Chamberlain

1
ชื่อโฮสต์ทั้งหมดแบ่งปันที่อยู่ 127.0.0.1 แล้วเรียงลำดับ ...
jlliagre

คำตอบ:


45

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


7
คำถามไม่ได้ถามสิ่งที่ตรงกันข้ามหรือไม่?
mowwwalker

2
มีสองคำถาม @Sirch ครอบคลุมส่วนแรกแล้วค่อนข้างดี
Mathias R. Jessen

โอ้ฉันเข้าใจแล้วฉันข้ามคำอธิบายไป ขอบคุณสำหรับคำตอบ btw!
mowwwalker

1
เบราว์เซอร์ / สแต็คเครือข่ายมักจะลองที่อยู่แรกที่ได้รับหรือไม่ หรือพวกเขาจะลองแบบสุ่ม? จะเป็นการสมเหตุสมผลหรือไม่ที่จะสุ่มการสั่งซื้อ IP ที่ส่งคืนโดยเซิร์ฟเวอร์ DNS ของคุณเพื่อลองโหลดให้สมดุล
Tom Marthenal

ขึ้นอยู่กับการใช้งานของลูกค้าโดยเฉพาะ เซิร์ฟเวอร์ส่วนใหญ่จะสุ่มลำดับของที่อยู่ IP ที่ส่งคืน (นี่คือพฤติกรรมที่เรียกว่า "round-robin") จริง ๆ แล้วคำถามที่น่าสนใจฉันคิดว่าฉันจะขยายคำตอบเล็กน้อย
Mathias R. Jessen

35

ใช่เป็นไปได้ที่ชื่อโฮสต์หลายชื่อจะใช้ที่อยู่ 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


6
เป็นเรื่องที่น่าสังเกตและฉันได้เห็นบนอินเทอร์เน็ตจริง ๆ เครือข่าย CNAME ที่ทำลายตัวแก้ไขชื่อ เพราะ CNAME สามารถชี้ไปที่ CNAME อื่น แม้แต่ลูป CNAME ก็เป็นไปได้
PP


นอกจากนี้ยังเป็นมูลค่าการชี้ให้เห็นว่าAบันทึกที่มี IP เดียวกันสามารถปรากฏในโซนที่แตกต่างกันเช่นและx.foo.com. A 1.2.3.4 y.bar.com. A 1.2.3.4
Blrfl

คำตอบนี้ลืมบอกเกี่ยวกับAบันทึกไวด์การ์ดซึ่งจะนำไปสู่ชื่อโฮสต์หลายชื่อบน IP เดียวกัน
Izzy

เฮ้ Sirch การจัดการกับ fullstops คืออะไร?
JonoRR

6

นอกเหนือจากการเปลี่ยน 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 เซิร์ฟเวอร์อื่น ๆ มีสิ่งที่คล้ายกัน


2

คุณต้องชัดเจนในสิ่งที่คุณหมายถึงชื่อโฮสต์สอง หากคุณหมายถึงกล่องฟิสิคัลสองกล่องที่มีที่อยู่ IP เดียวกันคำตอบคือโดยทั่วไปแล้ว กรณีที่คุณต้องการคือถ้าเซิร์ฟเวอร์ A และ serverB ทำงานเป็นคลัสเตอร์แบบแอคทีฟพาสซีฟคุณจะต้องให้แต่ละเซิร์ฟเวอร์มีสองที่อยู่หนึ่งชิ้น หนึ่งจะเป็นที่อยู่ IP ที่ทุ่มเทให้กับเซิร์ฟเวอร์นั้นและที่อยู่ IP ที่สองจะเป็นที่อยู่ที่ใช้ร่วมกันระหว่างเซิร์ฟเวอร์ แต่เฉพาะเซิร์ฟเวอร์ที่ใช้งานจะฟังที่อยู่ที่ใช้ร่วมกัน เซิร์ฟเวอร์แฝงเริ่มฟังในที่อยู่ที่ใช้ร่วมกันเมื่อเซิร์ฟเวอร์ที่ใช้งานอยู่ลดลง


2

นอกจากนี้ยังเป็นที่น่าสังเกตว่าใน IPv6 คุณสามารถกำหนด IP เดียวกันให้กับโฮสต์อย่างน้อยสองเครื่องและเครือข่ายจะทำการโหลดบาลานซ์และการเข้าแทนที่สำหรับคุณ (หากไม่สามารถเข้าถึงได้ให้ลองอีกอัน) ทั้งสองถูกมองว่าเป็นหนึ่งในเหตุผลปลายทางและไม่มี DNS ที่เกี่ยวข้อง แต่อย่างใด

คุณลักษณะนี้เป็นที่รู้จักกันAnycast


1

IP หลายรายการสำหรับโดเมนเดียวกัน:

  • ใช่เป็นไปได้และพบได้บ่อยมาก: หากเซิร์ฟเวอร์ (ที่มี ip A) ล้มเหลวคุณอาจเชื่อมต่อกับ IP ถัดไปของการลงทะเบียน DNS และเข้าถึงเซิร์ฟเวอร์อื่น (ที่มี IP B) เพื่อรับบริการ

หลายโดเมนสำหรับ IP เดียวกัน:

คุณต้องตอบคำถามต่อไป: โดเมนทั้งหมดให้บริการเดียวกันหรือไม่

  • ถ้าใช่: เป็นการกำหนดค่าที่พบบ่อยมากเช่นกัน: บริษัท จำนวนมากซื้อโดเมนจำนวนมากที่มีโดเมนบนสุดของประเทศที่แตกต่างกัน: xxx.com, xxx.net, xxx.org ฯลฯ และทั้งหมดนี้ชี้ไปที่บริการเดียวกันนั่นคือ ไปยังรายการ IP เดียวกัน
  • ถ้าไม่ใช่: เป็นไปได้ แต่ไม่ใช่เรื่องปกติและไม่ได้รับการแนะนำ บริษัท โฮสติ้งบางแห่งที่อนุญาตให้บริการ HTTP ใช้ NAT / Proxy เพื่อสำรอง IP เท่านั้น แต่แน่นอนว่านั่นหมายถึงพร็อกซีที่ "เข้าใจ" HTTP เพื่อระบุบริการปลายทาง

0

เซิร์ฟเวอร์จำนวนมากในเทเลคอม (เช่น HSS และ PCRF) ใช้การขนส่ง SCTP และดังนั้นเซิร์ฟเวอร์เหล่านี้จึงมีที่อยู่ IP หลายแห่ง ที่อยู่เหล่านี้ใช้สำหรับการมัลติโฮม (ซึ่ง SCTP รองรับ) ที่ให้การเชื่อมต่อกับความซ้ำซ้อนและความล้มเหลว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.