На тестовой ВМ я настроил / 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?
Edit1
Все эти команды запускаются изнутри vm (foo)
networking
nslookup
spuder
источник
источник
Ответы:
Это очень просто, DNS-преобразователь (10.0.0.2) не имеет записи для
foo
,nslookup
не считает/etc/hosts
, это специально для проверки записей DNS для серверов имен (вотns
в nslookup).Так как ваш DNS-сервер не имеет записи для
foo
, разрешение имени не удается.источник