4 votos

Añadir "local" a los dominios de búsqueda DNS no tiene ningún efecto

Tengo un Mac Mini (Yosemite) en mi red local y no está ejecutando un servidor DNS en absoluto. Cuando quiero acceder a él a través de SSH desde un Terminal en mi Macbook Air (Yosemite), puedo escribir:

$ ssh myserver.local

Y eso funciona bien.

Pero quería evitar tener que teclear el dominio ".local" cada vez, así que añadí el dominio "local" a la lista de Dominios de Búsqueda en la Configuración de la Red (para mi adaptador Wi-Fi que es el que se utiliza actualmente en mi MBA).

Si luego lo intento:

$ ssh myserver

que no funciona (No se ha podido resolver el nombre de host).

¿Alguna idea de por qué?

4voto

klanomath Puntos 19587

La resolución de nombres de host en Mac OS X (desde ~10.3) ha hablado más o menos - excluyendo varios mecanismos de caché - de la siguiente secuencia operativa:

  1. 'Archivos' (por ejemplo, /etc/hosts) ->
  2. mDNS ->
  3. DNS (búsqueda de dominios) ->
  4. DNS

Nombres válidos para los diferentes métodos de resolución de nombres:

1: nombres casi arbitrarios
para 2: nombre.local
para 3: nombre (+ search.domain en sus prefs de red) Es obligatorio un registro Start Of Authority (SOA) para el dominio de primer nivel.
para 4: fqdn

En su primer escenario ( myserver.local ) sólo utiliza "Archivos" y mDNS. 'Archivos' falla porque no hay ninguna entrada myserver.local en su archivo de hosts. mDNS logra resolverlo porque es un nombre mDNS válido y resoluble.

En su segundo escenario ( myserver & buscar.dominio local ) se utiliza 1, 2, 3 (y 4). 'Archivos' falla porque no tiene ninguna entrada myserver , mDNS falla porque no es un nombre mDNS válido. DNS (búsqueda de dominios) falla porque no tiene un servidor DNS con un registro SOA para .local en su red (así como DNS).

Así que sólo hay que introducir sudo nano /etc/hosts en el Terminal y añadir la línea:

 a.x.y.z      myserver

(a.x.y.z= número IP de tu servidor) y debería funcionar. Si eres realmente perezoso incluso una 'a' como nombre podría ser suficiente. Pero no utilices números simples (como 1 o 123) porque entonces ssh podría intentar conectarse a 0.0.0.1 o 0.0.0.123. Al menos ping conecta a 0.0.0.1 o 0.0.0.123.

3voto

therefromhere Puntos 21329

Respuesta de @klanomath explica perfectamente cómo funciona la resolución de nombres, por qué su intento no funcionó y cómo puede crear un seudónimo en su máquina local para una dirección estática a través del /etc/hosts archivo.

Sin embargo, si myserver no tiene una dirección estática sino que se le asigna una dinámicamente (por ejemplo, mediante DHCP), entonces /etc/hosts no es lo ideal, ya que hay que encontrar alguna manera de mantener la dirección en ella actualizada.

Para SSH, se puede crear un alias en /etc/ssh/ssh_config (en todo el sistema) o ~/.ssh/config (específico del usuario):

Host myserver
    HostName myserver.local

Entonces puede simplemente ssh myserver .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X