¿Los archivos / etc / resolver / funcionan en Mountain Lion para la resolución DNS?

31

¿Alguien puede decirme si agregar un archivo en / etc / resolver funcionará para la resolución DNS utilizando un servidor DNS que no sea el que se entrega a través de DHCP?

Mi problema es que quiero usar OpenDNS para la resolución de DNS de la casa de un cliente para aprovechar las capacidades de filtrado y antifraude, pero la desventaja masiva es que aquí en Australia cosas como el contenido de Apple son entregados por un CDN (Akamai) que luego servirá el contenido del servidor utilizando un punto de entrega en los Estados Unidos

Lo que quiero hacer es que la dirección del servidor DNS se entregue a través de DHCP para que sea la dirección del enrutador local (DNSMasq utilizando servidores DNS OpenDNS) y luego, por ejemplo, coloque un archivo llamado apple.com en / etc / resolver con la siguiente línea :

nameserver 203.12.160.35

La idea es que cualquier solicitud de DNS a apple.com sería resuelta por un servidor DNS TPG (mi ISP) en lugar de los enrutadores locales DNSMasq daemon que usan servidores OpenDNS.

Así que he hecho esto y la salida de scutil --dns es:

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

Ahora el resultado de un nslookup en apple.com es:

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 

Por lo tanto, no estoy usando el servidor DNS de TPG, todavía estoy resolviendo contra 192.168.10.1, que es el enrutador local. ¿Importa el orden de los resolutores? es decir. la entrada creada después de colocar el archivo apple.com en / etc / resolver es el resolutor # 8:

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

Realmente me gustaría una forma de hacer que esto funcione; cualquier ayuda sería apreciada.

ilium007
fuente

Respuestas:

43

Esta pregunta parece un poco vieja, pero la voy a responder de todos modos ya que tuve un problema similar:

Si, esto funciona.

Su primer problema es que obviamente tiene la IP incorrecta (en 8.8.8.8lugar de 203.12.160.35) /etc/resolver/apple.com. Verifique que el contenido de este archivo sea realmente:

nameserver 203.12.160.35

Entonces scutil --dnsdebería tener una entrada como esta:

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

El segundo problema es que trataste de verificarlo usando uno nslookupque no usa los mecanismos de resolución DNS de OS X. Si miras la página del manual nslookup, encontrarás esto:

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.

Para verificar su configuración de DNS , puede hacer

dns-sd -G v4 images.apple.com

y verifique si produce la misma IP que

nslookup images.apple.com 203.12.160.35
apfelsaft
fuente
1
También vale la pena señalar que esto se puede usar para especificar un servidor de nombres para un dominio de nivel superior específico. Por ejemplo, si el archivo se llama "dev", todas las búsquedas de "example.dev" se enviarán a ese servidor de nombres. Esto es útil para las intranets de la empresa, especialmente cuando no está en la LAN de la empresa (por ejemplo, cuando se conecta a una VPN)
Abhi Beckert
2
Your first problem is that you obviously have the wrong IP (8.8.8.8)No necesariamente; 8.8.8.8y 8.8.4.4son los servidores DNS de Google. Cómo obtuvieron esos octetos está más allá de mí.
Qix
3
A partir de 10.10, parece que no hay un directorio / etc / resolver presente.
sorin
2
Necesita crearlo usted mismo en 10.10.
Alan Shutko