为什么我的 Linux 服务器能解析所有域名(甚至不存在的域名)

为什么我的 Linux 服务器能解析所有域名(甚至不存在的域名)

目前,每个域名都会解析到我的主服务器primary.example.com。例如,如果我ping randomdomain123.blah得到:

PING primary.example.com` (1.2.3.4) 56(84) bytes of data.

但预计会出现“未找到主机”错误。

最初我以为是因为我search example.com在我的 中有/etc/resolv.conf。但是,删除该 ping 后randomdomain123.blah仍解析到我的主域。重新启动服务器也没有任何效果。

我没有指定任何内容/etc/hosts

hostname从集群中的另一台服务器运行可提供secondary.example.com

我使用 Route 53 作为 DNS 提供商,相关 DNS 似乎是:

example.com.            A       1.2.3.4
primary.example.com.    A       1.2.3.4
*.primary.example.com.  CNAME   primary.example.com
*.example.com.          CNAME   www.example.com
www.example.com.        CNAME   primary.example.com

那么这是本地网络配置错误还是某些 DNS 问题?(或两者兼而有之?)

更新:我想要/需要通配符的原因是我运行此域的 Web 应用程序,因此 customer1.example.com 等需要解析到这台机器,并且需要自动执行 - 所以我想避免在每个新客户注册后更改 DNS。

更新 2:我的/etc/resolv.conf当前情况如下(因为我注释掉了搜索行):

### Hetzner Online AG installimage
# nameserver config
nameserver 213.133.99.99
nameserver 213.133.100.100
nameserver 213.133.98.98
nameserver 2a01:4f8:0:a102::add:9999
nameserver 2a01:4f8:0:a0a1::add:1010
nameserver 2a01:4f8:0:a111::add:9898
# search example.com

更新 3:跑步dig randomdomain123.blah +trace可获得:

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> randomdomain123.blah +trace
;; global options: +cmd
;; Received 12 bytes from 213.133.99.99#53(213.133.99.99) in 0 ms

更新 4:我可以确认ping randomdomain123.blah.最后一个点给出:

ping: unknown host randomdomain123.blah.

那么,这是否意味着,从这台机器上的 Java 应用程序中,我需要添加点并使用 URL 来http://randomdomain123.blah./somepage.html生成 HostNotFoundException?

答案1

您的问题是search中的字段/etc/resolv.conf与您的记录相结合*。您提到您已经尝试删除该设置。但事实证明,从 中删除它/etc/resolv.conf并不意味着搜索功能将被关闭。

如果没有/etc/resolv.conf设置search,将默认使用您的主机名的域。

我不知道是否有官方的方法可以完全禁用该search功能,但这似乎有效:

search .

或者,您可以将您的域名指向search没有记录的域名*,该域名可能包含一些其他记录以方便您使用。例如:

search search.example.com

然后您可以创建诸如server1.search.example.com但不是的记录*.search.example.com

答案2

看起来您已经配置了通配符 DNS 记录,即所谓的全部捕获配置:*.example.com 是 www.example.com 的 CNAME,而后者又是 primary.example.com 的 CNAME,然后解析为 1.2.3.4

这不是一个非常合理的设置,另请参阅:http://en.wikipedia.org/wiki/Wildcard_DNS_record

相关内容