Lion resuelve nombres DNS cuando consulta el servidor directamente, pero no cuando se usa en un comando o aplicación

Recientemente (como hace unos minutos) agregué un nombre de host y registros inversos (A y PTR) para un nombre de host en mi red interna, usando un servidor Bind DNS. Por alguna razón, puedo ambos digy nslookupeste nuevo nombre con éxito, pero pingmis aplicaciones GUI no pueden resolver el nombre.

Intenté vaciar el caché de DNS en mi máquina local sin dscacheutil -flushcacheningún efecto.

Aquí hay un ejemplo de mi sesión (nombres, IP cambiados por seguridad):

$ nslookup newbox.internal
server     10.0.0.2
address    10.0.0.2#53

Name:    newbox.internal
Address: 10.1.1.1

$ ping newbox.internal
ping: cannot resolve newbox.internal: Unknown host

WTF? De acuerdo, estoy seguro de que mi DNS está configurado correctamente:

$ dig newbox.internal

; <<>> DiG 9.8.3-P1 <<>> newbox.internal
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33812
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;newbox.internal.   IN  A

;; ANSWER SECTION:
newbox.internal. 21600 IN   A   10.1.1.1

;; AUTHORITY SECTION:
internal.       10800   IN  NS  dns001.internal.
internal.       10800   IN  NS  dss001.internal.
internal.       10800   IN  NS  dhdns001.internal.
internal.       10800   IN  NS  dhdns002.internal.

;; ADDITIONAL SECTION:
dns001.internal. 10800 IN   A   10.0.0.2
dns002.internal. 10800 IN   A   10.0.0.3
dhdns001.internal. 10800 IN A   10.0.0.20
dhdns002.internal. 10800 IN A   10.0.0.21

;; Query time: 1 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Mon Jul  1 14:43:35 2013
;; MSG SIZE  rcvd: 245

¿Por qué mi sistema muestra este extraño comportamiento de resolución de DNS?

Como nota al margen, el DNS funciona bien en mi sistema. En este momento, este nuevo nombre de host es el único que tengo problemas para resolver. Mi sistema está configurado para usar el servidor DNS 10.0.0.2 como principal.

EDITAR

Matar a mDNSResponder solucionó este problema... pero ¿por qué?

Respuestas (2)

Matar a mDNSResponder solucionó este problema... pero ¿por qué?

¡Porque vaciaste el caché de DNS local!

http://support.apple.com/kb/ht5343

Un comando de búsqueda directa consultará el servidor DNS directamente, sin embargo, el mecanismo de resolución para casi cualquier otra cosa es ese proceso mDNSResponder que eliminó.

dscacheutil -flushcache está en desuso según la KB.

No sabía que ese era el método oficial. Genial, y gracias por el puntero!

De man nslookup y man dig:

AVISO Mac OS X

El comando nslookup no utiliza el nombre de host y la resolución de direcciones ni los mecanismos de enrutamiento de consultas de DNS utilizados por otros procesos que se ejecutan en Mac OS X. Los resultados de las consultas de nombres o direcciones impresos por nslookup pueden diferir de los encontrados por otros procesos que utilizan Mac. Mecanismos nativos de resolución de nombres y direcciones de OS X. Los resultados de las consultas DNS también pueden diferir de las consultas que utilizan la biblioteca de enrutamiento DNS de Mac OS X.

el anfitrión del hombre tiene el mismo aviso. ping sin embargo no lo hace.

Más información y posible solución aquí:

Las búsquedas de DNS fallan con, por ejemplo, `ping`, pero funcionan con `host`