Skonfigurowałem moją sieć domową z własnym serwerem DNS (uruchamiam dnsmasq na moim serwerze, na którym działa serwer Ubuntu 16.04). Na tym serwerze działa również DHCP i informuje klientów, że jest to serwer DNS.
Mój serwer DNS jest skonfigurowany do rozpoznawania nazw w mojej sieci lokalnej, a także zewnętrznie.
Mam skonfigurowaną w pełni kwalifikowaną nazwę domeny (za pośrednictwem dynamicznej usługi DNS), dzięki czemu mogę uzyskać dostęp do usług w mojej sieci LAN z laptopa, gdy nie ma mnie w domu. Wszystko działa dobrze zarówno na moim komputerze z systemem Windows 7, jak i na różnych innych komputerach z systemem Ubuntu działających w sieci, jednak utknie na moim MacBooku, na którym obecnie działa MacOS 10.12.3.
Z mojego MacBooka w mojej sieci LAN mogę wyszukać adres mojego serwera Ubuntu (serv2), używając polecenia dig w następujący sposób:
nick@deathrow:~$ dig serv2
; <<>> DiG 9.8.3-P1 <<>> serv2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53350
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;serv2. IN A
;; ANSWER SECTION:
serv2. 0 IN A 192.168.2.4
;; Query time: 9 msec
;; SERVER: 192.168.2.4#53(192.168.2.4)
;; WHEN: Sat Feb 25 18:24:17 2017
;; MSG SIZE rcvd: 39
Jak widać, poprawnie łączy się z moim serwerem DNS na mojej sieci LAN pod adresem 192.168.2.4 i poprawnie zwraca adres serwera 192.168.2.4.
Jeśli jednak spróbuję użyć polecenia, aby uzyskać dostęp do serv2, użyje zewnętrznego adresu IP serv2. Oto prosty przykład użycia ping:
nick@deathrow:~$ ping serv2
PING njj.chickenkiller.com (84.63.173.131): 56 data bytes
64 bytes from 84.63.173.131: icmp_seq=0 ttl=64 time=19.293 ms
Jak widać, używa adresu zewnętrznego 84.63.173.131 zamiast adresu wewnętrznego 192.168.2.4
Jeśli następnie wyczyszczę pamięć podręczną DNS komputera Mac i uruchomię polecenie ping, aby uzyskać dostęp do serv2, to działa trochę dobrze:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder
Password:
nick@deathrow:~$ ping serv2
PING serv2.njj.chickenkiller.com (192.168.2.4): 56 data bytes
64 bytes from 192.168.2.4: icmp_seq=0 ttl=64 time=1.854 ms
ale bardzo szybko wraca do używania adresu zewnętrznego:
ping serv2
PING njj.chickenkiller.com (84.63.173.131): 56 data bytes
64 bytes from 84.63.173.131: icmp_seq=0 ttl=64 time=2.668 ms
Jest to uciążliwe, ponieważ mam zaporę sieciową dla większości usług w mojej sieci (więc jeśli serv2 rozwiązuje problem z 192.168.2.4, drukowanie działa, jeśli rozwiązuje się na adres zewnętrzny, drukowanie kończy się niepowodzeniem)
Masz pomysł, jak mogę zmusić moją Mac Book do korzystania z lokalnej usługi DNS?
EDYCJA: Dane wyjściowe z scutil --dns:
nick@deathrow:~$ scutil --dns
DNS configuration
resolver #1
search domain[0] : njj.chickenkiller.com
nameserver[0] : 192.168.2.4
if_index : 4 (en0)
flags : Request A records
reach : Reachable, Directly Reachable Address
resolver #2
domain : local
options : mdns
timeout : 5
flags : Request A records
reach : Not Reachable
order : 300000
resolver #3
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
flags : Request A records
reach : Not Reachable
order : 300200
resolver #4
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : Not Reachable
order : 300400
resolver #5
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : Not Reachable
order : 300600
resolver #6
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : Not Reachable
order : 300800
resolver #7
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : Not Reachable
order : 301000
DNS configuration (for scoped queries)
resolver #1
search domain[0] : njj.chickenkiller.com
nameserver[0] : 192.168.2.4
if_index : 4 (en0)
flags : Scoped, Request A records
reach : Reachable, Directly Reachable Address
EDYCJA (2): Użyłem Namebench do przetestowania czasu odpowiedzi mojego serwera DNS (działającego na zdalnym kliencie linux), a reszta jest tutaj . Mój serwer jest pokazany jako SYS-127.0.1.1. Nie jestem w tym ekspertem, ale jego wydajność wygląda ok w porównaniu z alternatywnymi
EDYCJA 3: wyjście z dns-sd
Last login: Thu Mar 9 07:04:41 on console
jay@sol3:~$ dns-sd -q njj.chickenkiller.com 255 255
DATE: ---Sat 11 Mar 2017---
9:56:51.048 ...STARTING...
Timestamp A/R Flags if Name Type Class Rdata
9:56:52.055 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
9:57:48.377 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
9:58:43.590 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
9:59:39.598 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:00:06.548 Add 2 0 njj.chickenkiller.com. AAAA IN 0.0.0.0 No Such Record
10:00:06.633 Add 2 0 njj.chickenkiller.com. Addr IN 84.63.173.131
10:00:34.965 Rmv 1 0 njj.chickenkiller.com. Addr IN 84.63.173.131
10:00:34.965 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:01:30.629 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:02:26.753 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:03:22.282 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:04:18.329 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:05:14.342 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:06:10.251 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:07:06.042 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:08:01.278 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:08:57.289 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:09:52.916 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:10:48.523 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:11:44.831 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:12:40.842 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:13:36.158 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
10:14:32.105 Add 2 0 njj.chickenkiller.com. ANY 25 0.0.0.0 No Such Record
Edycja 4: To pytanie jest tutaj
dns-sd -q njj.chickenkiller.com 255 255
zgłasza? (uwaga: musisz nacisnąć Ctrl-C, aby wyjść z dns-sd, w przeciwnym razie będzie siedział wiecznie i szukał nowych odpowiedzi lub zmian)
scutil --dns
. To pokazuje prawdziwy krajobraz serwera DNS, z którym ma do czynienia Twój Mac. macOS ma zaawansowany system routingu zapytań DNS o określonym zasięgu, który obsługuje takie rzeczy jak VPN (ale nie tylko VPN). BTW, macOS próbuje użyć serwerów DNS w określonej kolejności, ale jeśli serwer nie odpowie w ciągu 1 sekundy, zostanie umieszczony w polu karnym i następny serwer zostanie wykorzystany. Jedną rzeczą, którą możesz zrobić, to upewnić się, że preferowany serwer DNS jest szybki i niezawodny.