在切换 DNS 主机之前测试新的域名服务器

Mel*_*emi 4 dns nameserver macos

为我们的名称服务器切换主机。DNS 记录在旧名称服务器和新名称服务器上都设置。我想在切换 SOA 之前测试新的,并想知道在提交之前测试它们的最佳方法是什么?

我的dig技能很弱。理想情况下,我会强制我的本地机器为我们的域使用新的名称服务器,以便我可以检查 HTTP 和 HTTPS 服务是否正常工作。

Gia*_*968 7

为我们的名称服务器切换主机。DNS 记录在旧名称服务器和新名称服务器上都设置。我想在切换 SOA 之前测试新的,并想知道在提交之前测试它们的最佳方法是什么?

一般而言,如果它们看起来正确并且在两个地方都有相同的条目,只需在 SOA 中进行切换即可让您无需过多担心。当然,在切换后至少 24 小时内不要删除或删除旧的 DNS 条目。虽然世界上 98% 的服务器几乎会立即接受更改,但您必须记住,那里有各种糟糕的 DNS 服务器,它们不尊重 TTL,最好等待尘埃落定,而不是急于求成摆脱它并以失败的查找告终。

我的dig技能很弱。理想情况下,我会强制我的本地机器为我们的域使用新的名称服务器,以便我可以检查 HTTP 和 HTTPS 服务是否正常工作。

如果两个 DNS 服务器都设置了您的数据,那么您可以做的最简单的事情是dig用于查询特定的 DNS 服务器,而不仅仅是您的系统本地默认值。

例如,此查询将对NSOpenDNS 服务器上主机名的权威(namservers) 进行查询:

dig @208.67.222.222 NS example.com
dig @208.67.222.220 NS example.com
Run Code Online (Sandbox Code Playgroud)

这将为您提供该 DNS 服务器上该域名的任何记录;请注意,该NS选项仅替换为ANY

dig @208.67.222.222 ANY example.com
dig @208.67.222.220 ANY example.com 
Run Code Online (Sandbox Code Playgroud)

同样,这将执行相同的NS查询,但使用 Google 的 DNS 服务器:

dig @8.8.8.8 NS example.com
dig @8.8.4.4 NS example.com
Run Code Online (Sandbox Code Playgroud)

同样,这将为您提供该域名在其他 DNS 服务器上的任何记录:

dig @8.8.8.8 ANY example.com
dig @8.8.4.4 ANY example.com
Run Code Online (Sandbox Code Playgroud)

您可以使用一些顶级 DNS 服务器来执行此操作,以确保它们在发生 DNS 更改时遵守 DNS 更改。

一般来说,SOA TTL 时间约为 900 秒(又名:15 分钟),所以如果您对此不确定,我的建议是将旧 DNS 服务器上的 SOA TTL 设置为 300(又名:5 分钟)然后等待两个小时左右,然后进行切换。5 分钟的更改为您提供了足够快的周转时间,因此如果发生不愉快的事情,您可以快速切换回旧的 DNS 服务器,而无需过多担心。

一般来说,这种东西是请求和 TTL 的舞蹈,因此必须在流程中保持耐心。但就像我说的,如果两个设置中的所有条目都正确,你应该没问题;300 秒的 SOA TTL 只是一个简单、无害的建议。