Mac OS 10.14.6 не использует /etc/resolver/test

Mac OS 10.14.6 не использует /etc/resolver/test

У меня есть DNS-сервер, работающий на хосте в виртуальной машине с IP-адресом 192.168.99.169.

Если я запускаю DNS-запросы, я получаю эти ответы

копать землю:

dig @192.168.99.169 hello-john.test

результат:

;; Warning: Message parser reports malformed message packet.

; <<>> DiG 9.10.6 <<>> @192.168.99.169 hello-john.test
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43698
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: Message has 8 extra bytes at end

;; QUESTION SECTION:
;hello-john.test.       IN  A

;; ANSWER SECTION:
hello-john.test.    300 IN  A   192.168.99.169

;; Query time: 17 msec
;; SERVER: 192.168.99.169#53(192.168.99.169)
;; WHEN: Sun Sep 29 09:50:18 CDT 2019
;; MSG SIZE  rcvd: 73

nslookup:

nslookup hello-john.test 192.168.99.169

результат:

Server:     192.168.99.169
Address:    192.168.99.169#53

Non-authoritative answer:
Name:   hello-john.test
Address: 192.168.99.169

Все работает правильно для сервера DNS. Если я обновлю серверы DNS на Mac так, чтобы единственным сервером DNS был 192.168.99.169, то все будет работать так же, но мне не нужно указывать сервер DNS. Например:

Обновите DNS-серверы

networksetup -setdnsservers Wi-Fi 192.168.99.169

копать землю:

dig hello-john.test
;; Warning: Message parser reports malformed message packet.

; <<>> DiG 9.10.6 <<>> hello-john.test
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6173
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: Message has 8 extra bytes at end

;; QUESTION SECTION:
;hello-john.test.       IN  A

;; ANSWER SECTION:
hello-john.test.    300 IN  A   192.168.99.169

;; Query time: 7 msec
;; SERVER: 192.168.99.169#53(192.168.99.169)
;; WHEN: Sun Sep 29 09:57:10 CDT 2019
;; MSG SIZE  rcvd: 73

nslookup:

nslookup hello-john.test

результат:

Server:     192.168.99.169
Address:    192.168.99.169#53

Non-authoritative answer:
Name:   hello-john.test
Address: 192.168.99.169

Полное переопределение DNS-серверов у меня не работает, так как необходимо иметь несколько IP-адресов для поиска.

Я сбросил настройки DNS-серверов на обычные DNS-серверы.

networksetup -setdnsservers Wi-Fi 8.8.8.8

Я создаю файл /etc/resolver/testс содержимым:

domain test
nameserver 192.168.99.169
search_order 1
timeout 5

Я могу проверить, что резолвер был загружен правильно, с помощью scutil:

scutil --dns

результат:

DNS configuration

resolver #1
  nameserver[0] : 8.8.8.8
  flags    : Request A records
  reach    : 0x00000002 (Reachable)

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 301000

resolver #8
  domain   : test
  nameserver[0] : 192.168.99.169
  timeout  : 5
  flags    : Request A records
  reach    : 0x00020002 (Reachable,Directly Reachable Address)
  order    : 1

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 8.8.8.8
  if_index : 5 (en0)
  flags    : Scoped, Request A records
  reach    : 0x00000002 (Reachable)

Однако, когда я запускаю dig или nslookup, он не использует resolver. Я предполагаю, что это как-то связано с порядком использования конфигураций resolver.

копать землю:

dig hello-john.test

результат:

; <<>> DiG 9.10.6 <<>> hello-john.test
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 39721
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;hello-john.test.       IN  A

;; AUTHORITY SECTION:
.           86388   IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2019092900 1800 900 604800 86400

;; Query time: 16 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 29 10:06:50 CDT 2019
;; MSG SIZE  rcvd: 119

nslookup:

nslookup hello-john.test

результат:

Server:     8.8.8.8
Address:    8.8.8.8#53

** server can't find hello-john.test: NXDOMAIN

Если я отключу свой Wi-Fi, я просто увижу, что решатель №1 scutil --dnsпросто отображается как

DNS configuration

resolver #1
  flags    : 
  reach    : 0x00000000 (Not Reachable)

Я думаю, что мне не хватает какой-то конфигурации, /etc/resolver/testно я не могу найти способ убедиться, что она используется.

Спасибо за вашу помощь!

решение1

Несмотря на то, что nslookup и dig не возвращают правильный ответ, похоже, я все равно могу пинговать хост

пинг:

ping hello-john.test

результат:

PING hello-john.test (192.168.99.169): 56 data bytes
64 bytes from 192.168.99.169: icmp_seq=0 ttl=64 time=0.259 ms
64 bytes from 192.168.99.169: icmp_seq=1 ttl=64 time=0.390 ms

Для моих целей этого вполне достаточно.

Связанный контент