Eu tive essa ideia e comecei a codificá-la, mas nunca terminei quando a necessidade evaporou primeiro.
O servidor DNS tem 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 por uma máquina, ela sabe que envia um ARP reverso para o endereço IP dado o endereço MAC e usa a resposta para construir a resposta do 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 realizar qualquer novo esquema que você queira resolver nomes para endereços IP.
A pergunta atual parece ser como obter o endereço IP do cliente para decidir para onde enviá-lo. Este é um pequeno problema XY. O que você realmente quer é o ISP do cliente para geolocalizar, e você pode fazer isso diretamente do endereço IP fazendo a solicitação, assumindo que não é 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 (isto é, a partir do servidor DNS tente localizar o endereço IP de chamada) e redirecionar adequadamente. Veja aqui como geolocalizar: link
Você realmente não quer anycast aqui, mas algo mais sensato. Anycast tem a propriedade chata de redirecionar pacotes no meio do seu fluxo TCP causando confusão em massa.
Ron Maupin afirma que anycast é confiável para 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 a montante, a maneira óbvia é que ambos estão em Wichita. Isso não é correto, pelo que uma simples demonstração de física será suficiente.
O intervalo para 8.8.4.4 é medido a 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 é 1297 milhas. O tempo mínimo de ida e volta é, portanto, (1297 * 2 milhas / 225.000 quilômetros por segundo (velocidade da luz em vidro)) que é 18,55ms. Portanto, eu não deveria ter resposta de volta mais rápida do que 28ms, mas consegui uma de volta em 25ms.
Os pacotes chegam ao Google por duas rotas BGP diferentes. O BGP não escolheu o mais próximo.