web-dev-qa-db-ja.com

ローカルの「hosts」ファイルのエントリは、名前の正引きと逆引きの両方をオーバーライドしますか?

Hostsファイルに次のエントリがある場合:

192.168.100.1    bugs
192.168.100.2    daffy.example.com
192.168.100.3    elmer.example.com.

ローカルユーティリティによるIP->名前解決の試行( 'gethostbyaddr'またはWindowsの同等機能を使用すると想定)はこれらのエントリを受け入れますか?この動作は構成可能ですか?オペレーティングシステム間でどのように異なりますか? 「hosts」ファイルのエントリが完全に修飾されているかどうかは重要ですか?

編集:Russellへの応答として、私のテストLinuxシステムはRHEL 4を実行しています。私の/etc/nsswitch.confには、次の「hosts」行が含まれています。

hosts:      files dns nis

名前(バグ、ダフィーなど)でホストにpingを実行すると、前方解決は正しく機能します。それらのいずれかをIPアドレスでtracerouteすると、逆ルックアップは期待どおりに機能します。ただし、IPでpingを実行すると、pingでホスト名が解決されないようです。 Linuxのpingは、特に指示されない限り、常にIPを名前に解決しようとすることを理解していました。 tracerouteがホストファイルの逆ルックアップを処理できるのに、pingできないのはなぜですか?

16
Murali Suriar

通常、hostsファイルは正引きと逆引きの両方に使用されます。 Unixシステムの設定は、nsswitch.confファイルのエントリの順序によって異なります。

例えば以下の行は、hostsファイルがDNSを上書きするようにします。エントリを逆にすると、DNSはhostsファイルを上書きします。

 hosts:files dns 

Windowsシステムで好みの順序に調整できるかどうかはわかりません。

Inetutils-20071127(Ubuntu 9.04ボックスにインストールされているバージョン)でpingのソースを確認しました。ホスト名ではなくIPアドレスにpingを実行すると、ソースは数値のみのモードを有効にするようです。

 if(inet_aton(target、&whereto.sin_addr)== 1){
 hostname = target; 
 if(argc == 1)
 options | = F_NUMERIC ; 

これは、IPアドレスでホストにpingを実行するときに逆ルックアップを取得できない理由を説明する可能性があります。

16

Windowsで名前解決の順序を変更するためのレジストリエントリの変更への参照が見つかりました。

http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=963485

そこから引用:

デフォルトでは、Windowsは次の順序で名前解決プロバイダーをチェックします。

ローカル、(NetBTローカル名キャッシュ)、ホスト、DNS、NetBT(WINS)。

注文をホスト、DNS、ローカル、NetBTにする必要があります。

以下では、数値が小さいほど優先順位が高くなります。

次のレジストリキー

HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\ServicessTcpip\ServiceProvider

変更する必要があります。

DnsPriority= 0x3e8 (Decimal: 1000)
HostsPriority= 0x1f4 (Decimal: 500)
LocalPriority= 0x5dc (Decimal: 1500)
NetbtPriority= 0x7d1 (Decimal: 2001)
8
James F

/etc/Host.confファイルは、IPアドレスの検出に使用される順序を指定します。鉱山にはデフォルトで以下が含まれています:

#
# /etc/Host.conf
#

order hosts,bind
multi on

つまり、hostsファイルは常に最初にチェックされ、次にDNS(バインド)がチェックされます。

ここでnisが指定されていない場合、/etc/nsswitch.confは確認されません。

ドキュメントリンク: http://tldp.org/LDP/nag/node82.html

1
Sekenre