L'aggiunta di "locale" ai domini di ricerca DNS non ha alcun effetto

3

Ho un Mac Mini (Yosemite) sulla mia rete locale e non esegue affatto un server DNS. Quando voglio accedervi tramite SSH da un terminale sul mio Macbook Air (Yosemite), posso digitare:

$ ssh myserver.local

E funziona bene.

Ma volevo evitare di dover digitare il dominio ".local" ogni volta, quindi ho aggiunto il dominio "locale" all'elenco Cerca domini in Impostazioni di rete (per il mio adattatore Wi-Fi che è quello attualmente in uso nel mio MBA).

Se poi provo:

$ ssh myserver

che non funziona (Impossibile risolvere il nome host).

Qualche idea sul perché?

    
posta introiboad 29.12.2014 - 17:44
fonte

2 risposte

4

La risoluzione del nome host in Mac OS X (da ~ 10.3) ha parlato in modo approssimativo - escludo vari meccanismi della cache - la seguente sequenza operativa:

  1. "File" (ad es. / etc / hosts) - >
  2. mDNS - >
  3. DNS (domini di ricerca) - >
  4. DNS

Nomi validi per i diversi metodi di risoluzione dei nomi:

per 1: nomi quasi arbitrari
per 2: name.local
per 3: nome (+ search.domain nei prefetti di rete) Un record Start Of Authority (SOA) per il dominio di primo livello è obbligatorio.
per 4: fqdn

Nel tuo primo scenario ( myserver.local ) usi solo "File" e mDNS. "File" non riesce perché non vi è alcuna voce myserver.local nel file hosts. mDNS riesce a risolverlo perché è un nome mDNS valido e risolvibile.

Nel tuo secondo scenario ( myserver & search.dominio local ) utilizzi 1, 2, 3 (e 4). 'File' fallisce perché non hai una voce myserver , mDNS fallisce perché non è un nome mDNS valido. DNS (domini di ricerca) fallisce perché non hai un server DNS con un record SOA per .local nella tua rete (oltre al DNS).

Quindi inserisci sudo nano /etc/hosts in Terminale e aggiungi la riga:

 a.x.y.z      myserver

(a.x.y.z = IP-number del tuo server) e dovrebbe funzionare. Se sei veramente pigro, anche un 'a' come nome potrebbe essere sufficiente. Ma non usare numeri singoli (come 1 o 123) perché allora ssh potrebbe provare a connettersi a 0.0.0.1 o 0.0.0.123. Almeno il ping si collega a 0.0.0.1 o 0.0.0.123.

    
risposta data 29.12.2014 - 21:02
fonte
2

La risposta di @klanomath spiega perfettamente come funziona la risoluzione dei nomi, perché il tuo tentativo non ha funzionato e come puoi creare uno pseudonimo su la tua macchina locale per un indirizzo statico attraverso il file /etc/hosts .

Tuttavia, se myserver non ha un indirizzo statico, ma viene assegnato uno dinamicamente (ad es. da DHCP), allora /etc/hosts non è l'ideale in quanto si deve trovare un modo per mantenere aggiornato l'indirizzo.

Per SSH, si può invece creare un alias in /etc/ssh/ssh_config (a livello di sistema) o ~/.ssh/config (specifico dell'utente):

Host myserver
    HostName myserver.local

Quindi puoi semplicemente ssh myserver .

    
risposta data 30.12.2014 - 11:04
fonte

Leggi altre domande sui tag