具有有效 DNS 响应但不存在于区域文件中的域名的含义?

The meaning for a domain name which has a valid DNS response but does not exist in zone file?

我知道我的问题与编程无关,但我想也许有人可以帮助我。 我有不同 TLD 的域名列表。我也有我的 TLD 的区域文件,但我的一些域名不存在于区域文件中。我检查了我的域名的 DNS 值,其中一些具有有效的 DNS A 响应。 我认为 TLD 的区域文件应该包括该 TLD 注册的所有域名。那是对的吗?如果是,对域名进行 DNS 响应但区域文件中不存在该域名是什么意思?

例如,当我发送 DNS 查询或挖掘 ews.com.link 时,我从 icann 检查了 ews.com.link TLD 的区域文件,它不包括 ews.com.link 域名,我收到以下回复:

; <<>> DiG 9.8.3-P1 <<>> ews.com.link
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43251
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 15

;; QUESTION SECTION:
;ews.com.link.          IN  A

;; ANSWER SECTION:
ews.com.link.       900 IN  A   101.132.249.163

;; AUTHORITY SECTION:
com.link.       900 IN  NS  ns3.myhostadmin.net.
com.link.       900 IN  NS  ns1.myhostadmin.net.
com.link.       900 IN  NS  ns4.myhostadmin.net.
com.link.       900 IN  NS  ns6.myhostadmin.net.
com.link.       900 IN  NS  ns2.myhostadmin.net.
com.link.       900 IN  NS  ns5.myhostadmin.net.

;; ADDITIONAL SECTION:
ns1.myhostadmin.net.    2790    IN  A   113.17.175.150
ns1.myhostadmin.net.    2790    IN  A   183.131.155.224
ns1.myhostadmin.net.    2790    IN  A   211.149.230.100
ns2.myhostadmin.net.    2790    IN  A   113.17.175.200
ns2.myhostadmin.net.    2790    IN  A   120.52.19.214
ns3.myhostadmin.net.    2790    IN  A   113.17.175.150
ns3.myhostadmin.net.    2790    IN  A   183.131.155.224
ns3.myhostadmin.net.    2790    IN  A   211.149.230.100
ns4.myhostadmin.net.    2790    IN  A   120.52.19.214
ns4.myhostadmin.net.    2790    IN  A   113.17.175.200
ns5.myhostadmin.net.    2790    IN  A   211.149.230.100
ns5.myhostadmin.net.    2790    IN  A   113.17.175.150
ns5.myhostadmin.net.    2790    IN  A   183.131.155.224
ns6.myhostadmin.net.    2790    IN  A   120.52.19.214
ns6.myhostadmin.net.    2790    IN  A   113.17.175.200

;; Query time: 356 msec
;; SERVER: 128.119.240.1#53(128.119.240.1)
;; WHEN: Wed Aug 15 13:51:21 2018
;; MSG SIZE  rcvd: 409

我在他们的 tld 区域文件中检查了以下域名的相同结果:

newd.com.limited
neqs.com.center
nesw.com.house
nsws.com.academy
bbc.com.cards
hews.com.camp
amh.com.pub
smg.com.zone
dmh.com.fail
hews.com.town
jews.com.photos
shm.com.toys
newws.com.boutique
ne3s.com.africa
nrws.com.game
nrws.com.africa
naws.com.tienda
nwes.com.cheap
niws.com.kitchen
amh.com.toys
newe.com.shoes
newx.com.koeln
smg.com.toys

根据您的评论和编辑,您可能对 DNS 如何工作、什么是区域文件以及其中的内容有一些错误的假设。所以我在下面的回答将来自我的理解,你认为这是一个问题。 RFC 1034/1035 是 DNS 如何工作的基础,但它们是旧的技术文档,因此在主题上并不是很好 introduction/tutorial。关于 DNS 的维基百科文章可能是更好的入门。

DNS 就像一棵树一样工作(除了我们更多地将它称为根,因为根又名 . 在顶部,然后我们讨论它下面的事情)。每个节点对它下面的所有内容负有行政责任,并将下面树的一部分委托给其他节点。

这样做有很多原因,但其中一个目标实际上是摆脱全局 hosts 文件,您当时(在 DNS 之前)拥有一个包含所有可能名称的列表和他们的知识产权。 现在有了 DNS,出于技术和非技术原因,您没有所有现有名称的中央列表。

从技术上讲,由于您可以在不同的区域中使用通配符(在您的示例中就是这种情况,请参见下文),名称列表是无限的或者至少大到您无法构建它。当然,它的变化率也很难追踪。

从技术上讲,正如我所说,每个节点都对其所做的事情负责......并且可能会决定它下面的域名列表(子节点)需要注意 publicly (这可能有也可能没有充分的理由,并且可能像 DNSSEC NSEC 枚举一样容易绕过也可能不容易绕过,但这不是这里的重点)。

那么让我们回到您现在可以剖析的示例的核心断言:

I checked the zone file for ews.com.link TLD from icann and it does not include ews.com.link domain name, when I am sending a DNS query or dig for ews.com.link, I am getting below response

首先,当您说 ICANN 时,您可能更多地是在谈论 IANA(因为 ICANN 本身在日常 DNS 中没有技术操作)。 IANA 负责处理根区 .,也称为顶点。总而言之,它基本上包含所有当前授权的 TLD 的列表。 此区域文件是 public,可以通过多种方式检索:通过 HTTP/FTP 从 IANA 网站下载,或者只是向允许它的 DNS 根服务器之一执行 AXFR DNS 请求,例如f.root-servers.net.

