เนมเซิร์ฟเวอร์สามารถแก้ไขที่อยู่ IP แบบไดนามิกโดยใช้กลยุทธ์บางอย่างได้หรือไม่?


11

เราได้ลงทะเบียนเซิร์ฟเวอร์ชื่อบางตัวสำหรับการแก้ไข DNS สำหรับเว็บไซต์ของเราซึ่งติดตั้งในศูนย์ข้อมูลหลายแห่ง

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

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


ดูเหมือนว่าจะเป็นกรณีสำหรับ anycast
Ron Maupin

1
@RonMaupin มันควรจะชี้ให้เห็นว่าการทำ anycast ต้องมีการจัดสรรบล็อกที่อยู่อิสระของผู้ให้บริการและที่สำคัญกว่านั้นเรียกใช้ BGPเพื่อโฆษณาคำนำหน้าจากแต่ละศูนย์ข้อมูล นั่นเป็นระดับใหม่ของการปฏิบัติงานและไม่ใช่สิ่งที่ บริษัท "เชิงเนื้อหา" จำนวนมากจะมีประสบการณ์ด้วย โซลูชันที่ใช้ DNS นั้นดูง่ายกว่ามาก
IPX

@IPX ฉันจะจินตนาการว่า บริษัท ที่มีศูนย์ข้อมูลทั่วโลกตามที่ปรากฏในคำถามจะมีที่อยู่ที่ไม่ขึ้นกับผู้ให้บริการและหมายเลข AS ของตัวเอง ด้วยวิธีการใด ๆ ฟรีและง่าย
Ron Maupin

1
@RonMaupin ถ้า บริษัท ของ OP ดำเนินการดาต้าเซ็นเตอร์หลายแห่งทั่วโลกใช่แล้ว แต่พวกเขาอาจจะไม่ถามคำถามที่ค่อนข้างง่ายตรงนี้ ฉันพนันว่าพวกเขาเพียงแค่ค้นหาที่ตั้งของตนเองหรือจ้าง HW ในศูนย์ข้อมูลเชิงพาณิชย์หลายแห่งและไม่สนใจดูแลเกี่ยวกับเครือข่ายขั้นสูง นั่นคือสิ่งที่ฉันได้เห็น บริษัท ขนาดกลางจำนวนมากทำเพื่อความซ้ำซ้อน หากเป็นกรณีที่DNS เป็นคำตอบที่ไม่ได้กำหนดเส้นทาง
IPX

@IPX สิ่งที่ฉันรวบรวมได้จากคำถามคือ บริษัท มีศูนย์ข้อมูลทั่วโลกและหากศูนย์ข้อมูลหนึ่งล่มการรับส่งข้อมูลควรถูกนำไปยังศูนย์ข้อมูลอื่น (" หากศูนย์ข้อมูลใดศูนย์หนึ่งของเราไม่ทำงาน .. . ") ฉันเพียงแค่ตอบคำถามตามที่ถามแทนที่จะพยายามเดาเกี่ยวกับการโฮสต์ของบุคคลที่สามและเราก็ทำเช่นนั้น แต่ก็ยังมีผู้ให้บริการของเราเองที่อยู่เป็นอิสระและหมายเลข AS ที่ใช้เพื่อตรวจสอบกับ ISP ที่ช่วยให้การเจรจาต่อรองของสัญญาและการเปลี่ยนแปลงผู้ให้บริการอินเทอร์เน็ตโดยไม่ต้องหยุดชะงักของเครือข่ายของการอ่านข้อมูล
Ron Maupin

คำตอบ:


16

ดูเหมือนว่าคุณต้องการออกอากาศ นั่นคือประเภทของสิ่งที่เว็บไซต์เช่น Google ใช้ คุณมีที่อยู่เดียว (แก้ไขโดย DNS) สำหรับทุกเว็บไซต์ของคุณและคุณอนุญาตให้ Internet routing protocol (BGP) นำผู้ใช้ไปยังไซต์ที่ใกล้ที่สุด (โดยโปรโตคอลการกำหนดเส้นทาง) หากไซต์หยุดทำงานไซต์ที่ใกล้เคียงที่สุดต่อไปจะถูกวางในตารางเส้นทางอินเทอร์เน็ตโดย BGP

ตัวอย่างคลาสสิก8.8.8.8สำหรับ DNS มันแก้ไขไปยังสถานที่ต่าง ๆ ทั่วโลกและหากสถานที่แห่งหนึ่งลงไปก็จะไปยังตำแหน่งที่ใกล้ที่สุดต่อไป

คำตอบนั้นไม่ใช่ DNS แต่เป็นเส้นทาง


2
โดยทั่วไป Anycast จะไม่มีประโยชน์สำหรับโปรโตคอลที่ใช้ TCP เนื่องจากแพ็คเก็ตที่อยู่ในการเชื่อมต่อเดียวกันสามารถไปยังเซิร์ฟเวอร์อื่นได้
Paŭlo Ebermann

2
@ PaŭloEbermannที่ไม่ใช่ปัญหาเมื่อคุณใช้เส้นทาง BGP เนื่องจากเส้นทางมักจะไม่เปลี่ยนแปลงเมื่อมีการประกาศ (เฉพาะการเปลี่ยนแปลงเล็กน้อย)
Ferrybig

