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

wfa*_*ulk 36 domain-name-system tld

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

事实证明 ICANN 最近启用了.prodTLD。此外,发送到.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。

  • @MichaelHampton 不是真的,我推荐第 5.3 章:`培训用户和系统管理员使用 FQDN` ;) (5认同)
  • @Lightness 通常是因为我们倾向于倾向于堡垒主机。随着时间的推移,我们的企业霸主越来越不可能让他们的员工在他们公司发行的设备上运行 Unix,并且通过从我们的访问点访问 shell 脚本节省的工时胜过 GUI 所提供的任何东西. GUI *和*文本控制台都有与之相关的坏习惯。:P (4认同)
  • 这不是进行 GUI 与 CLI 讨论的地方。我提出了一个解决方案,它可能不是对每个人都是最好的,仅此而已。 (4认同)
  • 是的,因为我真的很想,一天 20 次,输入 `ssh db.myreallylongdomainnamethatsomeassholefrommarketingpicked.com` 而不是 `ssh db`。 (3认同)
  • @wfaulk:为什么会是“笑话”?如果您不喜欢过多的打字,为什么要执着地避免与避免过多打字的计算机进行交互的最佳机制?你们中的一些 Unix 书呆子只是粗鲁。 (3认同)
  • @LightnessRacesinOrbit:因为 GUI 在存储条目列表方面没有垄断;因为如果你有预配置的条目,`~/.ssh/.config` 已经被建议了;并且因为预先进入数十到数百台服务器的整个概念从表面上看是荒谬的 (3认同)
  • @wfaulk 就像我说的,取决于用例。如果只有少数服务器,`~/.ssh/config` 条目就可以工作。 (2认同)
  • @developerwjk:我希望这是个玩笑 (2认同)

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 系统。)

  • 这样的说法更容易误导人们认为C标准库实现的解析器依赖于ISC提供的库。在 glibc 的情况下,[它肯定不会](https://sourceware.org/git/?p=glibc.git;a=tree;f=resolv;h=3a9c217458a02455231929f253846175244b2881;hb=HEAD)。 (2认同)