Agregar "local" a los Dominios de Búsqueda de DNS no tiene efecto

3

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

$ ssh myserver.local

Y eso funciona bien.

Pero quería evitar tener que escribir el dominio ".local" cada vez, así que agregué el dominio "local" a la lista de Dominios de búsqueda en Configuración de red (para mi adaptador de Wi-Fi, que es el que está actualmente en uso en mi MBA).

Si yo intento:

$ ssh myserver

eso no funciona (no se pudo resolver el nombre de host).

¿Alguna idea de por qué?

    
pregunta introiboad 29.12.2014 - 17:44

2 respuestas

4

La resolución del nombre de host en Mac OS X (desde ~ 10.3) se ha hablado en términos generales: excluyo varios mecanismos de caché, la siguiente secuencia operativa:

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

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

para 1: nombres casi arbitrarios
para 2: nombre.local
para 3: nombre (+ search.domain en tus preferencias de red) Un registro de Inicio de Autoridad (SOA) para el dominio de nivel superior es obligatorio.
para 4: fqdn

En tu primer escenario ( myserver.local ) solo usas 'Archivos' y mDNS. 'Archivos' falla porque no hay una entrada myserver.local en su archivo de hosts. mDNS logra resolverlo porque es un nombre mDNS válido y que se puede resolver.

En su segundo escenario ( myserver & search.domain local ) usa 1, 2, 3 (y 4). 'Archivos' falla porque no tiene una entrada myserver , mDNS falla porque no tiene un nombre mDNS válido. Los DNS (dominios de búsqueda) fallan porque no tiene un servidor DNS con un registro SOA para .local en su red (así como DNS).

Así que solo ingrese sudo nano /etc/hosts en la Terminal y agregue la línea:

 a.x.y.z      myserver

(a.x.y.z = número de IP de su servidor) y debería funcionar. Si usted es realmente perezoso, incluso una 'a' como nombre podría ser suficiente. Pero no use números únicos (como 1 o 123) porque ssh podría intentar conectarse a 0.0.0.1 o 0.0.0.123. Al menos ping se conecta a 0.0.0.1 o 0.0.0.123.

    
respondido por el klanomath 29.12.2014 - 21:02
2

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

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

Para SSH, uno 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 puedes simplemente ssh myserver .

    
respondido por el eggyal 30.12.2014 - 11:04

Lea otras preguntas en las etiquetas