a.gtld-servers.net是否具有所有.com域的列表?


14

当我这样做时dig @a.gtld-servers.net example.com,它将快速返回其名称服务器example.com以及这些名称服务器的IP地址(胶水记录)。

这是否意味着a.gtld-servers.net(和*.gtld-servers.net)在.com本地具有所有域的记录?他们反应非常快,所以我认为他们自己不会做进一步的查询。同样,对example.com的名称服务器的请求不会将我重定向到 domains.starting.with.e.gtld-servers.net或其他任何内容。

我确实意识到a.gtld-servers.net可能有几台机器,而且我被路由到离我最近的一台机器(通过这种新的单IP多机器技术),但这仅意味着其他几台机器具有所有.com领域。

编辑:感谢所有回答!跟进问题:如果有人“侵入”其中一台计算机,他们是否无法获得所有.com域的列表?这似乎是有用的信息,除非该信息已经在某处免费提供了?我知道域名信息是公开的,但仍然很难批量获取。我猜想*.gtld-servers.net不支持区域转移(尽管.edu的域名服务器至少在几年前就支持)。

注意:我意识到example.com不是一个实际的域-只需将其替换为上面的任何其他.com域(我最初拥有xyz.com,但是有人正确地对其进行了编辑以避免使用真实域名)。


后续问题:是的,他们可以获取该列表,并且对于大多数顶级域,此类列表不是公开可用的,并且“仅”允许您按名称进行查询。有些区域(当前)仍然是公共区域,例如根区域或瑞典区域。
弗拉迪米尔·Čunát

1
对于所有gTLD的@VladimírČunát,zonefile是公开的,请参阅czds.icann.org/en 这是根据ICANN合同制定的。对于ccTLD,它有所不同,但大多数都没有列出。
Patrick Mevzek '18年

@PatrickMevzek很好,尽管显然没有最有趣的通用顶级域名(com,org,...)。
弗拉迪米尔·Čunát

@VladimírČunát对于不存在的人员,您需要联系gTLD注册管理机构:他们将有一个单独的流程,因为ICANN合同要求他们具有访问其区域文件的权限。
Patrick Mevzek '18年

Answers:


18

是的,“ x.gtld-servers.net”是“ com”顶级域的权威服务器,因此它们具有.com域的所有“指针”。您可以通过运行查看TLD的名称服务器

dig -t ns com
dig -t ns us
dig -t ns dk
dig -t ns aero

对于单标签名称,最好包括结尾.-- com.us.以避免附加默认域名。(例如,当解析com里面的Contoso公司的网络,系统可能会尝试com.contoso.net. 之前com.
user1686

4
我认为dig从未使用过搜索路径。其他“真正的DNS调试工具”也不应该。(nslookup可以,但是请勿将其用于调试dns)。:-)
问比约恩·汉森(

1
哦,老办法。:D @AskBjørnHansen非常正确。只是使用dig而不是nslookup在所有情况下都使用
Dan Bradbury

因此,它们具有.com域的所有“指针”。确切地说,它们具有委派的所有.COM域名,即具有NS记录,这并不是绝对存在的所有.COM域名,但存在一些百分比差异。
Patrick Mevzek

@grawity只有在存在歧义的情况下,最后一个点才是绝对必要的。-t是可选的,您可以做,dig com NS而dig会做正确的事(我将记录类型大写,只是为了便于阅读,但这不是必须的)。但是,当您要查询可以解释为选项的内容时,就会遇到问题,可以通过点来解决。
Patrick Mevzek '18年

3

对域本身进行查询dig @a.gtld-servers.net com.–并查找“权威答案”标志:

snowflake ~ $ dig @a.gtld-servers.net com | grep flags
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
             ^^

1

您很早以前就已经收到了答复,但是我认为我们可以更加精确,您还有一个后续问题,实际上应该是另一个问题。

因此,让我们从头开始。

如果查询根服务器以了解.COM委派(请注意,以下所有内容.NET均以相同的方式应用,因为两者均由同一个注册表处理),则会收到以下答复:

$ dig @a.root-servers.net com. NS +noall +auth

; <<>> DiG 9.12.0 <<>> @a.root-servers.net com. NS +noall +auth
; (1 server found)
;; global options: +cmd
com.            172800 IN NS e.gtld-servers.net.
com.            172800 IN NS b.gtld-servers.net.
com.            172800 IN NS j.gtld-servers.net.
com.            172800 IN NS m.gtld-servers.net.
com.            172800 IN NS i.gtld-servers.net.
com.            172800 IN NS f.gtld-servers.net.
com.            172800 IN NS a.gtld-servers.net.
com.            172800 IN NS g.gtld-servers.net.
com.            172800 IN NS h.gtld-servers.net.
com.            172800 IN NS l.gtld-servers.net.
com.            172800 IN NS k.gtld-servers.net.
com.            172800 IN NS c.gtld-servers.net.
com.            172800 IN NS d.gtld-servers.net.

因此,总而言之,这些名称服务器中的任何一个都是权威的,.COM并且它们都具有相同的数据(因此,您可以扩大您的问题,a.gtld-servers.net绝不是特别的,下面的内容将适用于这些名称服务器中的任何一个)。

当您查询这些域名服务器的任何.COM/.NET域名时,它们都需要权威地用您所要求的域名的域名服务器进行答复。

因此,按照定义,“这意味着a.gtld-servers.net(和* .gtld-servers.net)在本地具有所有.com域的记录吗?”,但这确实意味着!关于“所有”的一些警告,请参见下文。

请注意,您谈论的是胶粘记录,这是一种特定情况,而不是最常见的情况。通常,在上述任何一个名称服务器上对域的请求都只会返回一个或多个NS记录。

让我们花时间解决您文本中的其他次要问题:

他们的反应非常快,所以我认为他们自己不会做进一步的查询。

从定义上说,权威的名称服务器具有需要用来回复查询的数据,而不必依赖任何外部资源,否则它就不是真正的权威。

至于速度,这在某种程度上是主观的,并且高度取决于您要测试的内容和方式,但是有几个因素:默认情况下,DNS使用的UDP比TCP轻,因此比TCP更快,并且这种名称服务器是任意广播的,这意味着您总是很幸运有一个“靠近”你。

我确实意识到a.gtld-servers.net可能是几台机器

您可以删除“可能” :-)这些名称服务器收到太多查询,以至于任何一个盒子都无法承受。

