Czy / etc / resolver / files działa w Mountain Lion do rozpoznawania nazw DNS?

31

Czy ktoś może mi powiedzieć, czy dodanie pliku w / etc / resolver będzie działało w przypadku rozpoznawania nazw DNS za pomocą serwera DNS innego niż ten, który jest przekazywany przez DHCP?

Mój problem polega na tym, że chcę używać OpenDNS do domowej rozdzielczości DNS klientów, aby skorzystać z możliwości filtrowania i zapobiegania oszustwom, ale ogromną wadą jest to, że tutaj w Australii rzeczy takie jak zawartość Apple są dostarczane przez CDN (Akamai), który będzie następnie serwer treści przy użyciu punktu dostawy w USA.

Chcę, aby adres serwera DNS został przekazany przez DHCP jako adres routera lokalnego (DNSMasq przy użyciu serwerów DNS OpenDNS), a następnie, na przykład, umieść plik o nazwie apple.com w / etc / resolver w następującym wierszu :

nameserver 203.12.160.35

Chodzi o to, że każde żądanie DNS do apple.com zostanie rozwiązane przez serwer DNS TPG (mój ISP), a nie przez demona DNSMasq routerów lokalnych korzystających z serwerów OpenDNS.

Zrobiłem to, a wynikiem działania scutil --dns jest:

DNS configuration

resolver #1
  search domain[0] : harland
  nameserver[0] : 192.168.10.1
  nameserver[1] : 192.168.10.1
  if_index : 4 (en2)
  reach    : Reachable,Directly Reachable Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

resolver #8
  domain   : apple.com
  nameserver[0] : 8.8.8.8

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : harland
  nameserver[0] : 192.168.10.1
  nameserver[1] : 192.168.10.1
  if_index : 4 (en2)
  flags    : Scoped
  reach    : Reachable,Directly Reachable Address
macbookair:resolver

Teraz wyniki nslookup na apple.com to:

macbookair:resolver ilium007$ nslookup apple.com
Server:     192.168.10.1
Address:    192.168.10.1#53

Non-authoritative answer:
Name:   apple.com
Address: 17.149.160.49
Name:   apple.com
Address: 17.172.224.47

macbookair:resolver 

Więc nie używam serwera DNS TPG - nadal rozwiązuję problem z 192.168.10.1, który jest routerem lokalnym. Czy kolejność resolverów ma znaczenie? to znaczy. pozycja utworzona po umieszczeniu pliku apple.com w / etc / resolver to resolver # 8:

resolver #8
  domain   : apple.com
  nameserver[0] : 8.8.8.8

Naprawdę chciałbym sposób, aby ta praca działała - każda pomoc byłaby mile widziana.

ilium007
źródło

Odpowiedzi:

43

To pytanie wydaje się trochę stare, ale i tak odpowiem na nie, ponieważ miałem podobny problem:

Tak, to działa.

Twoim pierwszym problemem jest to, że oczywiście masz niewłaściwe IP ( 8.8.8.8zamiast 203.12.160.35) w /etc/resolver/apple.com. Sprawdź, czy zawartość tego pliku jest naprawdę:

nameserver 203.12.160.35

Następnie scutil --dnspowinien mieć taki wpis:

resolver #8
  domain   : apple.com
  nameserver[0] : 203.12.160.35

Drugim problemem jest to, że starał się zweryfikować za pomocą nslookupktórych nie wykorzystuje mechanizmy rozpoznawania nazw DNS OS X. Jeśli spojrzeć na stronę man nslookupznajdziesz poniżej:

Mac OS X NOTICE
   The nslookup command does not use the host name and address resolution or the DNS 
   query routing mechanisms used by other processes running on Mac OS X.  The results of 
   name or address queries printed by nslookup may differ from those found by other
   processes that use the Mac OS X native name and address resolution mechanisms. The 
   results of DNS queries may also differ from queries that use the Mac OS X DNS routing 
   library.

Aby sprawdzić konfigurację DNS, możesz to zrobić

dns-sd -G v4 images.apple.com

i sprawdź, czy daje takie samo IP jak

nslookup images.apple.com 203.12.160.35
apfelsaft
źródło
1
Warto również zauważyć, że można go użyć do określenia serwera nazw dla konkretnej domeny najwyższego poziomu. Na przykład, jeśli plik ma nazwę „dev”, wówczas wszystkie wyszukiwania dla „example.dev” zostaną wysłane do tego serwera nazw. Jest to przydatne w firmowych intranetach, zwłaszcza gdy nie ma się w firmowej sieci LAN (np. Podczas łączenia się z VPN)
Abhi Beckert,
2
Your first problem is that you obviously have the wrong IP (8.8.8.8)Niekoniecznie; 8.8.8.8i 8.8.4.4są serwerami DNS Google. To, jak uzyskali te oktety, jest poza mną.
Qix,
3
Od 10.10 wydaje się, że nie ma katalogu / etc / resolver.
sorin
2
Musisz go stworzyć samodzielnie w 10.10.
Alan Shutko