我有名为 的服务器server.prod.example.com
,我经常以 的身份登录它们server.prod
。最近,这些主机名开始解析为 127.0.53.53。
事实证明,ICANN 最近启用了.prod
TLD。此外,发送到.prod
名称服务器的每个请求都将被解析为 127.0.53.53,而不是返回 NXDOMAIN,这将使解析继续正常工作。(我猜这背后的目的是让人们知道,在开始解析为真实内容之前,他们的资料会变得更糟。)
我怎样才能避免像这样为每个主机输入我的域名?
这是否还会偶尔困扰你?我找不到新顶级域名的列表以及它们添加的时间,所以我自己设置了一个:https://twitter.com/newgtldannounce
答案1
当您看到内部域突然解析为时,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。
答案2
如果您输入的主机名中没有点,DNS 解析器将尝试通过首先将配置的搜索域附加到该主机名来查找该主机名。
对于大多数解析器来说,如果您使用至少带有一个点的主机名,则解析器将首先自行尝试该主机名,然后再附加配置的搜索域。
许多解析器都能够改变其行为,以便它们在主机名的搜索域后附加点。这通常是通过一个名为“ ndots
”的选项来实现的,该选项告诉解析器在尝试自行查找主机名之前,主机名必须有多少个点。为了使其正常server.prod
工作,请将此行添加到您的resolv.conf
:
options ndots:2
如果您还想解析 server.subzone.prod,则必须将选项设置为 3,等等。
如果有人知道如何在 MacOS X 中实现此功能,请告诉我;/etc/resolv.conf
记录显示更改不起作用(并且不起作用),我无法找出正确的scutil
咒语。
(注意:我在这里的赌注可能比实际的赌注要大。我相信该ndots
选项将适用于 99% 的(非 MacOSX)Unix 系统。)
答案3
其他答案为您提供了该问题的技术解决方案。但没有人回复您的:
我找不到新顶级域名的列表以及它们被添加的时间
就是这样。
你有各种各样的方法。
- 访问 IANA 网站:https://www.iana.org/domains/root/db;您将看到当前已授权的 TLD 列表,即已解析且位于根区域中的 TLD。如果您单击其中任何一个,底部将显示一个日期,告诉您它们出现的时间
- 同样的这些数据也可以通过以下方式获得
whois
,例如,在你的情况whois -h whois.iana.org prod | grep created
下created: 2014-08-23
- Twitter/Mastodon 上有各种机器人会在 IANA 内容发生变化时发布消息,例如https://twitter.com/ianawhois或者https://twitter.com/rootchanges
- IANA 数据更新可能稍微滞后,因此 gTLD 的规范数据库以及查看它们处于哪个阶段(现在这有点没有意义,因为 2012 年 ICANN 引入新 gTLD 的一轮基本结束,但新一轮即将到来)位于此处:https://gtldresult.icann.org/application-result/applicationstatus;您可以按 TLD 进行搜索。所有 gTLD 也都规定了特定的起始期限,因此您可以在此处找到数据:https://newgtlds.icann.org/en/program-status/sunrise-claims-periods 您可以导出所有数据。
- 您还可以使用 JSON 中的 ICANN 数据:https://www.icann.org/resources/registries/gtlds/v2/gtlds.json