Est-ce que / etc / resolver / files fonctionne dans Mountain Lion pour la résolution DNS?

31

Quelqu'un peut-il me dire si l'ajout d'un fichier sous / etc / resolver fonctionnera pour la résolution DNS en utilisant un serveur DNS autre que celui qui est distribué via DHCP?

Mon problème est que je veux utiliser OpenDNS pour la résolution DNS d'un client à domicile afin de tirer parti des capacités de filtrage et anti-arnaque, mais l'inconvénient majeur est qu'ici en Australie, des choses comme le contenu Apple sont fournies par un CDN (Akamai) qui puis le contenu du serveur en utilisant un point de livraison basé aux États-Unis.

Ce que je veux faire, c'est que l'adresse du serveur DNS soit distribuée via DHCP pour être l'adresse du routeur local (DNSMasq utilisant des serveurs DNS OpenDNS), puis, par exemple, placez un fichier appelé apple.com sous / etc / resolver avec la ligne suivante :

nameserver 203.12.160.35

L'idée est que toute demande DNS adressée à apple.com serait résolue par un serveur DNS TPG (mon FAI) plutôt que par le démon DNSMasq des routeurs locaux utilisant des serveurs OpenDNS.

J'ai donc fait cela et la sortie de scutil --dns est:

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

Maintenant, la sortie d'un nslookup sur apple.com est:

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 

Donc je n'utilise pas le serveur DNS TPG - je résout toujours contre 192.168.10.1 qui est le routeur local. L'ordre des résolveurs est-il important? c'est à dire. l'entrée créée après avoir placé le fichier apple.com dans / etc / resolver est le résolveur # 8:

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

J'aimerais vraiment un moyen de faire fonctionner cela - toute aide serait appréciée.

ilium007
la source

Réponses:

43

Cette question semble un peu ancienne, mais je vais quand même y répondre car j'ai eu un problème similaire:

Oui, ça marche.

Votre premier problème est que vous avez évidemment la mauvaise IP ( 8.8.8.8au lieu de 203.12.160.35) dans /etc/resolver/apple.com. Vérifiez que le contenu de ce fichier est vraiment:

nameserver 203.12.160.35

Vous scutil --dnsdevriez alors avoir une entrée comme celle-ci:

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

Le deuxième problème est que vous avez essayé de le vérifier en utilisant nslookupqui n'utilise pas les mécanismes de résolution DNS d'OS X. Si vous regardez la page de manuel de nslookupvous trouverez ceci:

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.

Pour vérifier votre configuration DNS, vous pouvez le faire

dns-sd -G v4 images.apple.com

et vérifier si elle donne la même IP que

nslookup images.apple.com 203.12.160.35
apfelsaft
la source
1
Il convient également de noter que cela peut être utilisé pour spécifier un serveur de noms pour un domaine de premier niveau spécifique. Par exemple, si le fichier est nommé "dev", toutes les recherches pour "example.dev" seront envoyées à ce serveur de noms. Ceci est utile pour les intranets de l'entreprise, en particulier lorsque vous n'êtes pas sur le réseau local de l'entreprise (par exemple: lors de la connexion à un VPN)
Abhi Beckert
2
Your first problem is that you obviously have the wrong IP (8.8.8.8)Pas nécessairement; 8.8.8.8et 8.8.4.4sont les serveurs DNS de Google. Comment ils ont obtenu ces octets me dépasse.
Qix
3
Depuis la version 10.10, il semble qu'aucun répertoire / etc / resolver ne soit présent.
sorin
2
Vous devez le créer vous-même en 10.10.
Alan Shutko