Snow Leopardのアップグレード後にDNS名のルックアップ(SSHだった)が機能しない


14

私が考えるこれはSnow Leopardのアップデートを開始しました。.sshディレクトリを削除しましたが、まだ問題があります。

〜:うなめ-a
Darwin california-example-com.local 10.0.0 Darwin Kernelバージョン10.0.0:金7月31日22:47:34 PDT 2009; ルート: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:nodenameまたはservnameが提供されたか、不明です

(a)nevada.example.comおよび(b)10.94.62.3にsshできますか?
スヴェン

2
nevadaにpingできますか?「ssh -v nevada」は何を示していますか?
マークドレイトン

奇妙な質問。スプリットDNSを使用しているか、nevadaにpingできますか?
Chealion

フォローアップをありがとう...回答:ssh nevada.example.com = no ssh 10.94.62.3 = yes(既知のホストをクリアしたため、ホストキーを確認する必要がありました)ping nevada =名前解決の問題telnet nevada(tho telnetdを実行しない)=名前解決の問題スプリットDNS =意図的ではなく、それが何であるかわからない:-) OS Xネットワーク設定ペインから、2つが提供される前にDNSサーバーとして10.94.62.3が表示されます私のISP、および検索ドメインリストのexample.comによって。私のネットワーク上の他のシステムは、通常DNSを使用してnevada(およびその他)にsshできます。
ピーターカルドナ

申し訳ありません上記のコメントでの改行の欠如について...
ピーター・カルドナ

回答:


16

まったく同じ問題にぶつかり、AppleのディスカッションでDNSの問題が発生しているMac miniに関するスレッドが非常に役立ちました。

問題の核心:mDNSResponderは照会するDNSサーバーの順序をときどき変更するようであるため、最初にISPのDNSサーバーを照会すると、適切なレコードを取得できません(または分割DNSを使用している場合は、パブリックIP)。

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

理由などのユーティリティdignslookup通常どおり成功しますが、彼らはBINDを使用しているで/etc/resolv.conf直接オペレーティングシステムの残りの部分とは異なり。

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

"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


おかげで、グーグルは私をここに導いた、これはそれを修正しました。「arp」は間違ったIPを報告し、digは正しい「ip」を報告しました。私がこれを試す前に修正されたDNSフラッシュの量はありませんでした。dscacheutil -flushcacheも実行する必要があることに注意してください。また、ローカルルーターは奇妙な動作をする可能性があり、ISPがTTLの点で公平に動作しないこともあると指摘します。
-Aitch

9

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

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上のアプリケーションは、DNSに対して「host / dig / nslookup」と同じメカニズムを使用しません。

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


うわー、それは働いた!!! 私はどこでも解決策を探していました!!!! 私はちょうど私のラップトップをフォーマットして復元しようとしていました、あなたは私に多大な時間を節約しました!ありがとう!申し訳ありませんが、私は投票できませんでした:-(注:Util OnyXを実行した後、DNSが機能しなくなりました。理由はわかりません。dig/ nslookupを使用できましたが、それ以外は使用できませんでした。

2

私も同じ問題を経験しました…そして、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を追加)

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

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


1

DNSサーバーリスト(ネットワーク設定ペイン)に10.94.62.3があり、その後にISPから2が続いていることに気付きました。他の2を削除して、このロケーションの10.94.62.3を介してすべての名前ルックアップを強制し、ネットワークと外部で名前を解決できるようになりました。

これがなぜ機能したのか分かりません。


1

ここで説明したように、同様の問題があると思います。 https //apple.stackexchange.com/questions/50457/nslookup-works-ping-and-ssh-dont-os-x-lion-10-7-3

私は、問題はsearchdomainsの設定にあると考えています。ping/ ssh gethostbyname2()は、namedが(少なくともLionで)実行されていないために失敗/etc/resolv.confし、設定されたsearchdomainsでは無視されます。はの/etc/hosts最後の手段でgethostbyname2()あり、したがってsshはの適切なエントリで再び動作します/etc/hosts。Apple imhoで修正する必要があります。


0

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


それを試していませんでしたが、同じ解像度の問題がありました。NOTHING(ssh、telnet、ping、http)のように見え始めると、nslookupがデフォルトに設定されているサーバーを介して解決されます。どうでしたか?OS Xレベルの設定と、基礎となるBSD実装が気にする/ etc / whateverファイルとの間に競合があるのでしょうか?
ピーターカルドナ

いいえ、OS Xはinitレベルを使用しません— BSD syubsystemも使用しません。
ジェレミーL

0
dscacheutil -flushcache

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

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


0

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

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


0

コンソールを見たことがありますか?(アプリケーション->ユーティリティ->コンソール)mDNSResponderが表示される場合があります:診断および使用情報->システム診断レポート

モジュールをロードしている別のプログラム(Little SnitchやHands Offなど)によってクラッシュしている場合は、そこに表示される場合があります。


-1

nslookupでWindowsボックスを解決するのと同じ問題がありましたが、pingで「不明なホスト」が表示されました。Navdeepが提案したことを試し、[ネットワーク設定]-> [詳細設定]-> [DNS]タブでネームサーバーを削除しました。それらを差し引くことはできませんが、グレー表示されています。やっと+を押すと消えました。DNSサーバーが表示されなくなったら、新しいものの追加をキャンセルし、変更を適用しました。その後、pingは機能し始めました。奇妙なことは、ローカルルーター/ DHCPサーバーがリストの最初であり、Windowsボックスの解決を担当していることです。それは注文に関して奇妙なものでなければなりません。リストされている他のネームサーバーは、作業NSであり、Windowsホストを解決できません。Navdeepに感謝します!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.