web-dev-qa-db-ja.com

Snow Leopardのアップグレード後にDNS名の検索(SSH)が機能しない

I thinkこれはSnow Leopardのアップデートから始まりました。 .sshディレクトリを一掃しましたが、まだ問題があります。

〜:uname -a 
 Darwin california-example-com.local 10.0.0 Darwin Kernel Version 10.0.0:Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25〜1/RELEASE_I386 i386 
 
〜:ssh -V 
 OpenSSH_5.2p1、OpenSSL 0.9.8k 2009年3月25日
 
〜:ls -l〜/ .ssh 
 
〜:nslookup nevada 
サーバー:10.94.62.3 
アドレス:10.94.62.3#53 
 
名前:nevada.example.com 
アドレス:10.94.62.3 
 
〜:ssh nevada 
 ssh:ホスト名を解決できませんでしたnevada:ノード名もサービス名も指定されていない、または不明
14
Peter Cardona

私はまったく同じ問題に遭遇し、Appleのディスカッションで Mac miniにDNSの問題がある に関するスレッドが非常に役に立ちました。

問題の要点:mDNSResponderは、クエリするDNSサーバーの順序を時々変更するようです。そのため、最初にISPのDNSサーバーにクエリを実行すると、適切なレコードが取得されません(または分割DNSを使用している場合は、パブリックIP)。

これに対する最善の修正は、必要なDNSサーバーのみがDNS設定にリストされるようにすることです(以前と同様)。これには、DHCPからISP DNSサーバーを削除する必要がある場合があります(私も同様に、すべての要求はローカルDNSサーバーを介して転送されます)。

Dignslookupなどのユーティリティが通常どおり成功する理由は、他のオペレーティングシステムとは異なり、BINDおよび/etc/resolv.confを直接使用しているためです。

Snow Leopardでの参照用に、DNSキャッシュはmDNSResponderによって保存されるようになりました。これをクリアするには、Sudo killall -HUP mDNSResponderを使用してプロセスを再起動する必要があります。 killallコマンドにさまざまなフラグを使用することで、詳細情報(ロギング、内部状態のダンプなど)を取得できます。

"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.

ソース: Snoop Dogg 同じスレッドで。

16
Chealion

次のような問題がありました。

Host example.com     <<< WORKED
ping example.com     <<< FAILED

このようなもので解決しました:

Sudo launchctl unload -w /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist
Sudo launchctl load -w /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist

Mac OS X上のアプリケーションは、「Host/Dig/nslookup」と同じメカニズムをDNSに使用しません。

「Host/Dig/nslookup」の使用は、これがネットワークの問題ではないことを確認するのに役立ちました。上記のコマンドで解決されたローカルシステムの問題でした。

9
Steve Harris

私は同じ問題を経験しました...そして、mDNSResponderを再起動することは「機能」しているように見えますが、1時間に数回再起動することは、ちょっとしたことです。

したがって、今のところ、ローカルで dnsmasq を実行して問題を「解決」しました。それを行うには:

  • Dnsmasqをビルドします(tgzおよびmakeまたはbrew install dnsmasqをダウンロードします)
  • これをdnsmasq.confファイルに入れます。
 resolv-file = resolv.conf 
 user = nobody 
 group = nobody 
 interface = lo0 
 cache-size = 1024 
  • これをresolv.confファイルと同じディレクトリにあるdnsmasq.confファイルに入れます(nb:not/etc/resolv.conf):
ネームサーバー8.8.8.8 
ネームサーバー4.2.2.1 
ネームサーバー4.2.2.2 
  • dnsmasqSudo dnsmasq --no-daemon --log-queries -C dnsmasq.confで実行します。出力は次のようになります。
 ... 
 dnsmasq:resolv.confを読み取ります
 dnsmasq:ネームサーバー4.2.2.1#53を使用します
 dnsmasq:ネームサーバー4.2.2.2#53を使用します
 dnsmasq:ネームサーバー8.8.8.8#53を使用します
 dnsmasq:/ etc/hosts-6つのアドレスを読み取ります
  • [ネットワーク設定]を開き、127.0.0.1が唯一のDNSサーバーであることを確認します(ネットワーク設定->詳細-> DNS-> 127.0.0.1を追加)

物事は再びうまく機能し始めるはずです。

正常に動作したら、--no-daemonおよび--log-queriesオプションなしでdnsmasqを実行できるため、バックグラウンドで起動し、ターミナルウィンドウを開いたままにする必要はありません。

2
David Wolever

DNSサーバーリスト(ネットワーク設定ペイン)に10.94.62.3があり、その後ISPから2が続いていることに気付きました。他の2つを削除して、この場所のすべての名前検索を10.94.62.3まで強制しました。これで、ネットワークだけでなく外部でも名前を解決できます。

これがうまくいった理由はわかりません。

1
Peter Cardona

Snow Leopardでは、DNS注文検索の動作が異なるようです。ドメインを検索できない場合は、ネットワーク設定に無効なDNSサーバーがリストされていないか確認してください。標準のDHCP設定を使用している場合は、DNSサーバーが表示されていないはずです。アップグレードする前は、古いDNSサーバーがリストされていましたが、何の影響もありませんでした。アップグレードしたら、DNSを完全に失いました。

[ネットワーク設定]> [空港を選択]> [詳細設定]を開きます。 [DNS]タブを選択し、無効なDNSサーバーをすべて削除します。

0
Navdeep
dscacheutil -flushcache

このコマンドはDNSキャッシュを更新します。

10.94.62.3は信頼できるDNSサーバーですか?もしそうなら、なぜ1つしかないのですか?フェイルオーバーの目的で参照するには、少なくとも2つのDNSサーバーが必要です。あれがダウンした場合、あなたは座っているアヒルです。

0
churnd

Nevada-example-com.localを試しましたか?

0
Jeremy L

コンソールを見たことがありますか? (アプリケーション->ユーティリティ->コンソール)mDNSResponderがDiagnostic and Usage Information-> System Diagnostic Reportsの下に表示されることがあります。

モジュールを読み込んでいる別のプログラム(Little SnitchやHands Offなど)が原因でクラッシュした場合は、そこに表示されることがあります。

0
jwilkins