Microsoft TCP/IP のホスト名解決の順序

適用対象: Windows

概要


この資料では、Microsoft Windows クライアントで使用されるホスト名の IP アドレスへの解決方法について説明します。 これらの方法の順序は、NetBIOS 名を IP アドレスに解決するために使用される順序とは異なります。

詳細情報


TCP/IP プロトコルを使用するネットワークでリソースに接続するには、リソースの名前を IP アドレスに変換する必要があります。 Microsoft Windows クライアントは、名前のアドレスへの解決を試みる際、これらの方法の順序に従い、正常に名前を IP アドレスに解決できると、検索を停止します。

NetBIOS 解決とホスト名解決の 2 つが、ほぼすべてのケースで使用される主要な順序です。 Microsoft サーバー (一般的には Windows ファイル マネージャーまたはネットワーク コンピューターを介して) でリソースに接続するクライアントは、NetBIOS 名解決を使用します。

詳細については、以下のサポート技術情報を参照してください。
119493 NetBIOS over TCP/IP Name Resolution and WINS (英語情報)
ホスト名解決は、NetBIOS インターフェイス経由の接続を行わない TCP/IP リソースの名前を解決します。 これの最も一般的な例は、Microsoft Internet Explorer などの Web ブラウザーです。 その他の例としては、Ping、FTP、Telnet などのインターネット アプリケーションがあります。 Winsock (TCP/IP ソケットの Microsoft Windows 実装) を使用して接続する最近のデータベース アプリケーションとメール アプリケーションの多くでも、ホスト名解決が使用されています。 このようなアプリケーションの例には、Outlook や Exchange があります。

名前解決に関する問題のトラブルシューティングを行う際、アプリケーションが NetBIOS 名またはホスト名のどちらを解決しているかを確認する必要があります。

注: この資料では、"クライアント" という単語は、必ずしもワークステーションを指しているわけではありません。 Windows NT Server は、ホスト名解決を必要とするリソースにアクセスする必要がある場合、クライアントとして機能します。

一般的に、ホスト名解決では、以下の順序が使用されます。

  1. クライアントは、クエリの対象の名前がクライアントのものであるかどうかを確認します。
  2. 次に、クライアントは、ローカルの Hosts ファイル (ローカル コンピューターに保存されている IP アドレスおよび名前のリスト) を検索します。

    注: Hosts ファイルの場所は、オペレーティング システムによって異なります。

    Windows NT %Systemroot%\System32\Drivers\Etc
    Windows 95 <drive>\<Windows folder>
    Windows for Workgroups <drive>\<Windows folder>
    Windows 3.1 <drive>\<Windows folder>
    MS-Client 3.0 <Boot volume>\Net
    Lan Manager 2.2c Client <Boot volume>\Net
    %Systemroot% は Windows NT がインストールされているフォルダー、<ドライブ> は OS がインストールされているドライブ、<ブート ボリューム> はブート フロッピー ディスクまたは C ドライブを指します。

    TCP/IP プロトコルと共に、適切な形式を示す Hosts ファイルのサンプル (Hosts.sam) がインストールされます。
  3. ドメイン ネーム システム (DNS) サーバーへのクエリが実行されます。
  4. 名前がまだ解決されていなければ、NetBIOS 名解決の順序がバックアップとして使用されます。 この順序は、クライアントの NetBIOS ノード タイプを構成することによって変更できます。
Windows クライアントは、正常に名前を解決するまで、またはこれらの方法がすべて失敗するまで、これらの方法を試します。 Microsoft TCP/IP 3.11b を使用する Windows NT、Windows 95、および Windows for Workgroups クライアントは、この順序に従います。 Lan Manager 2.2c または Microsoft Client 3.0 クライアントは、NetBIOS 名解決をバックアップとして使用しません。

詳細については、以下のサポート技術情報を参照してください。
169141 MS-Client および LM 2.2c に対する NetBIOS 名、ホスト名の特定
クライアントは、名前を解決するとき、クライアントで構成されていない方法をスキップします。 たとえば、システムに hosts ファイルがない場合は、上記の手順 2 をスキップし、DNS サーバーへのクエリを試行します。 クライアントの TCP/IP の構成に DNS サーバーの IP アドレスが入力されていなければ、クライアントは DNS の次の手順にスキップします。

