我的 centos 客户机设置如下。它从 DHCP 获取其 IP 地址。
[marathon@server ~]$ domainname
mydomain.com
[marathon@server ~]$ hostname
server
[marathon@server ~]$ more /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=server.mydomain.com
[marathon@server ~]$ dnsdomainname
dnsdomainname: No address associated with name
我认为这一切都还好。
但最终能否通过 DNS 解析又是另外一回事
[marathon@server ~]$ nslookup
> server
*** Can't find server: No answer
> server.mydomain.com
*** Can't find server.mydomain.com: No answer
> server.mydomain.com.mydomain.com
Name: server.mydomain.com.mydomain.com
Address: 230.230.65.148 <------- found it!
我已经在另一台机器上验证了这一点。server.mydomain.com 无法解析,但 server.mydoain.com.mydomain.com 可以解析。
我的配置有什么问题?
答案1
问题出在您的 DNS 服务器上。我认为您应该检查 DNS 服务器上 mydomain.com 的区域文件。nslookup 直接查询 DNS 服务器,而不是 hosts 文件。
您当然也可以查看 /etc/resolv.conf -search
当您将其提供给命令行程序(通过系统resolver
)时,其参数会附加到单个主机名。但您自己已经指出 - 错误可以在其他机器上复制。
因此,如果 nslookup 对 server.mydomain.com.mydomain.com 给出肯定的答案,则这来自 DNS 服务器,可能是由于mydomain.com.zone
文件配置错误。查看该问题,并请记住该$ORIGIN
指令必须始终以点结尾。如果不是,它可能会给出您所描述的错误。
正确输入应为:
$ORIGIN mydomain.com.
如果您纠正了区域文件中的错误,请不要忘记重新启动 DNS 服务器。