查找所有当前 DNS 记录

查找所有当前 DNS 记录

我有一个域名,是客户的。他们的域名需要迁移,但当前提供商很难/很慢地提供所有现有 DNS 记录的详细信息。

另外,我无法联系邮件提供商以获取记录来确保他们的电子邮件继续正常工作。

有没有办法我可以获取所有当前的 DNS 记录,以便在将域名移动给自己之前复制它们?

答案1

您可以查找以下服务http://viewdns.info/如果当前托管服务提供商不愿意提供有关 DNS 记录的详细信息。

您需要的功能可以在这两个工具中找到:

在此处输入图片描述

在此处输入图片描述

这将为您提供在新主机上设置类似记录所需的所有信息。

答案2

对于邮件:

首先,只需查找 MX 记录 – 这些记录定义了传入邮件通过哪些服务器进行路由。

$ dig gmail.com MX
gmail.com.      3412 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com.      3412 IN MX 10 alt1.gmail-smtp-in.l.google.com.

如果您必须从空域名开始,只要您有 MX 记录,您就可以收到邮件。

现在针对整个域。

该域名允许区域传输,那么尝试一下:

  1. 查找域名的权威名称服务器:

    $ dig gnu.org NS
    gnu.org.        298 IN NS ns1.gnu.org.
    gnu.org.        298 IN NS ns2.gnu.org.
    

    视窗:nslookup -q=ns gnu.org

  2. 使用特殊的“AXFR”查询类型从其中一个请求区域传输:

    $ dig gnu.org AXFR @ns1.gnu.org
    gnu.org.            300 IN SOA ns1.gnu.org. hostmaster.gnu.org. 2014031109 3600 120 1209600         3600
    gnu.org.            300 IN MX 10 eggs.gnu.org.
    gnu.org.            300 IN A 208.118.235.148
    alpha.gnu.org.      300 IN A 208.118.235.21
    alpha.gnu.org.      300 IN AAAA 2001:4830:134:3::c
    anoncvs.gnu.org.    300 IN CNAME savannah.gnu.org.
    .....
    

    Windows 里面有一个单独的命令nslookup

    C:\> nslookup
    > server ns1.gnu.org
    > ls -a gnu.org
    

另一种方法是NSEC 步行,尽管它有效仅有的使用 DNSSEC 签名的域名以及仅使用常规 NSEC(非 NSEC3)的域名。

  • 但请注意,如果域DNSSEC 签名,然后拥有所有子域名是不足够的– 您还必须从当前管理员处获取 DNSSEC 签名密钥!因此,这种方法有效这一事实本身就已经使其变得毫无用处(除了最后的备份)。

无论如何。由于 NSEC 记录必须(根据定义)包含“下一个”现有域名,因此您可以查找 NSEC 以查找域根并跟踪链条,直到走完整个循环。LDNS有一个用于此的工具:

$ ldns-walk -f isc.org
...
backdraft.isc.org.      7200    IN  A   149.20.50.14
backupproxy.isc.org.    7200    IN  A   149.20.48.23
banana.isc.org.         7200    IN  A   149.20.64.69
banana.isc.org.         7200    IN  AAAA    2001:4f8:0:2::69
bcn1.isc.org.           3600    IN  NS  ams.sns-pb.isc.org.
...

这些是仅有的自动化方法。如果这两种方法都不起作用,您将需要说服当前域管理员向您发送数据。

说实话我甚至不能想象他们拒绝向您提供至少一个子域名列表;常规的“域名管理”面板不会显示它们吗?

答案3

除非当前提供商允许区域传输(他没有;)),您无法可靠地获取域及其所有子域的所有记录。

相关内容