.foo.localドメイン名を解決できません


15

私の職場のようなドメイン名を持つイントラネット持ってserver01.foo.localserver02.foo.local私は最近、それをテストするためのFedora 16ライブ環境を起動し、これらのドメイン名が解決されないことを発見し、など。

例えば:

$ ping server01.foo.local
ping:不明なホストserver01.foo.local
$ ping server01
PING server01.foo.local(XXXX)...

なぜserver01解決する(そして名前をとして印刷するserver01.foo.local)が、解決しserver01.foo.localないのか?


VMBoxで実行されているUbuntuでもまったく同じ問題がありました。@ adam820のソリューションも同様に機能しました。
ジンボ

回答:


22

なぜ期待どおりに動作しないのかという理由については100%アップしていませんが、mDNSサービス(LinuxのAvahi、Mac / WindowsのBonjour / Zeroconf)およびWindowsネットワークと非常に大きな競合があるようです。ドメインの内部ルーティング名として.localを使用します。起こりそうなのは、server01にpingを実行すると、mDNSを使用して解決をスキップし、検索ドメイン(foo.local)をリクエストに追加して、server01.foo.localのDNSサーバーを正常にクエリすることです。ただし、mDNS(デフォルトのマシン名拡張子として.localを使用)を使用する場合、server01.foo.localをpingしようとすると、実際には「server01.foo」という名前のマシンを探してmDNSでブロードキャストします。失敗すると、なんらかの理由でストレートDNSに移行しません。これに対する大規模な回避策は、ドメインに.localという名前を付けないことです。これはおそらく、ほとんどのWindows管理者のドメイン構造化のトレーニングに反します。言われていること:

ネットワークでmDNSが重要でない場合(mDNSが時々使用されるホームネットワークに対して専用DNSサーバーを実行する傾向がある企業で一般的)、検索順序を変更するのが最も簡単な回避策です。

これは/etc/nsswitch.confにあります。ホストのセクションに順序がリストされます。Fedora16のデフォルトは次のとおりです。

hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname

変更する場合:

hosts:      files dns mdns4_minimal [NOTFOUND=return] myhostname

検索順序でDNSを先に移動する場合は、今のところ修正する必要があります。あるいは、mDNSがまったく必要ないことがわかっている場合は、「mdns4_minimal [NOTFOUND = return]」部分を削除するだけです。

Red Hatのトラッカーこのバグを見ると、これは現時点では明らかな修正が行われていない長年の問題のようです。しかし、誰かがこれがなぜこのように起こるのかについてより多くの洞察を提供できるならば、それは高く評価されるでしょう。


mDNSのセクションを削除すると、この問題は解決さ
rhollencamp

これを追加してくださってありがとうございます。まったく同じ問題があり、最初にdnsエントリを移動すると解決しました。私の場合、Fedoraではなく最新のUbuntuを使用していますが、ソリューションはまったく同じでした。
ジンボ

何の価値もない、私はこれを試してみましたが、Cisco VPNが使用vpncしているhosts: .*行のエントリを削除した後に接続できないことがわかりました/etc/nsswitch.conf。これらの設定を置き換えると、問題が修正されました。
ドブ

「失敗すると、なんらかの理由でストレートDNSに移行しません。」。その理由はかなり明白です。[NOTFOUND=return]は、「mDNSが.local名が見つからないことを示している場合、それは信頼できるものであり、それ以上問い合わせる必要はない」という意味です。mDNSの前にDNSを移動することは回避策ですが、mDNSの失敗を非認証にするだけで十分です。
MSalters

はい、それは有効なコメントです。これは7年前のことで、当時は知りませんでした。ただし、はい、それを削除する、以下に示すようにパッケージを削除する、または順序を変更することはすべて有効な回避策/解決策です。
adam820

2

.localドメインを使用している場合の別の解決策をお勧めします。最初に.local、マルチキャストの動的検出に使用するのが標準/慣習のように思えるので、良い考えではありません。

しかし、あなたが主張するなら、ディストリビューションに応じてnss-mdnsパッケージまたはlibnss-mdnsパッケージを削除する方が簡単であり、問題が解決します。その機能が必要ないのなら、なぜそこに残っているのですか?

ここにありyum info nss-mdnsます:

Summary     : glibc plugin for .local name resolution
URL         : http://0pointer.de/lennart/projects/nss-mdns/
License     : LGPLv2+
Description : nss-mdns is a plugin for the GNU Name Service Switch (NSS)
            : functionality of the GNU C Library (glibc) providing host name
            : resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous,
            : aka Apple Bonjour), effectively allowing name resolution by common
            : Unix/Linux programs in the ad-hoc mDNS domain .local.
            : 
            : nss-mdns provides client functionality only, which means that you
            : have to run a mDNS responder daemon separately from nss-mdns if
            : you want to register the local host name via mDNS (e.g. Avahi).

1

確認できること:

  • /etc/host.confには、DNSを照会する前に/ etc / hostsをチェックするように指定する順序がありますか?

  • server01は/ etc / hostsにありますか?

  • そこにあるsearch foo.localでは/ etc / RESOLV、confが?これにより、検索するホスト名にfoo.localが追加されます

ネームサーバーが正しくセットアップされているのだろうか。それでもnslookupコマンドを使用している場合、それがために何を返しずserver01server01.foo.local及びIPアドレス(逆引き参照)?


* host.confは順序について何もありません* server01は/ etc / hostsにありません* search foo.localは/etc/resolv.confにあります(NetworkManagerはそこに置きます)が、それを削除しても役に立ちません。NMが上書きして再起動できないように、編集後に/etc/resolv.confの書き込み保護を試みました。何のサイコロ
rhollencampません

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