wfa*_*ulk 36 domain-name-system tld
我有名为 like 的服务器server.prod.example.com
,我经常以server.prod
. 最近,这些主机名开始解析为 127.0.53.53。
事实证明 ICANN 最近启用了.prod
TLD。此外,发送到.prod
名称服务器的每个请求都会被解析为 127.0.53.53,而不是作为 NXDOMAIN 返回,这将允许解析继续正常工作。(我猜这背后的目的是让人们知道他们的东西会在他们开始解决真实的事情之前变得更糟。)
我怎样才能避免像这样为每个主机输入我的域名?
这还在偶尔咬你吗?我找不到新 TLD 的列表以及何时添加它们,所以我自己设置了一个:https : //twitter.com/newgtldannounce
fak*_*ker 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"
Run Code Online (Sandbox Code Playgroud)
至于如何解决这个问题:取决于用例,我可能只会将它们添加到.ssh/config
短名称中。或者真正开始使用 FQDN。
wfa*_*ulk 13
如果您输入一个没有点的主机名,DNS 解析器会尝试通过首先将配置的搜索域附加到该主机名来查找该主机名。
对于大多数解析器,如果您使用包含至少一个点的主机名,解析器首先会自行尝试该主机名,然后回退到附加配置的搜索域。
许多解析器有能力改变他们的行为,以便他们用点附加主机名的搜索域。这通常是通过一个名为“ ndots
”的选项来告诉解析器在它首先尝试自己查找主机名之前主机名必须有多少个点。为了使server.prod
工作,将此行添加到您的resolv.conf
:
options ndots:2
Run Code Online (Sandbox Code Playgroud)
如果您还希望能够解析 server.subzone.prod,则必须将该选项设置为 3,等等。
如果有人知道如何在 MacOS X 中完成这项工作,请告诉我;更改/etc/resolv.conf
被记录为不起作用(并且不起作用),我无法弄清楚正确的scutil
咒语。
(注意:我在这里对冲我的赌注超出了可能的保证。我相信该ndots
选项适用于 99% 的(非 MacOSX)Unix 系统。)