Я пытаюсь настроить что-то похожее на настройку CDN (Content Delivery Network). Я хочу использовать записи DNS, которые возвращают запись A в зависимости от географического местоположения пользователя. Я смог настроить это с помощью RAGE4 DNS. Я действительно не могу переместить домен (назовем его domaina.com) на RAGE4, и я могу только изменить поддомен. Итак, что я сделал, это зарегистрировал новое доменное имя (назовем его domainb.com) и настроил его на RAGE4 DNS с географическими записями A и изменил поддомен (на domaina.com) на CNAME, который указывает на RAGE4 DNS. Это приводит к тому, что записи A, возвращаемые при доступе к поддомену (на domainb.com), возвращают только тот же IP-адрес, потому что он использует местоположение сервера имен для domaina.com (а не исходного пользователя, выполнившего запрос).
Возможно, это лучшее объяснение:
Есть ли способы заставить его использовать исходное местоположение пользователя вместо местоположения серверов имен?
Вы не можете.
Есть расширение EDNS0, называемое «Подсеть клиента в запросах DNS», и он уже поддерживается некоторыми преобразователями, такими как Google Public DNS 8.8.8.8
и OpenDNS 208.67.222.222
(но не по Уровню 3 4.2.2.1
, Дин 216.146.35.35
, Ураган Электрик 74.82.42.42
или большинство других провайдеров). В прошлый раз, когда я проверил, подобные вещи по-прежнему практически не поддерживались ни в одном общедоступном программном обеспечении с открытым исходным кодом, поэтому его поддерживают только распознаватели Google и OpenDNS.
Некоторые связанные вопросы:
Некоторые соответствующие ответы по устранению неполадок:
Короче попробуйте бежать dig -t txt o-o.myaddr.l.google.com +short
от вашего потенциального клиента. Если вы не видите edns0-client-subnet
на выходе, то все ставки отключены.
% dig -t txt o-o.myaddr.l.google.com +short
"188.40.25.3"
% dig @google-public-dns-a.google.com. -t txt o-o.myaddr.l.google.com +short
"74.125.189.17"
"edns0-client-subnet 88.198.54.0/24"
% dig @resolver1.opendns.com. -t txt o-o.myaddr.l.google.com +short
"208.69.33.21"
"edns0-client-subnet 88.198.54.0/24"
% dig @a.resolvers.level3.net. -t txt o-o.myaddr.l.google.com +short
"8.0.18.147"
% dig @resolver1.dyndnsinternetguide.com. -t txt o-o.myaddr.l.google.com +short
"91.198.22.152"
% dig @ordns.he.net -t txt o-o.myaddr.l.google.com +short
"216.66.80.30"
%