Eu tive essa ideia e comecei a codificá-la, mas nunca terminei, pois a necessidade evaporou primeiro.
O servidor DNS possui os nomes de host e endereços MAC de todas as máquinas em sua LAN e uma maneira de alcançá-los. Quando recebe uma solicitação de uma máquina que conhece, envia um ARP reverso para o endereço IP, dado o endereço MAC e usa a resposta para construir a resposta DNS.
Isso não tem nada a ver com o que você está tentando fazer, mas ilustra o ponto. Um servidor DNS pode, em teoria, ser codificado para executar qualquer esquema novo que você queira resolver nomes para endereços IP.
A questão real parece ser como obter o endereço IP do cliente para decidir para onde enviá-lo. Este é um pequeno problema de XY. O que você realmente deseja é que o ISP do cliente faça a geolocalização, e você pode obtê-lo diretamente do endereço IP que faz a solicitação, supondo que não seja 8.8.4.4 ou algum outro serviço de redirecionamento de DNS. Na minha opinião, a melhor solução para os redirecionadores de DNS é ignorar o problema e fazer uma geolocalização auto-relativa (ou seja, do servidor DNS tentar localizar o endereço IP de chamada) e redirecionar adequadamente. Veja aqui como obter a localização geográfica: /programming/2574542/location-detecting-techniques-for-ip-addresses
Você realmente não quer anycast aqui, mas algo mais são. O Anycast tem a propriedade irritante, pois pode redirecionar pacotes no meio do seu fluxo TCP, causando confusão em massa.
Ron Maupin afirma que o anycast é confiável para o TCP. Aqui está o traceroute mostrando o contrário:
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
Se você tentar geolocalizar os endereços IP upstream da maneira óbvia, obtém os dois em Wichita. Isso não está correto, pelo qual uma simples demonstração de física será suficiente.
O intervalo para 8.8.4.4 é medido em 30ms, dos quais os primeiros 18ms são a penalidade local (o salto 3 é o roteador local do meu ISP). Minha distância para Wichita é de 1297 milhas. O tempo mínimo de ida e volta é, portanto, (225.000 quilômetros por segundo (velocidade da luz no vidro)), que é de 18,55ms. Portanto, eu não deveria receber resposta mais rápido que 28ms, mas recebi uma resposta em 25ms.
Os pacotes estão chegando ao Google por duas rotas BGP diferentes. BGP não escolheu o mais próximo.