如果您访问https://stat.ripe.net/192.5.6.30#tabId=routing,您将看到很多可能难以消化的信息,但是基本上,看到的是该IP a.gtld-servers.net(实际上是是由几家AS共同宣布的,这些AS都由一家公司控制,这是任播的有力指标,对于大多数DNS来说效果都很好。

如果您访问http://www.root-servers.org/,则可以了解更多信息。这与根名称服务器有关,不再与根名称服务器有关.COM,但从技术上讲,这是完全相同的。例如,您可能发现13个根服务器由930个实例中的12个不​​同组织管理(一个实例不仅是一台服务器,它还是一个位置,是一个“存在点”,操作员在其中存在一个“节点”,通常是路由设备,负载平衡/故障转移设置中的多台服务器,某些监视/远程功能等)。F例如在222个地方。

并且我被路由到离我最近的一台(通过这种新的单IP多计算机技术),但这仅意味着其他几台计算机都具有所有.com域。

是的,很多机器都有所有.COM域名的列表。但是首先要精确:在这些名称服务器上,您将获得所有.COM域名的所有名称服务器的列表...这意味着对于未委派的域名,您将在这里找不到它们。这可能在多种情况下发生:

  1. 注册域名时,可​​以选择不设置名称服务器,或以后将其删除。
  2. 您的注册商,例如由于付款纠纷,可能会clientHold在您的域名上添加状态,从而使其从DNS中消失
  3. serverHold无论出于何种原因,注册管理机构都可以将该域设置为启用状态。

(如果您想了解有关这些状态和其他状态的更多信息,请参见https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en)。

取决于您定义“全部”的方式以及对此类数据的处理方式,然后可能无法真正获得全部数据。

在上述所有情况下,该域都不会出现在注册表DNS服务器上,但是在执行Whois查询时就会出现。因此whois服务器(同样,不是一个盒子)也将具有...所有.COM域名的列表,甚至比名称服务器上的数据更多,因为:

  1. 您实际上拥有所有域名,包括那些没有解析的域名,因此不在注册表名称服务器上
  2. whois提供了更多信息,例如联系数据

而且,这些仍然只是具有某些或部分域名列表(或部分域名)的面向公众的注册服务机构。

至于您的跟进:

跟进问题:如果有人“入侵”其中一台计算机,他们是否无法获得所有.com域的列表?

从技术上讲,是的。但:

  1. 这当然不是您在网上找到的最简单的目标
  2. 在这种特定情况下,数据已经免费提供。

