1

На тестовой ВМ я настроил /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)

1 ответ1

4

Очень просто, у DNS resolver (10.0.0.2) нет записи для foo .

nslookup не рассматривает /etc/hosts , он специально проверяет записи DNS для серверов имен (это ns в nslookup).

Поскольку ваш DNS-сервер не имеет записи для foo , разрешение имени не выполняется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .