当您执行Whois时,Linux会问谁?


11

当您这样做时:

$ whois stackoverflow.com

您的Linux首先执行DNS查询,找到stackoverflow.com的IP,然后直接在那询问信息吗?

还是问一个“根” whois服务器(是否以类似的方式在Linux发行版中对“根whois服务器”的IP进行了硬编码/etc/bind/db.root),然后委托给另一个提供信息的whois服务器?

什么是连接流程?

my computer doing `whois ...` ---> root whois server ---> another whois server ---> information

要么

my computer doing `whois ...` ---> DNS server (?) ---> ... ?

Answers:


12

如果您使用的是Marco d'Itri'swhois,则可以添加该--verbose选项以查看其功能。对于stackoverflow.com,首先要询问whois.verisign-grs.com(请参阅其WHOIS服务器列表),这为它提供了许多信息,包括Stack Overflow的注册商是Name.com及其WHOIS。服务器是whois.name.com; 因此,它随后继续询问whois.name.com。

该协议记录在RFC 3912中。该whois联机帮助页还提供了有用的指针。


谢谢(Debian的默认whois似乎是Marco d'Itri)。是否有命令要求whois使用verisign-grs以外的其他WHOIS服务器?我在中找不到man whois
巴斯基(Basj)

其他:您说过然后查询whois.name.com。这是否意味着每个注册商都必须拥有一个注册商服务器?这样做whois google.fr时,似乎查询的不是Whois,而是经过硬编码的whois,即whois.nic.fr。那正确吗?
巴斯基(Basj)

正确,Debian的默认设置whois为Marco d'Itri(Marco是Debian的开发人员)。您正在寻找的选项是-h(请参阅参考资料whois -h whois.name.com stackoverflow.com)。注册商不必都拥有WHOIS服务器;只有TLD的“权威”注册商才能进行AFAIK。因此,在本google.fr例中,注册商是MARKMONITOR,但信息来自AFNIC,后者是TLD的注册商.fr
史蒂芬·基特

非常感谢。有趣的事情是:执行时whois stackoverflow.com我获得的信息很少,但是执行时却whois -h whois.name.com stackoverflow.com获得了更多信息(Admin Organization: Stack Exchange, Inc.街道地址等)whois stackoverflow.com。难道是预期的行为whois,即你要首先whois domain.com,然后看whois服务器,你必须重做一个whois -h ... domain.com有更多的信息?whois当他找到注册服务商whois时,是否应该直接做所有这些事情?
巴斯基(Basj)

您应该获得相同的信息,因为whois stackoverflow.com 确实会询问whois.name.com本身(至少在5.2.17版中如此)。您可能会遇到速率限制问题,如果发出太多请求,whois.name.com会暂时阻止您(但会收到错误消息)。如果我转储whois stackoverflow.comwhois -h whois.name.com stackoverflow.com比较它们,则在两种情况下我都会得到完全相同的name.com输出。
斯蒂芬·基特

11

斯蒂芬回答了核心部分,但您还有其他要解决的问题:

  1. Whois是一个定义不明确的协议。没有层次结构,没有根本的whois,等等。事实上,在whois系统中与DNS没有任何关系,除了它们从同一来源(注册表)获取数据的事实之外,您应该首先将它们完全分开。数据库),它们完全独立运行。
  2. 在这方面,每个TLD注册管理机构的运作方式都不同。通用顶级域名(gTLD)本身就是一个案例:根据ICANN合同,目前,每个注册服务商都有义务让Whois服务器回答其处理的所有名称。注册表具有相同的要求。注册中心whois输出列出了注册服务商whois服务器(但正如我在上面的评论中所写,这在最近有所更改-实际上没有充分的理由-破坏了许多whois客户),主要是由于历史原因很快消失了:过去(现在仍适用于.COM / .NET-最近切换了.JOBS类,但以前是在同一条船上,请参阅https://www.icann.org/resources/pages/thick-whois-transition-policy-2017- 02-01-en)注册中心,其中“薄”表示注册中心不存储有关联系人的数据,只有注册服务商可以存储。这意味着,如果您真的想获取有关域名的数据并查找出现问题时与谁联系(那是-至今仍然是-Whois协议的最初目标),则需要首先查询注册表whois服务器以获取基本信息集并找到注册服务商whois服务器,然后联系此注册服务商whois服务器以访问所有联系信息。这解释了为什么今天.COM / .NET的注册表输出仅提供有关域名服务器,日期和状态的数据。还有注册服务商whois服务器名称,whois客户端会尝试使用该名称,但有时由于事情变迁而无法这样做(请参见上面的评论)
  3. ccTLD几乎总是不能这样工作,即使使用注册服务商,查询注册表whois服务器会获得所有所需的结果,即使缺少某些结果(例如出于隐私原因),您也不需要查询注册服务商的whois服务器为注册管理机构并未授权他们为其所处理的ccTLD运行该证书(但是,某些注册服务商仍会这样做)。例如,这解释了您对.fr域名的观察。
  4. 一些whois客户端对whois服务器的地址进行硬编码,一些whois.nic.$TLD默认情况下尝试使用,它通常作为注册表运行,并且$TLD通常具有nic.$TLD主要的操作域名。
  5. IANA处理登记的名单在https://www.iana.org/domains/root/db并在每个注册表页面,如https://www.iana.org/domains/root/db/fr.html你将在一行中WHOIS Server列出与所选注册表相关的whois服务器。请注意,但是有时它可能会过时或出错。您还可以通过对进行TLD的whois查询来访问此数据whois.iana.org,它将为您提供有关注册表的数据,包括whois密钥中的whois服务器。
  6. 还有另一个技巧。如果您进行DNS查询(但是请记住,这一点不会使第一点无效),$TLD.whois-servers.net因为它将为您提供对应的Whois服务器的名称$TLD,作为CNAME记录。一些whois客户可能会使用此技巧,但我对此表示怀疑(whois尽管GNU 客户可能是其中之一,或者可能是FreeBSD)。请注意,该计划纯属私人性质,即使应有,也不会由涉及所有这方面的最高机构(如ICANN或IANA)处理。例如,dig uk.whois-servers.net +short将为您提供:whois.nic.uk.。这样做的魅力在于,如果这种更改(非常罕见)或(在更频繁的情况下)新注册管理机构/顶级域名(TLD)生效,则应进行更新。
  7. 一些注册管理机构发布其whois服务器地址端点,使用SRV该端点是专用的DNS记录类型,以指定域名在何处处理特定服务。所以,如果你这样做dig _nicname._tcp.fr +short,你的确会得到0 0 43 whois.nic.fr.赋予,除了不使用的两个第一号(但可用于负载平衡/故障切换),端口号(43)和服务器名称whois.nic.fr,以取得联系nicname,这是whois根据服务的官方注册名称(https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml),用于fr域。许多注册管理机构都没有使用它,但应该是,SRV记录恰好提供了这种分布式自动发现机制,该机制甚至可以在DNS树的任何级别上起作用,从而适用于注册管理机构和“子”注册管理机构等。 。

请注意,一旦更新的协议RDAP取代了whois,以上的许多内容都将发生变化。它已经由多个RFC定义,并已在某些注册管理机构中使用(在生产RIR的过程中,在某些域名注册管理机构的实验中使用),但尚未由于gTLD的合同和注册商(非出于技术原因)尚未被强制使用在世界范围内,ccTLD注册管理机构似乎不愿放弃其当前的Whois服务器,而代之以RDAP服务器。


2

您的WHOIS客户端询问WHOIS服务器(在TCP端口43上),并且它直接响应。Debian的WHOIS客户端有一个硬编码的服务器列表,可以自动从中选择。IANA还提供WHOIS服务。

来源:RFC 3912


谢谢。该tld_serv_list文件在Debian中不可用吗?我搜索了文件系统,但找不到它。这是否意味着它是在whois二进制文件中编译的/usr/bin/whois
巴斯基(Basj)

1
实际上,它已被编译为二进制文件(请参阅的输出strings /usr/bin/whois)。
斯蒂芬·基特
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.