.COM是gTLD,因此与ICANN签订了合同。ICANN要求所有gTLD注册管理机构至少每天一次发布其区域文件(这基本上是名称服务器使用的文件,因此,NS记录以及A / AAAA胶水),并且只要您签署协议,任何人都可以免费访问为了确保您不会出于“不良”目的(例如自己重新发布)而重复使用这些数据。

有关所有详细信息,请参见https://czds.icann.org/en。这可以使您访问数百个gTLD区域文件。

请注意,如果您的问题扩展为“如果有人入侵其中一台计算机并更改了添加或删除.COM域名的内容...”,那么我们可以快速回答:

  1. 这些变化不会在全球范围内看到,因为您只破解了一个盒子,并且有无数的域名服务器,首先是按名称命名,然后通过任意广播
  2. DNSSEC可能会使您的更改显示为错误,因此会很快发现(当然,运营商本身会采取任何本地对策)。

简而言之,这样做并不是使.COM域名混乱的最好方法,还有其他方法。

我知道域名信息是公开的,但仍然很难批量获取。

有关ICANN计划,请参见上文。至于ccTLD,情况各有不同,但更多的是它们不实时访问其区域文件。

有时,您可以在一段时间后访问它,例如通过“打开数据”移动。一个示例:https : //opendata.afnic.fr/en/products-and-services/services/opendata-en.html表示.FR域名。

我猜* .gtld-servers.net不支持区域传输(尽管至少在几年前,.edu的名称服务器支持)。

易于测试:

$ for ns in $(dig NS . +noall +ans | grep 'IN NS' | awk '{print $5}') ; do echo $ns ; dig @$ns com. AXFR; done
c.root-servers.net.

; <<>> DiG 9.12.0 <<>> @c.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
m.root-servers.net.

; <<>> DiG 9.12.0 <<>> @m.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
i.root-servers.net.

; <<>> DiG 9.12.0 <<>> @i.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
e.root-servers.net.

; <<>> DiG 9.12.0 <<>> @e.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
j.root-servers.net.

; <<>> DiG 9.12.0 <<>> @j.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
l.root-servers.net.

; <<>> DiG 9.12.0 <<>> @l.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
g.root-servers.net.

; <<>> DiG 9.12.0 <<>> @g.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
k.root-servers.net.

; <<>> DiG 9.12.0 <<>> @k.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
b.root-servers.net.

; <<>> DiG 9.12.0 <<>> @b.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
h.root-servers.net.

; <<>> DiG 9.12.0 <<>> @h.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
d.root-servers.net.

; <<>> DiG 9.12.0 <<>> @d.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

;; Connection to 199.7.91.13#53(199.7.91.13) for com. failed: timed out.
;; QUERY SIZE: 44

;; Connection to 199.7.91.13#53(199.7.91.13) for com. failed: timed out.
;; QUERY SIZE: 44

;; connection timed out; no servers could be reached
;; Connection to 199.7.91.13#53(199.7.91.13) for com. failed: timed out.
a.root-servers.net.

; <<>> DiG 9.12.0 <<>> @a.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.
f.root-servers.net.

; <<>> DiG 9.12.0 <<>> @f.root-servers.net. com. AXFR
; (1 server found)
;; global options: +cmd
;; QUERY SIZE: 44

; Transfer failed.

不,目前,没有.COM权威的名称服务器接受AXFR查询。但这并不一定在所有地方都一样。如果查询f.root-servers.net名称服务器,则可以执行AXFR查询以发布所有TLD。其他一些顶级域名(TLD)也可能允许这样做。

请注意,有很多关于禁止公开AXFR查询的建议。事实是,从定义上看,它们是一个巨大的答案,并且如果重复,可能会使服务器承受压力,这是事实。On可以无休止地争论为什么/是否需要公众提供此信息。在DNS的开头,它经常用于在名称服务器之间复制区域(现在有更好的替代方法)。因此通常会禁用AXFR ...除非您以某种特定方式(即NSEC而非NSEC3变体)同时进行DNSSEC,否则很容易遍历标准DNS查询,而无需AXFR,区域并重建区域文件。有工具可以做到这一点。

还要注意,在线上的各种提供商会向您出售许多TLD的区域文件和/或所有域名的列表,他们通过各种方式获得了该域名(其中一个主意是:您采用打开的区域文件(例如).COM,对于TLD则.example一一查询。您在中找到的所有名称.COM,除了可以根据在搜索到的TLD中最常用的语言进行词典漫游之外,还可以给您带来一些想法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.