GeoDNS安装中的CNAME出现问题

我试图设置类似于CDN(内容传送networking)设置的东西。 我想要做的是使用DNSlogging,根据用户在地理位置上的位置返回Alogging。 我能够使用RAGE4 DNS进行设置。 我不能真的把域名(让我们称之为domaina.com)RAGE4,我只能改变子域。 所以,我所做的是注册一个新的域名(让我们称之为domainb.com),并在RAGE4 DNS上设置具有地理位置的Alogging,并将子域(在domaina.com上)更改为指向RAGE4 DNS。 这会导致访问子域(在domainb.com上)返回的Alogging仅返回相同的IP地址,因为它使用domaina.com的名称服务器(而不是执行查询的原始用户)的位置。

也许这是一个更好的解释:

  • 用户从ns1.domaina.com请求xyz.domaina.com的DNSlogging
  • xyz.domaina.com是一个CNAMElogging,指向xyz.domainb.com
  • xyz.domainb.com根据用户的地理位置返回Alogging(在这种情况下,它是ns1.domaina.com的地理位置)

有没有办法让它使用原来的用户位置,而不是名称服务器的位置?

你不能。

有一个名为“DNS请求中的客户端子网”的EDNS0扩展 ,它已经被Google Public DNS 8.8.8.8和OpenDNS 208.67.222.222 (但不是Level3 4.2.2.1 ,Dyn 216.146.35.35 ,Hurricane Electric 74.82.42.42或大多数其他提供者)。 上次我查了一下,在任何公开的开放源代码软件中,还是没有这样的支持,所以只有Google和OpenDNS的parsing器支持。

一些相关的问题:

  • 如何使用dig(1)来testing特定IP的GeoDNS分辨率?

一些相关的疑难解答

  • 在shell脚本中查找公共IP地址

简而言之,请尝试从您的潜在客户端运行dig -t txt oo.myaddr.l.google.com +short 。 如果您在输出中没有看到edns0-client-subnet ,则所有投注均closures。

 % dig -t txt oo.myaddr.l.google.com +short "188.40.25.3" % dig @google-public-dns-a.google.com. -t txt oo.myaddr.l.google.com +short "74.125.189.17" "edns0-client-subnet 88.198.54.0/24" % dig @resolver1.opendns.com. -t txt oo.myaddr.l.google.com +short "208.69.33.21" "edns0-client-subnet 88.198.54.0/24" % dig @a.resolvers.level3.net. -t txt oo.myaddr.l.google.com +short "8.0.18.147" % dig @resolver1.dyndnsinternetguide.com. -t txt oo.myaddr.l.google.com +short "91.198.22.152" % dig @ordns.he.net -t txt oo.myaddr.l.google.com +short "216.66.80.30" %