远程域:DNS 记录 A 存在,而 NS 不存在

Mar*_*ost 4 domain-name-system dns-zone

我遇到了可以成功检索 DNS A 记录的域。但与此同时,任何公共 DNS 服务器似乎都会返回空的 NS 记录。有问题的域名是bluedrive.com

我已经使用DNSViz 工具查找了域名- 但它也给出了令人困惑的答案。这怎么可能?这是有效的 DNS 设置吗?我想如果没有NS记录,A记录应该是不可能存在的。

Esa*_*nen 10

非标准域名停放DNS服务器

this-domain-for-sale.com52.20.26.87配置错误的权威名称服务器,因为它不使用与父区域相同的 NS 记录进行响应。

这似乎是 BuyDomains.com 的非标准域名停放解决方案,可以响应IN A 207.148.248.143任何域名......

  • 是否权威:

    $ dig bluedriving.com ANY @52.20.26.87 +short
    207.148.248.143
    
    $ dig scholarmarket.com ANY @52.20.26.87 +short
    207.148.248.143
    ns.buydomains.com. bd-operations.namemedia.com. 2016121022 86400 7200 604800 300
    
    $ dig collapsereport.com ANY @52.20.26.87 +short
    207.148.248.143
    ns.buydomains.com. bd-operations.namemedia.com. 2017060510 86400 7200 604800 300
    
    Run Code Online (Sandbox Code Playgroud)
  • 或不:

    $ dig buydomains.com ANY @52.20.26.87 +short
    207.148.248.143
    
    $ dig serverfault.com ANY @52.20.26.87 +short
    207.148.248.143
    
    $ dig icann.org ANY @52.20.26.87 +short
    207.148.248.143
    
    $ dig fbi.gov ANY @52.20.26.87 +short
    207.148.248.143
    
    Run Code Online (Sandbox Code Playgroud)

它还声称对大多数 TLD 具有权威性,包括comnetorggov许多国家代码顶级域名(ccTLD):

$ dig com NS @52.20.26.87 +noall +authority
com. 300 IN SOA ns.buydomains.com. hostmaster.buydomains.com. 115002911 86400 7200 604800 300
Run Code Online (Sandbox Code Playgroud)

诊断步骤

了解 DNSViz

DNSViz 专为分析 DNSSEC 而设计,bluedriving.com是一个未签名的域。这就是为什么它看起来可能令人困惑。

   Domain Name: BLUEDRIVING.COM
   . . .
   Name Server: NS.BUYDOMAINS.COM
   Name Server: THIS-DOMAIN-FOR-SALE.COM
   DNSSEC: unsigned
Run Code Online (Sandbox Code Playgroud)

DNSViz 可视化任何 DNS 区域的状态,并列出配置错误。因此,它能够判断发生了什么:

在授权 NS RR 集中(即在 com 区域)中找到以下 NS 名称,但在权威 NS RR 集中未找到ns.buydomains.comthis-domain-for-sale.com

以及配置的其他错误:

  • bluedriving.com区:
    • 以下 NS 名称未解析为地址:ns.buydomains.com
    • 服务器不响应通过 UDP 的查询。( 52.4.207.204)
  • bluedriving.com/A:
    • 未通过 UDP 从服务器收到响应(尝试了 12 次)。( 52.4.207.204, UDP_-_EDNS0_4096_D_KN)

使用dig +trace

如果您运行本地诊断,dig bluedriving.com +trace您可以看到相同的内容:

  1. 其中一台.com名称服务器 ( [a-m]{1}.gtld-servers.net) 响应:

    bluedriving.com. 172800  IN  NS  ns.buydomains.com.
    bluedriving.com. 172800  IN  NS  this-domain-for-sale.com.
    
    Run Code Online (Sandbox Code Playgroud)
  2. 由于名称服务器之一不存在,因此出现错误:

    couldn't get address for 'ns.buydomains.com': not found
    
    Run Code Online (Sandbox Code Playgroud)
  3. 另一个名称服务器使用 A 记录进行响应:

    bluedriving.com. 3600    IN  A   207.148.248.143
    ;; Received 60 bytes from 52.20.26.87#53(this-domain-for-sale.com) in 163 ms
    
    Run Code Online (Sandbox Code Playgroud)

A它之所以有效,是因为它最终从权威名称服务器(通过 TCP)获得答案 ( )。

推断可能的实施

这背后的实现看起来就像一个 PowerDNS 服务器,它具有带有通配符A记录的 TLD 区域。

$ dig version.bind CHAOS TXT @52.20.26.87 +short
"PowerDNS Authoritative Server 3.4.7 (jenkins@autotest.powerdns.com built 20151103151158 root@autotest.powerdns.com)"
Run Code Online (Sandbox Code Playgroud)

PowerDNS 服务器可以有许多不同的后端,但尽管有数据源,记录仍相当于每个 TLD BIND 区域具有:

com.   3600  IN  SOA  ns.buydomains.com. hostmaster.buydomains.com. (
                      115002911 86400 7200 604800 300
                      )
*.com. 3600  IN  A    207.148.248.143 
Run Code Online (Sandbox Code Playgroud)