所以如果你得到它,并在其中搜索,你没有在其中找到 ews.com.link 是绝对正常的。但是您会发现 .link 这是当前有效的 TLD 委托给某些注册管理机构。

您也可以使用以 IANA whois 服务器为目标的 whois 检查:

$ whois -h whois.iana.org link
% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

domain:       LINK

organisation: Uniregistry, Corp.

[..]

whois:        whois.uniregistry.net

status:       ACTIVE
remarks:      Registration information: http://uniregistry.link

created:      2014-01-09
changed:      2018-06-06
source:       IANA

现在您可以递归地做同样的事情:.LINK 是一个 gTLD,所以根据 ICANN 合同。他们授权它(.LINK 注册表)发布其区域文件。这一要求对于所有 gTLD 都是相同的,而在相反的一侧,在 ccTLD 的情况下,很少能够获得它们的区域文件。

因此,如果您完成适当的程序,您将获得 .LINK 区域文件。同样,正如预期的那样,您不会在其中看到 ews.com.link,因为注册局已委托 com.link(这是 .LINK 下的普通域名,与其他域名一样,不要被第一个标签所迷惑com 这对某些决定在某个时候购买它的注册人的解释没有任何改变。然后随心所欲地使用它。

您可以在注册表权威域名服务器上检查 DNS 或使用注册表 whois 服务器检查此 com.link 域名是否已在 DNS 中注册和授权:

$ whois -h whois.uniregistry.net com.link
Domain Name: com.link
Registry Domain ID: DO_fd33bffce176f0124de4523031e7b404-UR
Registrar WHOIS Server: whois.west263.com
Registrar URL: west263.com
Updated Date: 2017-10-12T09:33:41.832Z
Creation Date: 2017-07-26T20:26:32.723Z
Registry Expiry Date: 2020-07-26T20:26:32.723Z
Registrar: Chengdu West Dimension Digital Technology Co., LTD

$ dig @NS1.UNIREGISTRY.NET com.link NS +nodnssec +norecurse +nocookie +noall +auth

; <<>> DiG 9.12.0 <<>> @NS1.UNIREGISTRY.NET com.link NS +nodnssec +norecurse +nocookie +noall +auth
; (1 server found)
;; global options: +cmd
com.link.       900 IN NS ns4.myhostadmin.net.
com.link.       900 IN NS ns6.myhostadmin.net.
com.link.       900 IN NS ns5.myhostadmin.net.
com.link.       900 IN NS ns3.myhostadmin.net.
com.link.       900 IN NS ns2.myhostadmin.net.
com.link.       900 IN NS ns1.myhostadmin.net.

所以这个域名委托给了myhostadmin。从技术上讲,它背后的组织可以让任何人下载它的区域文件(and/or 允许 AXFR 请求),让任何人都知道它下面的所有域名,比如你的 ews.com.link。然而,由于开头所述的原因,这并没有发生,因为这个实体没有理由这样做。

但是,您可以通过查询负责的名称服务器轻松检查给定名称是否存在(即使您无权访问它,也确实以某种方式在区域文件中列出):

$ dig @ns1.myhostadmin.net. ews.com.link +nodnssec +norecurse +nocookie +noall +ans

; <<>> DiG 9.12.0 <<>> @ns1.myhostadmin.net. ews.com.link +nodnssec +norecurse +nocookie +noall +ans
; (3 servers found)
;; global options: +cmd
ews.com.link.       900 IN A 101.132.249.163

其实,带着一点好奇心,你会发现有通配符记录。您可以很容易地看到,通过用任何随机字符串替换 ews 并返回完全相同的结果(这表明域名的完整列表不能在区域文件中,因为此通配符使服务器生成回复您正在查询的任何名称),或专门检查通配符记录:

$ dig @ns1.myhostadmin.net. *.com.link +nodnssec +norecurse +nocookie +noall +ans

; <<>> DiG 9.12.0 <<>> @ns1.myhostadmin.net. *.com.link +nodnssec +norecurse +nocookie +noall +ans
; (3 servers found)
;; global options: +cmd
*.com.link.     900 IN A 101.132.249.163

当您需要让名称服务器回复许多名称时,使用通配符记录是一个常见的功能,这些名称不一定事先知道并且可以经常更改,当您不想为每个名称重新配置您的名称服务器时。从技术上讲,使用通配符并非没有缺点,至少需要小心,但除此之外,它是一项核心 DNS 功能。

所以这一切都解释了为什么 ews.com.link 存在于 DNS 中(如果你查询它,你会得到一个 IPv4 地址,这要归功于 A 记录)但你不会找到它,因为是在任何区域文件中,首先是因为它不存在,正如预期的那样,在 .(root)或 com(TLD)中,也不在 com.link 区域文件中,即使您可以访问对它来说,只是因为它是一个通配符,所以特定的 ews 名称甚至没有写在任何地方。

您提供的所有其他名称根据它们的通用 something.COM.something 格式可能完全相同。我希望通过以上解释,您可以重新检查您喜欢的任何一个,并准备好通过所有这些解释更多地了解案例。

再次,大约

The same results for below domain names which I check them in their tld zone file

对于您列出的所有名称,您将在 TLD 区域文件中找到 com.TLD,但不会在 whatever.com.TLD 中找到,因为这与 TLD 区域文件无关,对于任何 TLD。