nslookupは/etc/resolv.confで動作します。pingとsshは動作しません。


10

私たちの地元の大学ネットワークでは、私は/etc/resolv.confに以下の設定を(DHCPによって取得して)持っています。

search a.domain.com b.domain.com domain.com
nameserver x.x.x.x
nameserver y.y.y.y

設定はシステム環境設定でも同じです。 以下の問題が発生します。

nslookup server

正しく動作し、正しくserver.a.domain.comを要求するためにネームサーバーの1つを使用しています。 私はしかしpingしようとすると、

ping server

到達不能なホストで失敗します。

ping server.a.domain.com

動作します。 nslookupによって取得されたIPアドレスを持つサーバーを/ etc / hostsに手動で追加するとpingも機能しますが、この「解決策」はネームサーバーを迂回して理想的ではありません何がこれを引き起こしているのでしょうか。 pingがnslookup / searchdomainsの結果を使用しないのはなぜですか?

ssh server

また失敗します、これは本当の問題/不便です。

私はすでにmDNSResponderにAlwaysUseSearchDomainsを追加しました、しかしこの修正はserver.fooを使用するとき問題を助けるだけです。

OS X Lion 10.7.3を使用しています。


pingパケットがネットワーク機器によってブロックされている可能性があります。 sshパケットと同じこと - 彼らはあなたがあなたがすることをしてほしくないかもしれない。
Thorbjørn Ravn Andersen

下記の解決策を参照してください、それは問題ではありませんでした。
tholu

「到達不能なホスト」とは、DNS解決の問題ではなく、ネットワーク接続の問題(またはICMPのブロック)を意味します。
Daniel Serodio

回答:


2

さて、あなたはの上部にあるコメントを読んだの /etc/resolv.conf

# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.

正しい解決策は、説明されているようにシステム環境設定のネットワークパネルから検索ドメインを追加することです。 ここに


やった。検索ドメインは、DHCP設定ごとに[システム環境設定]の[ネットワーク]パネルに自動的に入力されます(したがって、グレー表示されて変更できません)。まったく同じ値/設定が/にあります。 /etc/resolv.conf
tholu

それで、私はあなたに何を言うべきかわかりません。イーサネットとWiFiの両方の設定をDHCPで取得し、[システム環境設定]パネルで検索ドメインを変更できます。
Old Pro

検索ドメインはシステム環境設定と/etc/resolv.confで正しいです - 問題はpingとsshがそれを使っていないことです。もし彼らがnslookupの出力を使うのであれば、すべてがうまくいくでしょうが、どういうわけか、彼らはそうしません。しかし、彼らは/ etc / hostsを検索します。
tholu

私は手動で検索ドメインを(それらはグレーアウトされていましたが)システム環境設定で一つずつ追加しました、そして今それは機能します。ありがとうございます。
tholu

4

私は同じ問題を抱えていました。私が使用した解決策は、/ etc / resolverディレクトリを作成することでした。そのディレクトリ内に、解決したいドメインごとに名前を付けたファイルを作成します。各ファイルの内側には2行あります。

nameserver 10.0.100.2
domain  home.cainmanor.com

上記のファイルは/ etc / resolver / homeという名前になります。それはhome.cainmanor.comと命名する必要があるかもしれませんが、私は今それをテストすることができません。

がんばろう!


OS Xが明らかに正しく解析できなかったDHCP設定を上書きして、システム環境設定で検索ドメインを一つずつ設定することでうまくいった。私はあなたの解決策を試すことができませんでした、しかしありがとう!
tholu

この方法は、企業のVPNクライアントが一時的なシステム設定に関して間違ったことをしている場合に適しています。
Peter

1

私は、問題は検索ドメインの設定内にあると思います:ping / sshが使用しようとしています gethostbyname2() これは失敗します 命名 もう動いていない(少なくともLionで) /etc/resolv.conf 設定された検索ドメインでは、このように無視されます。 /etc/hosts の最後の手段です gethostbyname2() そのため、sshはの適切なエントリを使用して再び機能します /etc/hosts。 Apple imhoによって修正されるべきです。

検索ドメインを1つずつ手動で追加して修正しました。上記の解決方法を参照してください。


OS 10.7.3でシステム環境設定で検索ドメインを自分のWiFi接続(DNS経由で設定)に追加したとき - >ネットワークパネル、それは私が期待する通りにpingとsshによって使用されます。 /etc/resolv.confや/ etc / hostsを手動で直接操作するのではありませんが、システム環境設定からの変更は/etc/resolv.confに自動的に反映されます。 OS Xは多くのことを他のUNIXシステムとは異なる方法で実行しますが、これもその1つです。
Old Pro

1
おかげで、これはそれがうまく検索ドメインを手動で一つずつ追加することによってうまくいきました。
tholu

検索ドメインを追加しても問題は解決しませんでした。

どのように追加しましたか?
tholu

1

私のMac Book Pro(OS Xバージョン10.10.1)が眠っているとき、私はこの問題を頻繁に受けます。起こしてください。ネットワーク上のマシンのホスト名を使ってSSHを実行することはできません(そしてpingも動作しません)。 nslookupは正常に動作します。 / var / logに関連メッセージが表示されません。数分放置するとちょっとプレストそれは再び動作します.....

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