나는이 아이디어를 가지고 그것을 코딩하기 시작했지만 필요가 먼저 증발로 끝나지 않았습니다.
DNS 서버에는 LAN에있는 모든 시스템의 호스트 이름과 MAC 주소가 있으며이를위한 방법이 있습니다. 머신에 대한 요청을 수신하면 MAC 주소가 지정된 IP 주소에 대해 역방향 ARP를 전송하고 응답을 사용하여 DNS 응답을 구성합니다.
이것은 당신이하려는 일과 관련이 없지만 요점을 보여줍니다. 이론적으로 DNS 서버는 이름을 IP 주소로 해석하려는 새로운 체계를 수행하도록 코딩 될 수 있습니다.
실제 질문은 고객의 IP 주소를 어디로 보내야하는지 결정하는 방법으로 보입니다. 이것은 약간의 XY 문제입니다. 실제로 원하는 것은 고객의 ISP가 지리적 위치를 찾는 것이므로 8.8.4.4 또는 다른 DNS 리디렉션 서비스가 아니라고 가정하면 요청하는 IP 주소에서 직접 수행하여 얻을 수 있습니다. 내 생각에 DNS 리디렉터에 대한 가장 좋은 해결책은 문제를 무시하고 자체 상대 지리적 위치를 결정하고 (즉, DNS 서버에서 발신 IP 주소를 찾으려고 시도) 적절하게 리디렉션하는 것입니다. 위치 정보를 찾는 방법은 여기를 참조하십시오 : https : //.com/questions/2574542/location-detecting-techniques-for-ip-addresses
당신은 정말로 여기에 애니 캐스트를 원하지 않지만 더 건전한 것을 원합니다. Anycast는 TCP 스트림 중간에 패킷을 다시 라우팅하여 대량 혼동을 일으킬 수 있다는 성가신 특성을 가지고 있습니다.
Ron Maupin은 애니 캐스트가 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 주소를 지리적 위치로 지정하려고하면 Wichita에서 모두 얻을 수있는 확실한 방법입니다. 물리학에 대한 간단한 설명만으로는 충분하지 않습니다.
8.8.4.4 범위는 30ms에서 측정되며 그 중 첫 18ms는 로컬 페널티입니다 (홉 3은 ISP의 로컬 라우터 임). 위치 타까지의 거리는 1297 마일입니다. 따라서 최소 왕복 시간은 18.55ms (1297 * 2 마일 / 초당 225,000km (유리의 빛의 속도))입니다. 따라서 28ms보다 빠른 응답을 얻지 못하지만 25ms 후에 다시 응답합니다.
패킷은 두 개의 다른 BGP 경로로 Google에 도착합니다. BGP가 가장 가까운 것을 선택하지 않았습니다.