我遇到了一些以前从未见过的有趣的东西,希望有人能帮忙解释我所看到的东西。
场景如下:我有一个testdomain.com
由 DNS 提供商托管的域区域文件,名为SummitNetworks
。在我这边,我有一个名为 的域由 GoDaddy 托管mycustomdomain.com
。在其中,我有一条指向 的名称服务器的mycustomdomain.com
胶水记录。ns2.mycustomdomain.com
summitnetwork
现在我说summitnetworks
我希望他们为我托管的区域testdomain.com
指向 NS 服务器ns2.mycustomdomain.com
。这样做的原因是,将来如果我选择将此区域迁移到新的 DNS 提供商和一大堆其他域,我只需将 NS 粘合记录更新到mycustomdomain
新的 DNS 提供商名称服务器 IP 上。
现在的问题是,当我针对 NS 服务器进行挖掘和区域查找时,testdomain.com
NS 服务器指向summitnetworks
NS 服务器,但引用路径指向回ns2.mycustomdomain.com
。这怎么可能?我如何使用挖掘查看解析的完整路径?什么是引用路径?当我针对域进行挖掘时,没有对它的引用。我能够验证这一点的唯一方法是因为我使用了dnsstuff toolbox
答案1
如果没有实际信息,你的问题很难回答,但你使用虚荣服务器的理由对我来说毫无意义,当你改变名称服务器时,你实际上想要更改你的域名服务器,而不是您的粘合记录,您还希望您的 SOA 是一个真正的名称服务器,而不是粘合记录。
我认为发生的情况如下:example.com 的注册商 NS 记录与区域的 NS 记录不同。
挖掘示例.com
根服务器将您发送到 com 服务器,com 服务器将您发送到您的注册商(godaddy)中列出的名称服务器,但这些服务器没有您的虚荣名称服务器,它们有真实名称服务器,这些服务器(尽管 IP 相同)会将您引导至真实名称服务器的 A 记录。
再次强调, ns1.example.com,ns2.example.com是您的名称服务器,带有 register.com。
但区域说了类似的话
@ IN NS ns3.example.com
@ IN NS ns4.example.com
即使 ns1.example.com 和 ns3.example.com 是相同的 IP 记录,dns 也不知道这一点,它会认为 ns3 不是 ns1,因此它会参考 ns3 来获取权威答案。
我们可以用真实的信息来证实这一点。
如果您想使用虚荣名称服务器,我建议您将您的 DNS 保留在 Godady。
答案2
感谢 Jacob 愿意花时间帮助我解决这个问题;如果可以的话我会给你 +100 分 :)。
我能够使用一些工具和 DNS 逻辑来追踪我的答案。所以我遇到的第一个问题是,每当我dig www.example.com +trace
在 Mac 上运行一个时,什么都不会出现。起初我以为这是一个域问题,但我尝试了其他域,得到了相同的空白结果。所以我说让我试试另一台电脑,瞧,我能够通过完整的跟踪来解析 DNS,从而揭示答案。
所以本质上发生的事情是这样的... 当testdomain.com
在 DNS 注册商处注册时,注册域名的人会ns1 & ns2.mycustomdomain.com
按照指示指向名称服务器。这个过程发生在几百个域名上。拥有域名的人mycustomdomain.com
创建了虚荣服务器,其中的粘合记录指向 DNS 托管提供商。
挖掘痕迹揭示了这一点
- 第一步 - 查询 DNS 根服务器以查找要与哪个顶级域名进行通信
- 第二步 - 查询顶级域名 DNS 服务器,找出谁是
testdomain.com
- 第一个结果 - 找到可以响应查询的名称服务器
ns1 & ns2.mycustomdomain.com
- 第二个结果 - 因为这些粘合记录实际上指向 NS 服务器 @
summitnetworks.com
我们得到了名称服务器的额外响应ns1 & ns2.summitnetworks.com
- 旁注,如果我们没有这些粘合记录,挖掘就会在第 3 点结束。
现在,这些域和所有未来域的迁移都将转到 AWS Route 53。我收到的区域文件summitnetworks.com
当然包括它们的 SOA 和 NS 服务器。当您将域导入 Route53 时,它们将删除 SOA 和名称服务器,因为它们现在拥有这部分。由于我正在大规模迁移到 AWS,我将创建一个委派集这样,我在 AWS 中创建的每个域都具有相同的名称服务器。这样,我们所要做的就是更新虚荣服务器的胶水记录以指向 AWS 服务器,并添加 2 个胶水记录以增加可靠性。
希望这能帮助遇到此问题的其他人。
示例dig www.google.com +trace
以便您可以遵循解决路径:
;; global options: +cmd
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
;; Received 496 bytes from 172.16.0.2#53(172.16.0.2) in 8 ms
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
;; Received 492 bytes from 198.41.0.4#53(198.41.0.4) in 100 ms
google.com. 172800 IN NS ns2.google.com.
google.com. 172800 IN NS ns1.google.com.
google.com. 172800 IN NS ns3.google.com.
google.com. 172800 IN NS ns4.google.com.
;; Received 168 bytes from 192.26.92.30#53(192.26.92.30) in 99 ms
www.google.com. 300 IN A 216.58.192.4
;; Received 48 bytes from 216.239.38.10#53(216.239.38.10) in 13 ms
对于需要更新 DNS 的人来说,这里有一些不错的 DNS 资源。今年我肯定更新了我的 DNS :)