2
@ PaŭloEbermannคุณสามารถทำการถ่ายทอดใด ๆ ผ่านตัวโหลดบาลานซ์แบบ DSR ได้ตราบใดที่ตัวโหลดบาลานซ์ทั้งหมดของคุณเห็นด้วยกับวิธีเลือกแบ็กเอนด์
kasperd

3
@ PaŭloEbermannนั่นเป็นความเข้าใจผิด ทราฟฟิกทั้งหมดจากโฮสต์หนึ่งจะไปยังเซิร์ฟเวอร์หนึ่งเว้นแต่เซิร์ฟเวอร์นั้นจะล้มเหลวทราฟฟิกจะถูกนำไปยังเซิร์ฟเวอร์อื่น ใช่นั่นจะทำให้การเชื่อมต่อ TCP ขาด แต่จะเป็นกรณีใดก็ตามเมื่อเซิร์ฟเวอร์ที่คุณเชื่อมต่อหยุดทำงาน Anycast ไม่ใช่สิ่งรอบตัว การกำหนดเส้นทางเป็นแบบกำหนดค่าได้ดังนั้น anycast จึงกำหนดค่าได้
Ron Maupin

2
@RonMaupin การกำหนดเส้นทาง Anycast นั้นไม่เสถียรเท่าที่คุณต้องการ และ Google จะไม่ใช้การออกอากาศใด ๆ ตามที่คุณพูด หากคุณต้องการทราบว่า Google ทำสิ่งนี้ได้จริงอย่างไรให้ดูที่หน้า 227 ในสมุดงานความน่าเชื่อถือของไซต์ที่เผยแพร่โดย Google ในระยะสั้นชั้นสมดุลภาระด้านหลังการกำหนดเส้นทาง anycast ชดเชยการเปลี่ยนแปลงที่หลีกเลี่ยงไม่ได้ในการกำหนดเส้นทางซึ่งจะทำลายการเชื่อมต่อ TCP
kasperd

9

สิ่งที่คุณต้องการก็คือว่าสิ่งที่Amazon Route53 DNS บริการข้อเสนอ:

คุณไม่จำเป็นต้องโฮสต์เว็บไซต์ของคุณบน AWS เพื่อให้สามารถใช้ Route53 ได้อย่างมีความสุขจะทำงานกับบริการที่ปรับใช้ในศูนย์ข้อมูลส่วนตัว

นอกจากว่าคุณเป็น Facebook หรือ Google ไม่ควรเป็นปัญหาเริ่มต้นจาก $ 0.40 ต่อการร้องขอ (ดูรายละเอียดการกำหนดราคา )

หวังว่าจะช่วย :)


คุณเคยใช้ผลิตภัณฑ์ที่ไม่ใช่ของ Amazon สำหรับสิ่งนี้หรือไม่?
ลูกไก่

@ ลูกไม่ฉันไม่ได้ ฉันมักจะใช้เครื่องมือที่ดีที่สุดสำหรับงานและ Route53 เหมาะกับค่าในกรณีส่วนใหญ่ อย่างไรก็ตามหากคุณ google บางอย่างเช่น "บริการ geo dns" คุณจะได้รับตัวเลือกบางอย่าง ฉันดูที่บางอย่างรวดเร็ว แต่พวกเขาดูเหมือนจะค่อนข้างแพง (ประมาณ $ 50 / เดือน - มากกว่าที่คุณอาจใช้กับ AWS Route53)
MLu

2
ฉันจะขยายมุมมองของฉันอีกเล็กน้อยก่อนที่จะเรียกเครื่องมือแรกที่ฉันพบว่าเป็นเครื่องมือที่ดีที่สุดสำหรับกรณีส่วนใหญ่ Route53 อาจดีที่สุดสำหรับทุกคน แต่คุณจะรู้ได้อย่างไรว่าคุณไม่ได้ลองทำอะไรอย่างอื่น
ลูกไก่

-1

ฉันมีความคิดนี้และเริ่มเขียนโค้ด แต่ไม่เคยทำเสร็จตามความต้องการที่ระเหยไปก่อน

เซิร์ฟเวอร์ DNS มีชื่อโฮสต์และที่อยู่ MAC ของเครื่องทั้งหมดใน LAN และวิธีการเข้าถึง เมื่อได้รับคำขอสำหรับเครื่องที่ทราบแล้วจะส่ง ARP ย้อนกลับสำหรับที่อยู่ IP ที่ระบุที่อยู่ MAC และใช้การตอบกลับเพื่อสร้างคำตอบ DNS

สิ่งนี้ไม่เกี่ยวกับสิ่งที่คุณพยายามทำ แต่มันแสดงให้เห็นถึงประเด็น ในทางทฤษฎีเซิร์ฟเวอร์ DNS สามารถเขียนโค้ดเพื่อดำเนินการตามรูปแบบใหม่ที่คุณต้องการแก้ไขชื่อเป็นที่อยู่ IP

