私の職場には、server01.foo.local
、server02.foo.local
などのドメイン名を持つイントラネットがあります。最近、Fedora 16ライブ環境を起動してテストし、これらのドメイン名が解決されないことを発見しました。
例えば:
$ ping server01.foo.local
ping:不明なホストserver01.foo.local
$ ping server01
PING server01.foo.local(X.X.X.X).。
なぜserver01
は解決する(そして名前をserver01.foo.local
として出力する)のに、server01.foo.local
は解決しないのですか?
期待どおりに機能しない理由については、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を実行しようとすると、実際にはmDNSを介してブロードキャストし、「server01.foo」という名前のマシンを探します。失敗すると、何らかの理由でストレートアップ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のトラッカーのこのバグ を見ると、これは現在のところ明らかな修正がない、長期にわたる問題であるようです。しかし、なぜこれがこのように起こるのかについて誰かがより多くの洞察を提供できれば、それはありがたいです。
.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).
あなたがチェックできるいくつかのこと:
/etc/Host.confに、DNSを照会する前に/ etc/hostsをチェックするように指定する順序がありますか?
server01は/ etc/hostsにありますか?
/ etc/resolve、confにsearch foo.local
はありますか?それはあなたが探しているホスト名にfoo.localを追加します
ネームサーバーが正しく設定されているのでしょうか。まだnslookupがある場合、server01
、server01.foo.local
およびip-address(逆引き参照)に対して何が返されますか?