Ricerca nome DNS (era SSH) non funzionante dopo l'aggiornamento di Snow Leopard


14

Penso che questo sia iniziato con l'aggiornamento di Snow Leopard. Pulito la directory .ssh, che presenta ancora il problema.

~: uname -a
Darwin california-example-com.local 10.0.0 Darwin Kernel Versione 10.0.0: Ven 31 Lug 22:47:34 PDT 2009; root: xnu-1456.1.25 ~ 1 / RELEASE_I386 i386

~: ssh -V
OpenSSH_5.2p1, OpenSSL 0.9.8k 25 mar 2009

~: ls -l ~ / .ssh

~: nslookup nevada
Server: 10.94.62.3
Indirizzo: 10.94.62.3 # 53

Nome: nevada.example.com
Indirizzo: 10.94.62.3

~: ssh nevada
ssh: Impossibile risolvere il nome host nevada: nome nodo o nome servizio fornito o non noto

Puoi scrivere a (a) nevada.example.com e (b) 10.94.62.3?
Sven

2
Sai fare un ping nevada? Cosa mostra "ssh -v nevada"?
markdrayton,

Domanda strana; usi Split DNS e / o puoi eseguire il ping nevada?
Chealion,

Grazie per i follow-up ... risposte: ssh nevada.example.com = no ssh 10.94.62.3 = sì (e ho dovuto confermare la chiave host perché avevo cancellato gli host conosciuti) ping nevada = problema di risoluzione dei nomi telnet nevada (tho non esegue telnetd) = problema di risoluzione dei nomi Dividi DNS = non intenzionalmente, non so cosa sia :-) Dal riquadro delle impostazioni di rete di OS X, ho 10.94.62.3 come server DNS elencato prima dei due forniti dal mio ISP ed example.com nell'elenco dei domini di ricerca. Altri sistemi sulla mia rete possono usare DNS normalmente per ssh in nevada (e altri).
Peter Cardona,

scusate la mancanza di interruzioni di riga nel commento sopra ...
Peter Cardona,

Risposte:


16

Ho riscontrato lo stesso identico problema e ho trovato estremamente utile una discussione su un Mac mini con problemi DNS nelle Discussioni di Apple.

Il nocciolo del problema: mDNSResponder sembra cambiare occasionalmente l'ordine dei server DNS che richiede e quindi se interroga prima i server DNS del tuo ISP non otterrà un record corretto (o se stai usando il DNS diviso otterrai il tuo IP pubblico).