คำถามที่เกิดขึ้นจริงดูเหมือนจะเป็นวิธีที่จะได้รับที่อยู่ IP ของลูกค้าในการตัดสินใจที่จะส่งพวกเขา นี่เป็นปัญหา XY เล็กน้อย สิ่งที่คุณต้องการคือ ISP ของลูกค้าที่จะระบุตำแหน่งทางภูมิศาสตร์และคุณสามารถรับได้โดยการปิดที่อยู่ IP โดยตรงเพื่อทำการร้องขอโดยสมมติว่าไม่ใช่ 8.8.4.4 หรือบริการการเปลี่ยนเส้นทาง DNS อื่น ๆ ในใจของฉันทางออกที่ดีที่สุดสำหรับตัวเปลี่ยนเส้นทาง DNS คือการเพิกเฉยต่อปัญหาและทำการระบุตำแหน่งทางภูมิศาสตร์แบบสัมพันธ์กับตัวเอง (นั่นคือจากเซิร์ฟเวอร์ DNS พยายามค้นหาที่อยู่ IP ที่เรียก) และเปลี่ยนเส้นทางอย่างเหมาะสม ดูที่นี่สำหรับวิธีการระบุตำแหน่งทางภูมิศาสตร์: /programming/2574542/location-detecting-techniques-for-ip-addresses

คุณไม่ต้องการออกอากาศที่นี่จริงๆ แต่มีเหตุผลมากกว่านี้ Anycast มีคุณสมบัติที่น่ารำคาญคือมันสามารถเปลี่ยนเส้นทางแพ็กเก็ตกลางกระแส TCP ของคุณทำให้เกิดความสับสนอย่างมาก

Ron Maupin อ้างว่า anycast นั้นมีความน่าเชื่อถือในเส้นทางสำหรับ TCP นี่คือ traceroute ที่แสดงเป็นอย่างอื่น:

 3  cr1-rhe-a-be153.bb.as11404.net (174.127.183.14)  20.657 ms  20.763 ms  19.660 ms
 4  cr1-che-b-be-2.as11404.net (192.175.29.161)  22.550 ms  23.562 ms  23.538 ms
 5  * cr1-9greatoaks-hu-0-6-0-20-0.bb.as11404.net (192.175.28.108)  24.409 ms  38.083 ms
 6  72.14.222.146 (72.14.222.146)  40.038 ms  39.106 ms  39.125 ms
 7  108.170.242.225 (108.170.242.225)  37.930 ms 108.170.243.1 (108.170.243.1)  35.434 ms 108.170.242.225 (108.170.242.225)  33.694 ms
 8  209.85.240.249 (209.85.240.249)  33.476 ms 108.170.232.65 (108.170.232.65)  31.683 ms 108.170.234.155 (108.170.234.155)  30.754 ms
 9  google-public-dns-b.google.com (8.8.4.4)  30.491 ms  28.644 ms  25.718 ms

หากคุณพยายามระบุตำแหน่งของที่อยู่ IP ต้นน้ำให้ชัดเจนว่าคุณได้รับทั้งสองอย่างในวิชิต้า สิ่งนี้ไม่ถูกต้องโดยการสาธิตทางฟิสิกส์อย่างง่าย ๆ จะเพียงพอ

ช่วง 8.8.4.4 นั้นวัดที่ 30ms ซึ่ง 18ms แรกนั้นเป็นโทษในพื้นที่ (hop 3 คือเราเตอร์ท้องถิ่นของ ISP) ระยะทางของฉันไปวิชิตอคือ 1297 ไมล์ เวลาในการเดินทางไปกลับต่ำสุดคือ (1,297 * 2 ไมล์ / 225,000 กิโลเมตรต่อวินาที (ความเร็วแสงในกระจก)) ซึ่งเป็น 18.55ms ดังนั้นฉันไม่ควรตอบกลับเร็วกว่า 28ms แต่ฉันกลับได้หนึ่งครั้งใน 25 มิลลิวินาที

แพ็กเก็ตเดินทางมาถึง Google ด้วยเส้นทาง BGP สองเส้นทางที่แตกต่างกัน BGP ไม่ได้เลือกที่ใกล้เคียงที่สุด


ขอให้เรายังคงอภิปรายนี้ในการแชท
yifan

ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
Ward - Reinstate Monica

ฉันย้ายความคิดเห็นทั้งหมดเพื่อแชท แต่เนื่องจากมีจำนวนมากและบางรายการถูกย้ายโดยอัตโนมัติฉันไม่แน่ใจว่าการแชทในภายหลังจะมีทั้งหมดหรือไม่ ไม่ว่าในกรณีใดการอภิปรายเพิ่มเติมเกี่ยวกับความถูกต้องของคำตอบนี้และวิธีการทำงานของเราเตอร์ ฯลฯ ไม่ควรแสดงความคิดเห็นเก็บไว้ในห้องสนทนา ความคิดเห็นเพิ่มเติมใด ๆ ที่นี่จะถูกลบ
Ward - Reinstate Monica

-2

สิ่งที่คุณต้องการสามารถทำได้ด้วยการรวมกันของ DNS anycast และ RFC-7871


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