Tailscale MagicDNS funciona, pero nslookup falla en macOS
Las aplicaciones de macOS resuelven mediante el resolutor del sistema; nslookup lee un archivo estático. Pruebe el mismo nombre de tailnet por ambas rutas antes de cambiar cualquier ajuste de DNS.
En un Mac, ping resuelve un nombre de máquina del tailnet mientras nslookup devuelve un fallo, y ambos comandos dicen la verdad. Las aplicaciones resuelven mediante el resolutor del sistema, que Tailscale configura por interfaz, mientras que nslookup y host leen un archivo estático que MagicDNS nunca toca. Las dos rutas pueden discrepar sin que se pierda un solo paquete. Decida qué ruta tomó su aplicación que falla antes de cambiar cualquier ajuste de DNS.
Dos rutas de resolución, dos respuestas distintas
El tráfico de las aplicaciones en macOS pasa por el resolutor del sistema, y las entradas de resolutor limitadas por interfaz deciden qué servidor responde por qué dominio. Tailscale instala allí su entrada de MagicDNS, y por eso Safari y ssh encuentran nombres del tailnet. nslookup, host y dig, en cambio, leen /etc/resolv.conf o toman un servidor en la línea de comandos, y ese archivo normalmente sigue nombrando el router o un servidor de oficina. Un nombre del tailnet enviado a ese archivo no tiene ninguna respuesta autoritativa esperándolo, así que la herramienta informa de un fallo mientras la ruta del sistema tiene éxito.
Ninguna de las dos herramientas se comporta mal. Preguntan a servidores distintos, y solo uno de esos servidores conoce su tailnet.
Pruebe el mismo nombre por la ruta del sistema
Use la llamada de búsqueda del sistema como primera prueba, y después compárela con una consulta dirigida directamente al resolutor de MagicDNS. Mantenga la ortografía idéntica en ambas, incluido el dominio del tailnet, porque un nombre corto y un nombre totalmente cualificado son preguntas distintas con respuestas distintas.
dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net
Esas tres salidas responden tres preguntas: qué devuelve el sistema, qué resolutores están configurados para qué dominios y qué sabe el propio MagicDNS. Un nombre presente en la segunda y la tercera pero ausente en la primera apunta a una configuración local y no al tailnet.
Cuando el nombre se resuelva, pruebe el servicio
Una respuesta DNS correcta solo demuestra que un nombre corresponde a una dirección. El servicio que hay detrás puede estar detenido, el puerto puede estar filtrado por una regla de acceso y un certificado puede nombrar un host distinto del que escribió.
nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net
Conserve el texto original del error, porque un aviso de certificado, un tiempo de espera de conexión y un nombre no encontrado llevan cada uno a un sitio distinto. Cambiar los servidores de nombres repara el tercero y desperdicia una tarde con los dos primeros.
MagicDNS no sustituye al DNS de oficina
Un nombre dentro de una zona de oficina no es un nombre de dispositivo del tailnet aunque el mismo cliente pueda llegar a ambos. Cuando el destino está detrás de un enrutador de subred, el cliente necesita DNS dividido para esa zona apuntando al resolutor interno, que es un ajuste distinto de MagicDNS y se documenta junto a él.
Los dominios de búsqueda también importan. A un nombre corto no cualificado se le añade cada sufijo configurado en orden, así que un portátil que se ha unido recientemente a otra red puede resolver mediante un sufijo obsoleto. Compruebe qué sufijo se aplicó antes de declarar la zona rota.
Cuando ambas rutas fallan, deciden los hechos del tailnet
Si la búsqueda del sistema y la consulta directa fallan ambas para un dispositivo que cree que existe, el problema está aguas arriba del resolutor del Mac.
Confirme el nombre de la máquina y el dominio del tailnet en la consola de administración, confirme que el dispositivo está en línea y aprobado, y confirme que los ajustes de DNS del cliente no se han desactivado localmente. Un dispositivo que está desconectado conserva su nombre y simplemente no tiene ninguna dirección que devolver.
Luego elija según las pruebas. Un nombre que se resuelve en la ruta del sistema y falla en nslookup es una diferencia de ruta de herramienta; un nombre que se resuelve mientras el servicio rechaza es un problema de acceso o de certificado; un nombre que no se resuelve en ningún sitio es un problema del tailnet o de la configuración de DNS. Tres responsables, tres correcciones, y la documentación de MagicDNS cubre los detalles de macOS del primer caso.