伪造 NS 记录以进行转移前 DNS 测试

伪造 NS 记录以进行转移前 DNS 测试

我即将把一个域名从一个注册商和 DNS 提供商转移到另一个,我想在开始转移之前测试新的 DNS 主机。新主机预先提供普通的 DNS 服务,因此可以在那里设置域名并设置好所有记录;然后可以通过使用dig @newserver hostnameetc 查找其中的每个条目来测试。但是,这不允许测试名称服务器设置。我的想法是,我可以为 NS 记录创建主机文件条目,然后让它查找新名称服务器上的条目,但这行不通。接下来,我尝试运行本地 dnsmasq 服务器,为将旧提供商的 DNS 服务器名称指向新提供商的 IP 的 NS 条目提供静态的本地定义记录,虽然手动挖掘查询会产生预期的 IP,但在浏览器中运行却不会(即使我清除本地缓存)。

我怎样才能实现这个目标?

答案1

首先,在转换之前进行测试是个好主意。你会惊讶于有多少系统管理员不进行测试。

使用@newserver会忽略 NS 记录并直接将请求发送到newserver。您可以通过在命令行上指定“NS”来测试它是否提供正确的 NS 记录:

dig @newserver mydomain.com ns

这验证您在新的区域文件中拥有正确的 NS 记录。

这假定新的注册商将在转移之前为您的区域设置一个 DNS 服务器。

当外部人员进行 DNS 查找时,他们会忽略您区域中的 NS 记录。他们只查询父区域中的 NS 记录。例如,如果这是一个 .com 域,则整个 .com 都有一个(巨大的)区域文件,其中包括 的 NS 记录mydomain.com。当您转移域时,这些记录将发生变化。如果不进行更改,就无法在那里测试新的 NS 记录。

再次,假设新注册商将在转移之前设置您的 DNS 区域:您可以告诉旧注册商添加新的 NS 记录(添加它们,不要删除旧的 NS 记录)。此时,大约一半的 DNS 查询将转到旧 DNS 服务器,另一半将转到新 DNS 服务器。您可以通过这种方式验证一切是否正常工作。(甚至更好:一次添加一个 NS 记录)。您可以一次删除一个旧的 NS 记录并进行更多测试。

如果新注册商在转移之前不会设置您的 DNS 区域,请使用相同的区域文件创建一个新域。您必须创建一个适用于两个区域的区域文件;如果您使用相对名称而不是 FQDN,则很容易。(提示:任何时候想要指定域名本身时,请使用“@”)。在那里测试记录。在新域上重新使用确切的区域文件……这样您就会知道区域文件是否有效。

答案2

您可以设置一个 DNS 服务器,配置为“拆分 DNS”。某些域的查找将指向新服务器,而所有其他域将遵循常规路径。 http://en.wikipedia.org/wiki/Split-horizo​​n_DNS

如果您使用 BIND,这可能会有所帮助:http://www.cyberciti.biz/faq/linux-unix-bind9-named-configure-views/

相关内容