Ich hatte diese Idee und hatte begonnen, sie zu codieren, war aber nie fertig, da der Bedarf zuerst verflogen war.
Der DNS-Server verfügt über die Hostnamen und MAC-Adressen aller Computer in seinem LAN und über eine Möglichkeit, diese zu erreichen. Wenn es eine Anforderung für einen Computer empfängt, den es kennt, sendet es einen umgekehrten ARP für die IP-Adresse unter Angabe der MAC-Adresse und verwendet die Antwort, um die DNS-Antwort zu erstellen.
Dies hat nichts mit dem zu tun, was Sie versuchen, aber es veranschaulicht den Punkt. Ein DNS-Server kann theoretisch so codiert werden, dass er jedes neuartige Schema ausführt, mit dem Sie Namen in IP-Adressen auflösen möchten.
Die eigentliche Frage scheint zu sein, wie man die IP-Adresse des Kunden erhält, um zu entscheiden, wohin er gesendet werden soll. Dies ist ein kleines XY-Problem. Was Sie wirklich wollen, ist, dass der ISP des Kunden eine Geolokalisierung durchführt, und Sie können dies erreichen, indem Sie dies direkt von der IP-Adresse aus tun, die die Anforderung stellt, vorausgesetzt, es handelt sich nicht um 8.8.4.4 oder einen anderen DNS-Umleitungsdienst. Meiner Meinung nach besteht die beste Lösung für die DNS-Umleitungen darin, das Problem zu ignorieren und eine selbstbezogene Geolokalisierung durchzuführen (dh vom DNS-Server zu versuchen, die anrufende IP-Adresse zu finden) und entsprechend umzuleiten. Informationen zum Geolokalisieren finden Sie hier: /programming/2574542/location-detecting-techniques-for-ip-addresses
Du willst hier wirklich keinen Anycast, sondern etwas Vernünftigeres. Anycast hat die ärgerliche Eigenschaft, dass es Pakete in der Mitte Ihres TCP-Streams umleiten kann, was zu Massenverwirrung führt.
Ron Maupin behauptet, dass Anycast für TCP routenzuverlässig ist. Hier ist die Traceroute, die etwas anderes zeigt:
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
Wenn Sie versuchen, die Upstream-IP-Adressen auf die offensichtliche Weise zu geolokalisieren, erhalten Sie beide in Wichita. Dies ist nicht richtig, wodurch eine einfache Demonstration der Physik ausreichen wird.
Der Bereich bis 8.8.4.4 wird bei 30 ms gemessen, von denen die ersten 18 ms die lokale Strafe sind (Hop 3 ist der lokale Router meines ISP). Meine Entfernung nach Wichita beträgt 1297 Meilen. Die minimale Umlaufzeit beträgt daher (1297 * 2 Meilen / 225.000 Kilometer pro Sekunde (Lichtgeschwindigkeit in Glas)) 18,55 ms. Daher sollte ich keine Antwort schneller als 28 ms erhalten, aber ich habe eine Antwort in 25 ms zurückbekommen.
Die Pakete kommen auf zwei verschiedenen BGP-Routen bei Google an. BGP hat nicht den nächsten ausgewählt.