Кто решает имя?

346
dangonfast

Если я сделаю это:

» dig m1.dcos  ; <<>> DiG 9.10.3-P4-Ubuntu <<>> m1.dcos ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61257 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1280 ;; QUESTION SECTION: ;m1.dcos. IN A  ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Mon Jul 10 14:50:50 CEST 2017 ;; MSG SIZE rcvd: 36 

И это:

» ping m1.dcos PING m1.dcos (192.168.65.90) 56(84) bytes of data. 64 bytes from m1.dcos (192.168.65.90): icmp_seq=1 ttl=64 time=0.213 ms 64 bytes from m1.dcos (192.168.65.90): icmp_seq=2 ttl=64 time=0.224 ms ^C --- m1.dcos ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.213/0.218/0.224/0.015 ms 

Некоторые вопросы:

  1. Почему бы мне не получить и ОТВЕТИТЬ за раздел dig
  2. Почему пинг разрешает адрес, а digнет?
  3. Как мне разрешить адрес (в командной строке, bashв Ubuntu) как ping does?
0

1 ответ на вопрос

2
mtak
  1. Вы не получите ответ, потому что DNS-сервер 127.0.0.1не имеет записи для m1.dcos. Вот что NXDOMAINзначит (неэкстантный домен).

  2. Ping использует nsswitch вместо прямого DNS (как это digделает). Это может быть разрешение имени хоста откуда-то еще (LDAP, NIS или локальные файлы).

  3. Вы можете использовать hostкоманду.

Очевидно, `host` просто использует то, что находится в` / etc / resolv.conf`, поэтому он будет запрашивать только DNS, как `dig`. Daniel B 6 лет назад 0
В Ubuntu 16.04 `host` также получает информацию из` / etc / hosts` со следующей записью `nsswitch.conf`:` hosts: files mdns4_minimal [NOTFOUND = return] dns` mtak 6 лет назад 0