NTホストファイルのエントリが重複している場合の予想される動作


8

私はあなたのWindows NTのhostsファイルに重複したエントリがあってはいけないことを知っています、 windows\system32\drivers\etc\hostsしかし、あなたがそれらを持っている場合、予想される動作は何ですか?

Windows NTのhostsファイルに、同じホスト名で異なるアドレスの複数のエントリを含めることができます( windows\system32\drivers\etc\hosts )ネットワーク上のそのホストにアクセスすると、Windows DNSシステムはそれをこれらのエントリの1つに解決します。どのエントリを使用するのかをどうやって知ることができますか?

例えば。:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

編集する :この特定の例は特別な振る舞いを強いるようです。ループバックは、順番に関係なく、どのエントリよりも優先されるようです。

または

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

リストの最初のエントリが優先されます。

しかし、私が見ている動作は保証されているのか、バージョン固有のものなのか、それとも一般的に信頼できないのか?

私が尋ねるのは、ホストを処理するためのスクリプトを書いているので、削除/コメントアウトするためにそれらのうちの1つを確実に選択できるかどうかを判断しようとしているからです。


ただ気づいた 127.0.0.1 特別な行動を強いるようです。さまざまなシナリオについて質問するために質問を編集しました。
Merlyn Morgan-Graham

誰が、同じドメイン名と異なるIPアドレスを持つ複数のエントリを持つことはできないと言っていますか?確かにマイクロソフトではありません。 Microsoftによると、これは完全に合法的なものだという。
JdeBP

@JdeBP:これが2つ目の質問に隣接していることはわかっていますが、ホストがマルチホームの場合、それはどういう意味ですか、それはどのように役立ちますか? pingを実行しても、1つのアドレスしか取得されません。私がそれにターミナルサーブしようとしても同じです。ところで、あなたのリンクは かなり 私の質問で説明した動作をバックアップするので、私にとって役に立ちます。あなたは答えを書くべきです:)
Merlyn Morgan-Graham

JdeBPのコメントに基づいて、質問を不正確でないように編集しようとしました。
Merlyn Morgan-Graham

回答:


4

最初のものだけが読まれます。名前が解決されると、それ以上ファイルの読み取りは行われません。


一つ:あなたはその質問に矛盾します。二つ: hosts DNSクライアントサービスが有効になっている場合、ファイルは完全に読み取られ、同じドメイン名を持つ複数のエントリは非常に正当です。
JdeBP

@Synetech:どの部分が間違っているのか明確にすることができますか?それはJdeBPがすでにOPで言及した部分ですか(同じドメインに複数のエントリを持つことができるということですか)、それとも私が見逃したことがありますか? :)
Merlyn Morgan-Graham

1

同じドメイン名を持つ複数のエントリが許可されていて、いくつかのシナリオでは役に立ちます。

私が私の質問で述べたように、それらのアドレスが同じアダプタによって到達可能である「通常の」ケースでは、最初のアドレスがとられるもののようです。これらのエントリの1つがループバックの場合( 127.0.0.1 しかし、それが優先されるかもしれません。

ループバック・アダプタへのアドレスが1つもない場合でも、同じドメイン名を持つ複数のエントリを持つことが理にかなっていることがあります。 コンピュータがマルチホームまたはマルチアドレス対応の場合 。 (ありがとう JdeBP 私のOPのコメントにある情報のために)。

各アドレスが別々の行にマップされ使用されている場合、単一のDNSホスト名が複数のIPアドレスに対応することがあります。たとえば、次のマルチホームまたはマルチアドレス指定可能なDNSホストコンピュータの行を追加できます。

10.0.0.1  host-a.example.microsoft.com
10.0.0.2  host-a.example.microsoft.com
10.0.0.3  host-a.example.microsoft.com

私はそれをテストすることはできませんが、私はアダプタの優先順位/優先順位がここで役割を果たすと思います(あなたはネットワーク設定で設定することができます)。ループバックは、ほとんどの場合アダプタの設定で最初に来るでしょう。


現時点ではアダプタの優先順位や優先順位をテストすることはできません。そのため、これが正しいか正しくないかを確認してください
Merlyn Morgan-Graham

1

私は5分前に試してみました、それはWindowsのhostsファイルに次のようにdnsサーバーなしで実行されます。

ip1、ip2、ipx name_to_resolve

すみません、私の英語...


質問にどのように答えるかを簡単に説明できます
BlueBerry - Vignesh4303

0

>ループバックは、順番に関係なく、どのエントリよりも優先されるようです。

変更を加えた後、必ずクライアント(ブラウザ)を閉じて再実行しましたか?そうでない場合は、古い値を使用しているため、再起動するまで順番に変更内容が表示されない可能性があります。さらに、DNSクライアントサービスを実行している場合は、古い値がキャッシュされるため、変更は表示されません。

私はいくつかのテストを行いましたが、最初のエントリは常に使用されているもののようです。

クライアントがHOSTSファイルを再読み込みしていることを確認し、DNSクライアントサービスも実行している場合は、必ずクライアントを再起動してください。 ipconfig /flushdns


3〜8ヶ月前に作業していたので、作業したかどうかを思い出せません。しかし、これをチェックしてくれてありがとう。あなたは複数のアダプタを持っていますか、そして私が私の自己返答で述べたアダプタの設定に影響があるかどうかをチェックすることができますか?
Merlyn Morgan-Graham

1
実際には、複数のNICの順序は 話し合った 最近。
Synetech
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.