Ну, вообще-то, одному DNS-имени может соответствовать и несколько ip-адресов...
А вообще, варианты, сходу:
1. Кто мешает DNS-серверу отвечать разными ip-адресами на основании GeoIP-данных отправителя DNS-запроса?
2. А почему бы не завести "сортировщик" запросов, полагаясь на средства самого HTTP?
Пусть пользователь пытается загрузить некий файл
my-cool-cnd.net/file. Тогда:
2.1. HTTP-сервер, поднятый на my-cool-cnd.net, через GeoIP видит, что пользователь находится в Европе и отвечает HTTP-кодом 307 Temporary Redirect, Location:
europe.my-cool-cnd.net/file
Что важно, на my-cool-cnd.net никаких файлов может не быть вовсе - только скрипт-редиректор.
2.2. Пользователь радостно загружает
europe.my-cool-cnd.net/file
3. Вообще дикий вариант, который, тем не менее, иногда используется: каждый региональный узел CDN по BGP анонсирует один и тот же ip-адрес. В таком случае, с какого именно узла CDN пойдёт загрузка, решается силами ip-маршрутизации, исходя из принципа выбора AS Path минимальной длины.