DNSルックアップがホストファイルエントリを無視する原因は何ですか?


13

DNS解決の問題があります。これは、ローカルマシンで参照するときに、ローカルでホストされているWebサイトのパフォーマンスに影響を与えています。ブラウザでURLにアクセスするときにネットワークのDNSサフィックスをローカルマシン名に添付すると、サイトのロード時間はDNSサフィックスがない場合よりもひどくなります(100倍以上遅くなります)。

ホストファイルを使用して、ルックアップの必要性を回避することでこれを修正できると思った。このようにホストファイルにエントリを追加しました

127.0.0.1    myMachine.MyDnsSuffix

しかし、これは再起動後でもロード時間を変更しませんでした。この特定の問題を解決することは重要ではありませんが、なぜこれが起こるのを知りたいと思います。

また、ドメインmyMachine.MyDnsSuffixでnslookupを実行すると、ネットワークのDNSサーバーを使用してIPを検索します。これは私の問題に関連しているのでしょうか、それともnslookupがどのように機能するのかを誤解しているだけでしょうか?

回答:


20

HOSTSファイルを利用するのではなく、nslookupを使用してDNSサーバー自体をテストすると考えています。 http://support.microsoft.com/kb/200525も同様に示しているようです。

簡単なpingを試してください。いping myMachine.MyDnsSuffix決意はあなたのHOSTSファイルで指定したループバックアドレスに?


あなたはについて良い点を指摘しましたnslookup。pingを実行したところ、HOSTSファイルで指定されたものとは異なりmyMachine.MyDnsSuffix、ネットワーク上のIPに解決127.0.0.1されました。
ダンハーバート

あなたのOSは何ですか?Windows7およびおそらくVistaには、HOSTSファイルに対する奇妙なUAC保護がいくつかあると思います。変更が適切に保存されていると確信していますか?
クリストファーカレル

私のOSはWindows XPです。変更は適切に保存されているようです。
ダンハーバート

うーん...そのHOSTSエントリの先頭にハッシュマークはありません、ありますか?(それはコメントになります)そして、あなたはそれがC:\ Windows \ System32 \ drivers \ etc \ hostsにあると確信していますか?そこにダミーのエントリを追加して、指定どおりに解決するかどうかを確認できますか?
クリストファーカレル

3
ああ、名前キャッシュをクリアすることを忘れないでください。 ipconfig /flushdns。NETBIOSキャッシュも:nbtstat -R。(Windowsで大文字と小文字を区別-WTF、なぜ?!?)
クリストファーカレル

8

DNSルックアップは、hostsファイルを使用しません。今まで。


2
@BartDeVosいいえ、それは間違っていません。一般的なホストのルックアップ(つまりは、gethostbyname()hostsファイルを経由、またはDNS経由することができますが、DNS固有の検索(によって実行されるnslookup)hostsファイルを使用しません。
オリオン座ゼータ星

ただし、gethostinfo / getaddrinfo(gethostbynameの最新バージョン)はPOSIXであり、必ずしもWindowsが使用するものではありません。
アダプター

2

わかりました、新しいアプローチ。IPおよびNETBIOSキャッシュをクリアしてみましょう。 ipconfig /flushdnsおよびnbtstat -R。次に、Wiresharkのようなパケットスニファを起動し、実行中にpingを実行します。

パケットキャプチャから、A)DNS要求が送信されているかどうかを確認し、送信されている場合は、要求している名前を確認します。B)NETBIOS要求が送信される場合。この名前は、適切なDNSではなくNETBIOSを介して解決されている可能性があります。

キャッシュをフラッシュしても上記のいずれも表示されない場合は、ホストまたはlmhostsから名前がプルされている可能性があります。


1

Webフォーラムの一部の人々は、新しいホストファイルを作成してDNSクライアントサービスを再起動すると問題が修正されると主張していますが、既に再起動を試みた場合にそれが機能する理由はわかりません。

私はこれが長いことだと思いますが、hostsファイルエントリにMSDN、Microsoft、MSNなどのMicrosoft関連の言葉はありませんか?Microsoftは、特定の名前に一致するホストファイルエントリを無視するdnsapi.dllを作成しました。たとえば、次のエントリを追加すると、Windowsはそれをスキップし、DNSを使用してエントリ内の両方のホスト名を解決します。

127.0.0.1 www.microsoft.com www.mysite.com

HOSTSファイルにMicrosoft関連のものはありません。割り当てられている内部テストドメインはわずかです。私のHOSTSファイルはかなり基本的です。
ダンハーバート

うーん、面白い。HOSTSファイルを無視するようにMSドメインをハードコーディングしていることは知っていましたが、MSドメインとエントリを共有する場合、MS以外のドメインも無視されますか?それは彼らの側のプログラミングの質が悪いだけです。これは間違いなく、HOSTSファイルを「縮小」する場合に注意することです。
Synetech

0

完全なDNS名を使用する場合、ブラウザはプロキシサーバーを通過しようとします-IEの場合はクリックします。

ホストファイルまたは名前解決の順序は、この問題とは関係ありません。ホストファイルである人類の裏側にあるひどい痛みは、取り除いて騒々しく撃たなければなりません。


しかし、プロキシに接続していません。
ダンハーバート

1
@mh:ルートサーバーがレコードの追加/削除/編集を許可している限り、ホストの撮影について同意します。
イアン・ボイド

0

http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx

これが実際の原因のようです。突然、警告なしに25年の慣習を無視するために、Microsoftに任せてください。


2
回答の要旨を回答に含めてください。単なるリンクよりもはるかに優れています。
ジェイコブ

リンクされたURLの重要な部分を次に示しますが、何も機能していないようです。<ip address> <single space> <value>としてフォーマットされた他のホストファイルの例をいくつか見るまで、
Tun

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