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