ホスト名解決の順序を変更する方法は、オペレーティング システムとバージョンによって異なります。 これらについては、使用しているオペレーティング システムの Resource Kit およびサポート技術情報に記載されています。

詳細については、以下のサポート技術情報を参照してください。
171567 Windows NT 4.0 ServiceProvider Priority Values Not Applied (英語情報)
139270 Windows 95 および Windows NT で名前解決の順序を変更する方法
119372 Setting the Name Resolution Search Order for TCP/IP-32 (英語情報)

トラブルシューティング

問題: クライアントがホスト名を解決できない。

トラブルシューティングの手順:

クライアントがホスト名を解決できない場合は、最善策として、クライアントが使用する必要のある上記のホスト名解決の順序を確認します。 クライアントが使用するどのリソースにも名前が存在しない場合は、名前を追加するリソースを決定する必要があります。 いずれかのリソース (DNSサーバーや Windows インターネット ネーム サービス (WINS) サーバーなど) に名前が存在するにもかかわらず、クライアントが名前を正しく解決しない場合は、名前が存在するリソースに重点を置いてトラブルシューティングを行います。

また、クライアントが NetBIOS 名ではなくホスト名の解決を試みていることを確認します。 多くのアプリケーション、特にメール アプリケーションとデータベース アプリケーションでは、名前を解決するために複数の方法を使用できます。 アプリケーションが NetBIOS を使用してリソースに接続するように構成されている場合があります。 クライアントの構成によっては、クライアントがホスト名解決をバイパスしている場合があります。 その場合は、接続の種類を TCP/IP ソケットに変更するか、NetBIOS の問題としてトラブルシューティングを行う必要があります。

問題: クライアントが名前を解決するのが非常に遅い、または名前の解決の失敗から失敗の報告までに長い時間がかかる。

トラブルシューティングの手順:

通常、クライアントの TCP/IP の構成で DNS サーバーが構成されているにもかかわらず、そのサーバーをクライアントが使用できないことが、この問題の原因です。 TCP/IP プロトコルは信頼性の低いネットワークであると想定されるため、クライアントは、DNS サーバーへの接続を繰り返し試みてから、試行したクエリを放棄します。 その後、クライアントは、2 つ目の DNS サーバー (構成されている場合) へのクエリを試行し、それが失敗するまでにまた同じ時間がかかります。 ここでようやく、クライアントは上述のように NetBIOS 名解決に移行します。

この問題に対処する方法は 3 つあります。

  • ホスト名が hosts ファイルに正しく入力されている場合は、クライアントが DNS へのクエリを試行する前に問題が解決されます。 この方法は、一時的に DNS サーバーにアクセスできず、また解決する必要のあるホスト名の数が少ない場合に効果的です。 多数のクライアントの Hosts ファイルを手動で構成することは可能な限り回避することをお勧めします。 または

  • DNS サーバーを使用できるにもかかわらず、クライアントの TCP/IP の構成で設定されている DNS サーバー アドレスが正しくない場合は、これらのアドレスを修正することによって、クライアントが直ちに DNS サーバーにアクセスできるようになります。 DNS サーバーから名前を解決できないことが報告されたとしても、この報告はクライアントが DNS サーバーにアクセスできない場合よりははるかに早く行われます。 または

  • DNS サーバーがクライアントで構成されているにもかかわらず、完全に使用できない場合は、クライアントの構成から DNS サーバーの IP アドレスを削除します。 これにより、クライアントは遅延なく DNS の参照をバイパスします。 または

  • DNS データベース内のレコードが欠落しているか正しくない場合は、DNS サーバーが名前を解決できないことを報告する前に他の DNS サーバーへのクエリを実行するため、遅延が生じます。 通常、これにより生じる遅延はわずか数秒ほどです。
TCP/IP と名前解決の詳細については、マイクロソフトの匿名 FTP サーバーにある次のホワイト ペーパーを参照してください。
ファイル名: Tcpipimp2.doc
場所: ftp://ftp.microsoft.com/bussys/winnt/winnt-docs/papers
タイトル: Microsoft Windows NT 3.5/3.51/4.0: TCP/IP Implementation Details TCP/IP Protocol Stack and Services, Version 2.0. (英語情報)