在测试虚拟机上,我已经设置了 /etc/hosts 来解析机器名称。
为什么nslookup无法找到服务器?
$hostname
foo
$hostname -f
foo
$cat /etc/hosts
10.2.192.62 foo foo.openstacklocal sdb nid01 nid02 nid03 nid04
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
$uname -n
foo
$ping foo
PING foo (10.2.192.62) 56(84) bytes of data.
64 bytes from foo (10.2.192.62): icmp_seq=1 ttl=64 time=0.028 ms
$nslookup foo
Server: 10.0.0.2
Address: 10.0.0.2#53
** server can't find foo: NXDOMAIN
我对 nslookup 的理解是它应该查询 dns 服务器(或 /etc/hosts)来查找机器名称。
为什么在这种情况下我无法解析 foo ?
編輯1
所有这些命令都是从虚拟机(foo)内部运行的
答案1
这很简单,DNS 解析器(10.0.0.2)没有 的条目foo
。
nslookup
不考虑/etc/hosts
,它专门用于检查名称服务器的 DNS 条目(即ns
nslookup 中的)。
由于您的 DNS 服务器没有 的条目foo
,因此名称解析失败。