La soluzione migliore per questo è assicurarsi (come hai fatto) che solo i server DNS richiesti siano elencati nelle impostazioni DNS. Questo potrebbe richiedere la rimozione dei server DNS ISP dal tuo DHCP (come ho dovuto fare anch'io - tutte le richieste vengono comunque inoltrate attraverso il server DNS locale).

Il motivo per cui le utility piacciono dige nslookupavranno successo normalmente è che stanno usando BIND e /etc/resolv.confdirettamente a differenza del resto del sistema operativo.

Per riferimento in Snow Leopard la cache DNS è ora memorizzata da mDNSResponder e per cancellarla è necessario riavviare il processo utilizzando sudo killall -HUP mDNSResponder. È possibile ottenere ulteriori informazioni (registrazione, dump dello stato interno, ecc.) Utilizzando flag diversi per il killallcomando.

"sudo killall -USR1 mDNSResponder" to enable operation logging.
"sudo killall -USR2 mDNSResponder" to enable packet logging.
"sudo killall -HUP mDNSResponder" to clear the DNS cache.
"sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.

Fonte: Snoop Dogg sullo stesso thread.


Grazie, googling mi ha portato qui, questo risolto. "arp" ha riportato un IP errato, dig ha riportato il "ip" corretto. Nessuna quantità di dns flushing l'ha risolto prima di provare questo. Faccio notare che ho dovuto eseguire anche dscacheutil -flushcache. Vorrei anche sottolineare che i router locali possono comportarsi in modo strano e che talvolta gli ISP non giocano correttamente in termini di TTL.
Aitch

9

abbiamo avuto problemi come questo:

host example.com     <<< WORKED
ping example.com     <<< FAILED

Risolto con qualcosa del genere:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Le applicazioni su Mac OS X non utilizzano lo stesso meccanismo per DNS di "host / dig / nslookup".

L'uso di "host / dig / nslookup" è stato utile per determinare che questo non era un problema di rete. Si è verificato un problema con il sistema locale risolto con i comandi precedenti.


caspita che ha funzionato !!! Ho cercato ovunque una soluzione !!!! stavo per formattare e ripristinare il mio laptop, mi hai risparmiato un sacco di tempo! Grazie! scusate ma non ho potuto esprimere il mio voto :-( Nota: il mio DNS ha smesso di funzionare dopo aver eseguito Util OnyX, non so perché. Sono stato in grado di utilizzare dig / nslookup ma nient'altro.

2

Ho riscontrato lo stesso problema ... E mentre riavvio mDNSResponder sembra "funzionare", riavviandolo un paio di volte ogni ora fa schifo.

Quindi, per ora, ho "risolto" il problema eseguendo dnsmasq localmente. Fare quello:

  • Build dnsmasq (scarica tgz makeeo brew install dnsmasq)
  • Metti questo in un dnsmasq.conffile:
resolv-file = resolv.conf
user = nessuno
group = nessuno
interface = lo0
cache-size = 1024
  • Inseriscilo in un resolv.conffile che si trova nella stessa directory del dnsmasq.conffile (nb: not /etc/resolv.conf ):
nameserver 8.8.8.8
nameserver 4.2.2.1
nameserver 4.2.2.2
  • Corri dnsmasqcon sudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf. L'output dovrebbe assomigliare a:
...
dnsmasq: lettura resolv.conf
dnsmasq: usando nameserver 4.2.2.1 # 53
dnsmasq: usando nameserver 4.2.2.2 # 53
dnsmasq: usando nameserver 8.8.8.8 # 53
dnsmasq: leggi / etc / hosts - 6 indirizzi
  • Apri Preferenze di rete e assicurati che 127.0.0.1sia l'unico server DNS (preferenze di rete -> avanzate -> DNS -> aggiungi 127.0.0.1)

Le cose dovrebbero ricominciare a funzionare bene.

Una volta che le cose funzionano, puoi eseguire dnsmasqsenza le opzioni --no-daemone --log-queries, quindi si avvierà in background e non dovrai tenere aperta una finestra Terminale.


1

Ho notato che avevo 10.94.62.3 nell'elenco dei server DNS (riquadro delle preferenze di rete) seguito da 2 dal mio ISP. Ho rimosso gli altri 2, forzando tutte le ricerche di nomi fino al 10.94.62.3 per questa posizione e ora posso risolvere i nomi sulla mia rete oltre che all'esterno.

Non ho idea del perché abbia funzionato.


1

Immagino che abbiamo un problema simile, come ho descritto qui: /apple/50457/nslookup-works-ping-and-ssh-dont-os-x-lion-10-7-3

Credo che il problema risieda nella configurazione di searchdomains: ping / ssh sta cercando di usare ciò gethostbyname2()che fallisce perché il nome non è più in esecuzione (almeno in Lion) e /etc/resolv.confcon i domini di ricerca configurati viene quindi ignorato. /etc/hostsè l'ultima risorsa gethostbyname2()e quindi ssh funziona di nuovo con le voci appropriate in /etc/hosts. Dovrebbe essere risolto da Apple imho.


0

Hai provato nevada-example-com.local?


Non ci avevo provato, ma avevo lo stesso problema di risoluzione. Iniziare a sembrare come NIENTE (ssh, telnet, ping, http) si risolve attraverso il server a cui nslookup è predefinito. Come potrebbe essere? Forse un conflitto tra le impostazioni di livello di OS X e qualche file / etc / qualunque sia a cui importa l'implementazione di BSD sottostante?
Peter Cardona,

No, OS X non utilizza i livelli di init, nemmeno il sistema BSD.
Jeremy L,

0
dscacheutil -flushcache

Questo comando aggiorna la cache DNS.

10.94.62.3 è un server DNS di cui ti fidi? Se è così, perché ce n'è solo uno? È necessario disporre di almeno 2 server DNS a cui fare riferimento per scopi di failover. Se quello scende, sei un'anatra seduta.


0

Le ricerche degli ordini DNS sembrano funzionare diversamente in Snow Leopard. Se non riesci a cercare un dominio, controlla se ci sono server DNS non validi elencati nelle tue preferenze di rete. Se si utilizza un'impostazione DHCP standard, non si dovrebbe elencare alcun server DNS. Prima del mio aggiornamento avevo elencato un vecchio server DNS e non ha influito su nulla. Una volta aggiornato, ho perso del tutto il DNS.

Apri Preferenze di rete> Scegli aeroporto> Avanzate. Seleziona la scheda DNS e rimuovi tutti i server DNS non validi.


0

Hai guardato la console? (Applicazioni -> Utilità -> Console) È possibile che mDNSResponder sia visualizzato in: Informazioni di diagnostica e di utilizzo -> Rapporti di diagnostica del sistema

Se si blocca a causa di un altro programma che sta caricando moduli (come Little Snitch o Hands Off), potresti vederlo lì.


-1

Ho avuto lo stesso problema con nslookup risolvendo la mia finestra di Windows, ma il ping mi ha dato un "host sconosciuto". Ho provato ciò che Navdeep ha suggerito e sono andato a cancellare i nameserver nella scheda Preferenze di rete-> Avanzate-> DNS. Non mi avrebbe permesso di sottrarli, erano in grigio. Alla fine ho colpito il + e sono scomparsi. Ho annullato l'aggiunta di uno nuovo e ho applicato le modifiche, una volta che nessun server DNS stava mostrando. Ping ha iniziato a lavorare dopo. La cosa strana è che il mio router / server DHCP locale è stato il primo nell'elenco ed è il responsabile della risoluzione della finestra di Windows. Deve essere qualcosa di strano con l'ordinamento. L'altro nameserver elencato è un NS di lavoro e non sarebbe in grado di risolvere l'host di Windows. GRAZIE Navdeep!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.