¿Por qué los nombres de host de la red local se resuelven solo en ciertos casos?

Tengo un enrutador linksys que ejecuta "tomate" Linux y sirve como servidor DNS local. Ejecuta dnsmasq.

Recientemente actualicé de OS X 10.4 a 10.6. Desde entonces, la resolución de nombres de host en mi red local funciona en algunos casos pero no en otros. Anteriormente, todo esto funcionaba como se esperaba.

Aquí hay un ejemplo:

tesla:~ cell$ ping watt
ping: cannot resolve watt: Unknown host

tesla:~ cell$ ping watt.local
ping: cannot resolve watt.local: Unknown host

tesla:~ cell$ ping -c1 192.168.42.1
PING 192.168.42.1 (192.168.42.1): 56 data bytes
64 bytes from 192.168.42.1: icmp_seq=0 ttl=64 time=0.659 ms

--- 192.168.42.1 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.659/0.659/0.659/0.000 ms

tesla:~ cell$ host watt.local
watt.local has address 192.168.42.1

tesla:~ cell$ host watt
watt.local has address 192.168.42.1

Mi conjetura es que el hostcomando está consultando el servidor DNS directamente, mientras pingque cualquier aplicación GUI (es decir, Safari) está usando algún tipo de rutinas de resolución de DNS de Mac, que no funcionan correctamente.

Por favor, avíseme si hay alguna otra información que deba proporcionar.

Editar: incluido ping ip directamente en el ejemplo anterior

Edición 2: Mi dominio está usando .local

¡¡¡ZOMG!!! "De forma predeterminada, cualquier nombre de host que termine en .local se trata como un host Bonjour en lugar de consultar las entradas del servidor DNS en las preferencias de red". ARGH!!! ¿Por qué no pudieron elegir algo como ".bonjour"? consulte support.apple.com/kb/HT2385?viewlocale=en_US
ugh, no puedes simplemente deshabilitar bonjour debido a tech.karbassi.com/2007/11/06/…
¿Funciona directamente hacer ping a la IP?
de hecho, cambiar su nombre de dominio parece ser el camino de menor resistencia. Estoy sorprendido: Apple normalmente toma decisiones muy inteligentes sobre cómo eligen implementar las cosas. esta es la primera decisión de implementación con la que me he encontrado y que realmente consideraría una erección. Lo digo en serio, elegir CUALQUIER COSA que no sea ".local" como caso especial para bonjour hubiera sido mejor.
@Kyle sí, lo hace. Debería haber pensado en mencionar eso. Actualizaré la pregunta.

Respuestas (2)

Si está sirviendo .local a través de DNS de unidifusión (en lugar de DNS de multidifusión, como se especifica en este borrador de estándar de Internet ), incluya un registro SOA para .local; a partir de v10.6, OS X detecta esto y cambia la resolución local a DNS de unidifusión. Las versiones anteriores de OS X tienen otros métodos para forzar la resolución de unidifusión; consulte el artículo KB de Apple #HT3473 para obtener más información.

solución: no use '.local' como su nombre de dominio. aburrido.