
Ich habe einen DNS-Server auf dem Host in einer virtuellen Maschine mit der IP 192.168.99.169 laufen
Wenn ich die DNS-Abfragen ausführe, erhalte ich diese Antworten
graben:
dig @192.168.99.169 hello-john.test
Ergebnis:
;; 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
Ergebnis:
Server: 192.168.99.169
Address: 192.168.99.169#53
Non-authoritative answer:
Name: hello-john.test
Address: 192.168.99.169
Für den DNS-Server funktioniert alles einwandfrei. Wenn ich die DNS-Server auf dem Mac aktualisiere, sodass der einzige DNS-Server 192.168.99.169 ist, funktioniert alles genauso, aber ich muss den DNS-Server nicht angeben. Beispiel:
Aktualisieren Sie die DNS-Server
networksetup -setdnsservers Wi-Fi 192.168.99.169
graben:
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
Ergebnis:
Server: 192.168.99.169
Address: 192.168.99.169#53
Non-authoritative answer:
Name: hello-john.test
Address: 192.168.99.169
Das vollständige Überschreiben der DNS-Server funktioniert bei mir nicht, da mehrere durchsuchte IP-Adressen erforderlich sind.
Ich habe die DNS-Server auf einen normalen DNS-Server zurückgesetzt.
networksetup -setdnsservers Wi-Fi 8.8.8.8
Ich erstelle eine Datei /etc/resolver/test
mit dem Inhalt:
domain test
nameserver 192.168.99.169
search_order 1
timeout 5
Ob der Resolver korrekt geladen wurde, kann ich mit scutil testen:
scutil --dns
Ergebnis:
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)
Wenn ich jedoch dig oder nslookup ausführe, wird der Resolver nicht verwendet. Ich vermute, das hat etwas mit der Reihenfolge zu tun, in der die Resolver-Konfigurationen verwendet werden.
graben:
dig hello-john.test
Ergebnis:
; <<>> 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
Ergebnis:
Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find hello-john.test: NXDOMAIN
Wenn ich mein WLAN ausschalte, sehe ich nur, dass Resolver #1 von scutil --dns
nur als
DNS configuration
resolver #1
flags :
reach : 0x00000000 (Not Reachable)
Ich glaube, mir fehlt eine Konfiguration, /etc/resolver/test
aber ich kann nicht sicherstellen, dass sie verwendet wird.
Vielen Dank für Ihre Hilfe!
Antwort1
Obwohl nslookup und dig keine korrekte Antwort zurückgeben, scheint es, dass ich den Host immer noch anpingen kann
Klingeln:
ping hello-john.test
Ergebnis:
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
Das funktioniert für meine Zwecke gut genug