Si intento conectarme a un nombre de host .local inexistente utilizando la mayoría de las utilidades, incluyendo ping
y telnet
Se agota después de 5 segundos:
% time telnet host.example.local
host.example.local: nodename nor servname provided, or not known
telnet host.example.local 0.01s user 0.01s system 0% cpu 5.018 total
Esto coincide con el tiempo de espera de la configuración .local en scutil --dns
.
Pero cuando intento ssh
a dicho nombre de host, nunca se agota. (Yo sólo Ctrl-C d uno que todavía estaba esperando después de 16 minutos). No puedo averiguar ninguna opción existente en ninguno de los ssh_config archivos que parecen afectar a la resolución de nombres de host. La única opción que veo que parece relevante es " CanonicalizeHostname ", y no está configurado en ningún archivo de configuración, pero lo he puesto manualmente en "no" sin que cambie el comportamiento. Añadiendo -v
banderas a ssh
no revela ninguna información adicional sobre la resolución del nombre de host más allá del hecho de que es "Connecting to host.example.local port 22", que es la última línea de depuración producida.
He intentado capturar las consultas MDNS para telnet
y ssh
. Parece que hace una consulta inicial, luego espera 1s y vuelve a preguntar, luego otra vez 3s después, etc., cada reintento esperando 3 veces más que el anterior. telnet
se rindió después de tres peticiones (0s, 1s y 3s), pero ssh
llegó hasta la séptima petición (0s, 1s, 3s, 9s, 27s, 81s, 243s) antes de dejar de mirar.
Puedo solucionar el problema configurando ConnectTimeout 5
en ssh_config (incluso limitándolo a *.local
), pero eso se rompe si la resolución del nombre se completa pero el servidor ssh remoto tarda en responder.
¿Cómo puedo conseguir ssh
¿para que el tiempo de resolución de nombres sea el mismo que el de otras herramientas de red?