DNS刚开始将我的server.prod地址解析为127.0.53.53


38

我有名为like的服务器server.prod.example.com,我经常以身份登录server.prod。最近,这些主机名开始解析为127.0.53.53。

事实证明,ICANN最近启用了.prodTLD。此外,发送到.prod名称服务器的每个请求都解析为127.0.53.53,而不是作为NXDOMAIN返回,这将使解析继续正常运行。(我想这是为了让人们知道在解决实际问题之前,他们的东西会变得更糟。)

如何避免必须为每个这样的主机输入域名?

偶尔还会咬你吗?我找不到新TLD的列表以及何时添加新TLD,所以我自己设置了一个:https//twitter.com/newgtldannounce


5
ICANN的这一更改也很好地提醒了让您的应用程序使用搜索路径是不好的。虽然此问题对于用户输入何时导致此行为绝对有好处,但是最好让您的应用程序使用主机文件条目或带点后缀的FQDN。很少有人意识到,glibc在尝试定义的每个搜索后缀都超时之前不会继续使用下一个服务器。
安德鲁B

13
我想花一点时间提醒大家,这.prod是一个愚蠢的 TLD。:(
莫妮卡(Monica)

您的问题回答了我要问的问题,说的是“ ICANN最近启用了<whatever> TLD”。原来我在局域网中使用.haus并开始获取它们:D感谢您的
提问

2
@LightnessRacesinOrbit .prod是Google的许多新TLD之一。怪他们。
迈克尔·汉普顿

@LightnessRacesinOrbit如果您以这种方式看待它可能很愚蠢,但是同时依靠搜索列表或使用未全局注册的名称也以相同的方式不好,因为您会遇到冲突。
Patrick Mevzek '18年

Answers:


37

当您看到内部域突然解决127.0.53.53您的域名冲突时,ICANN试图告诉您您迫切需要修复DNS配置。
如果它按照您的建议返回NXDOMAIN,那么您是正确的,它将继续工作- 现在

它还会将您内部打算的DNS查询泄漏给外部各方。

更糟糕的是,将来有人可能会注册server.prod并给您带来更多麻烦。

有关更多信息,请参见此处https://icann.org/namecollision或运行:

$ dig -t TXT server.prod +short
"Your DNS configuration needs immediate attention see https://icann.org/namecollision"

至于如何解决这个问题:根据用例,我可能只是将它们添加到.ssh/config短名称中。或者真正开始使用FQDN。


5
@MichaelHampton不是,我推荐第5.3章:Train users and system administrators in using FQDNs;)
造假者

3
是的,因为我真的想每天输入20次,ssh db.myreallylongdomainnamethatsomeassholefrommarketingpicked.com而不是ssh db
wfaulk 2014年

3
@wfaulk:为什么会是个“笑话”?如果您不喜欢过度输入,为什么您总是痴迷于避免与过度重复输入的计算机进行交互的最佳机制?你们中的一些Unix书呆子只是个笨蛋。
与莫妮卡(Monica)

4
@Lightness通常是因为我们倾向于吸引堡垒主机。随着时间的流逝,我们的公司霸主越来越不可能让他们的员工在公司发行的设备上运行Unix,并且从我们的访问点访问shell脚本所节省的工时轻松地超过了GUI所提供的一切。GUI 文本控制台都有各自的不良习惯。:P
安德鲁B

4
这里不是讨论GUI与CLI的地方。我提出了一个解决方案,它可能并不是每个人都适合的,仅此而已。
造假者2014年

13

如果键入不带点的主机名,则DNS解析器会尝试通过首先将配置的搜索域附加到该主机名来查找该主机名。

对于大多数解析器,如果您使用的主机名中至少包含一个点,则解析器首先会自行尝试该主机名,然后回退以追加已配置的搜索域。

许多解析器都有能力更改其行为,以便它们在主机名的搜索域后加点。这通常是通过名为“ ndots” 的选项进行的,它告诉解析器主机名首先尝试自行查找主机名之前必须有多少个点。为了server.prod工作,请将此行添加到您的resolv.conf

options ndots:2

如果还希望解析server.subzone.prod,则必须将选项设置为3,依此类推。

如果有人知道如何在MacOS X中实现此功能,请告诉我;更改/etc/resolv.conf已记录为无效(并且无效),我无法确定正确的方法scutil

(注意:我在这里对赌注超出了可能的保证。我相信该ndots选项将在99%的(非MacOSX)Unix系统上运行。)


1
您将OS解析程序库与BIND混淆了。/etc/resolv.conf由操作系统拥有。:)
Andrew B

大多数(如果不是全部的话)Unix OS解析器会直接从BIND的解析器库中窃取,如果不是直接使用它们的话。我说出BIND的观点是,可能有一些操作系统确实在使用一些不响应“ ndots”选项的东西。
wfaulk 2014年

2
这样的陈述更有可能使人们误以为由C标准库实现的解析器依赖于ISC提供的库。对于glibc,最肯定不会
安德鲁B

1
很公平。已修复,尝试合并它在不引用BIND的情况下可能无法正常工作。
wfaulk 2014年

0

其他答案为您提供了该问题的技术解决方案。但是没有人回复您:

我找不到新TLD的列表以及添加它们的时间

就是这样

您有各种各样的方法。

  1. 访问IANA网站:https//www.iana.org/domains/root/db;您将看到当前受委派的TLD列表,这些列表可以解析并且位于根区域中。如果单击它们,则在底部,您会获得一个日期,告诉您它们何时出现
  2. 可以使用完全相同的数据whois,例如您的情况whois -h whois.iana.org prod | grep created将为您created: 2014-08-23
  3. Twitter / Mastodon上有各种各样的机器人会在IANA内容更改时发布,例如,请参见https://twitter.com/ianawhoishttps://twitter.com/rootchanges
  4. IANA数据的更新可能会有些滞后,因此有关gTLD的规范数据库,以及查看它们处于哪个阶段(现在,自2012年ICANN引入新gTLD的回合大体完成以来,还有些争议,但是新回合将到达),在这里:https : //gtldresult.icann.org/application-result/applicationstatus;您可以按TLD进行搜索。所有通用顶级域名(gTLD)也都规定了一个特定的起始期限,因此您可以在此处找到数据:https : //newgtlds.icann.org/en/program-status/sunrise-claims-periods 您可以导出所有数据。
  5. 您还可以在JSON中使用ICANN数据:https ://www.icann.org/resources/registries/gtlds/v2/gtlds.json
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.