目前,每个域名都解析为我的主服务器primary.example.com.所以例如,如果我ping randomdomain123.blah我得到:
PING primary.example.com` (1.2.3.4) 56(84) bytes of data.
但我期待’找不到主机’的错误.
最初我以为是因为我在/etc/resolv.conf中搜索了example.com.但是,删除ping之后,randomdomain123.blah仍然解析为我的主域.重新启动服务器也没有任何效果.
我在/ etc / hosts中没有指定任何内容.
从群集中的另一台服务器运行主机名会提供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问题? (或两者?)
更新:我想/需要通配符的原因是我运行了这个域的webapp,所以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应用程序,我需要附加点并使用像http://randomdomain123.blah./somepage.html这样的URL来生成HostNotFoundException?
解决方法
您的问题是/etc/resolv.conf中的搜索字段与您的*记录相结合.您提到您已尝试删除该设置.但事实证明,从/etc/resolv.conf中省略它并不意味着将关闭搜索功能.
如果/etc/resolv.conf不存在,搜索设置将默认为主机名中的域.
我不知道是否有官方方法可以完全禁用搜索功能,但这似乎有效:
search .
或者,您可以将搜索指向没有*记录的域,其中可能包含一些其他记录以方便您使用.例如:
search search.example.com
然后,您可以创建记录,例如server1.search.example.com,但不能创建* .search.example.com.