ドメイン コントローラーがドメイン コントローラー内にWindows

この記事では、Windowsベースのドメインでドメイン コントローラーを検索するために使用Windowsについて説明します。

注意

この記事は、2000 年Windows適用されます。 2000 Windowsのサポートは、2010 年 7 月 13 日に終了します。 2000 Windowsエンド オブ サポート ソリューション センターは、2000 年から移行戦略を計画するWindowsです。 詳細については、「Microsoft サポート ライフサイクル ポリシー 」を参照してください

適用対象:  WindowsServer 2019、Windows Server 2016、Windows Server 2012 R2
元の KB 番号:   247811

概要

この記事では、DNS スタイルの名前とフラット スタイル (NetBIOS) 名でドメインを検索するプロセスについて説明します。 フラット スタイルの名前は、下位互換性のために使用されます。 それ以外の場合は、DNS スタイルの名前をポリシーの問題として使用する必要があります。 この記事では、ドメイン コントローラーの場所プロセスのトラブルシューティングも説明します。

ロケーターがドメイン コントローラーを検索する方法

このシーケンスでは、ロケーターがドメイン コントローラーを検索する方法について説明します。

  • クライアント (ドメイン コントローラーを検索しているコンピューター) では、ローカル Netlogon サービスへのリモート プロシージャ 呼び出し (RPC) としてロケーターが開始されます。 Locator DsGetDcName アプリケーション プログラミング インターフェイス (API) 呼び出しは、Netlogon サービスによって実装されます。

  • クライアントは、ドメイン コントローラーの選択に必要な情報を収集します。 次に、DsGetDcName 呼び出しを使用して情報を Netlogon サービスに渡します。

  • クライアント上の Netlogon サービスは、収集された情報を使用して、次の 2 つの方法で指定されたドメインのドメイン コントローラーを検索します。

    • DNS 名の場合、Netlogon は IP/DNS 互換ロケーターを使用して DNS にクエリを実行します。 つまり、DsGetDcName は DnsQuery 呼び出しを呼び出して、SRV レコードを指定する適切な文字列にドメイン名を追加した後、DNS からサービス リソース (SRV) レコードと "A" レコードを読み取ります。

    • サーバー ベースのドメインにログオンしているワークステーションは、Windowsフォームで SRV レコードの DNS を照会します。

      _service._protocol.DnsDomainName
      

      Active Directory サーバーは、TCP プロトコルを使用してライトウェイト ディレクトリ アクセス プロトコル (LDAP) サービスを提供します。 そのため、クライアントはフォームのレコードを DNS に照会して LDAP サーバーを見つけるのです。

      _ldap._tcp。DnsDomainName

  • NetBIOS 名の場合、Netlogon は Microsoft Windows NTバージョン 4.0 互換ロケーターを使用してドメイン コントローラーの検出を実行します。 つまり、WINS などのトランスポート固有のメカニズムを使用します。

    4.0 Windows NT以前では、"discovery" はプライマリ ドメインまたは信頼されたドメインで認証用のドメイン コントローラーを見つけるプロセスです。

  • Netlogon サービスは、名前を登録したコンピューターにデータグラムを送信します。 NetBIOS ドメイン名の場合、データグラムは mailslot メッセージとして実装されます。 名前DNS ドメイン、データグラムは LDAP ユーザー データグラム プロトコル (UDP) 検索として実装されます。 (UDP は、TCP/IP プロトコル スイートの一部であるコネクションレス データグラム トランスポート プロトコルです。 TCP は接続指向のトランスポート プロトコルです)。

  • 使用可能な各ドメイン コントローラーは、データグラムに応答して、現在動作中かどうかを示し、その情報を DsGetDcName に返します。

UDP を使用すると、あるコンピューター上のプログラムが別のコンピューター上のプログラムにデータグラムを送信できます。 UDP にはプロトコル ポート番号が含まれています。これにより、送信者はリモート コンピューター上の複数の宛先 (プログラム) を区別できます。

  • 使用可能な各ドメイン コントローラーは、データグラムに応答して、現在動作中かどうかを示し、その情報を DsGetDcName に返します。
  • Netlogon サービスは、後で要求が検出プロセスを繰り返す必要が生じないので、ドメイン コントローラー情報をキャッシュします。 この情報をキャッシュすると、同じドメイン コントローラーを一貫して使用し、Active Directory の一貫性のあるビューを使用できます。

クライアントがネットワークにログオンまたは参加する場合は、ドメイン コントローラーを検索できる必要があります。 クライアントは DNS 参照クエリを DNS に送信して、ドメイン コントローラーを検索します (できれば、クライアント自身のサブネットに含む)。 そのため、クライアントは DNS にクエリを実行してフォームのレコードを検索してドメイン コントローラーを検索します。

_LDAP._TCP.dc._msdcs.domainname

クライアントがドメイン コントローラーを見つけると、LDAP を使用して Active Directory にアクセスして通信を確立します。 そのネゴシエーションの一環として、ドメイン コントローラーは、クライアントの IP サブネットに基づいて、クライアントが含むサイトを識別します。

クライアントが最も近い (最も最適な) サイトにはないドメイン コントローラーと通信している場合、ドメイン コントローラーはクライアントのサイトの名前を返します。 クライアントが既にそのサイトでドメイン コントローラーを検索しようとした場合、クライアントは最適ではないドメイン コントローラーを使用します。 たとえば、クライアントは DNS 参照クエリを DNS に送信して、クライアントのサブネット内のドメイン コントローラーを検索します。

それ以外の場合、クライアントはサイト固有の DNS ルックアップを新しい最適なサイト名で再度実行します。 ドメイン コントローラーは、サイトとサブネットを識別するためにディレクトリ サービス情報の一部を使用します。

クライアントがドメイン コントローラーを見つけると、ドメイン コントローラー エントリがキャッシュされます。 ドメイン コントローラーが最適なサイトに含されていない場合、クライアントは 15 分後にキャッシュをフラッシュし、キャッシュ エントリを破棄します。 次に、クライアントと同じサイトで最適なドメイン コントローラーを検索します。

クライアントがドメイン コントローラーへの通信パスを確立すると、ログオン資格情報と認証資格情報を確立できます。 また、必要に応Windowsベースのコンピューターでは、セキュリティで保護されたチャネルを設定できます。 クライアントは、通常のクエリを実行し、ディレクトリに対する情報を検索する準備が整いました。

クライアントは、ログオンするドメイン コントローラーへの LDAP 接続を確立します。 ログオン プロセスでは、セキュリティ アカウント マネージャーが使用されます。 通信パスは LDAP インターフェイスを使用し、クライアントはドメイン コントローラーによって認証されます。 そのため、クライアント アカウントが検証され、セキュリティ アカウント マネージャーを介してディレクトリ サービス エージェントに渡され、次にデータベース層に渡され、最後に拡張 Storage エンジン (ESE) のデータベースに渡されます。

ドメイン ロケーター プロセスのトラブルシューティング

ドメイン ロケーター プロセスをトラブルシューティングするには、次の手順を実行します。

  1. クライアントとサーバーの両方でイベント ビューアーを確認します。 イベント ログには、問題が発生したことを示すエラー メッセージが含まれている場合があります。 イベント ビューアーを表示するには、[スタート] を 選択し、[プログラム管理ツール] をポイントし、[ > イベント ビューアー]を選択します。 クライアントとサーバーの両方でシステム ログを確認します。 また、サーバー上のディレクトリ サービス ログと DNS サーバー上の DNS ログも確認します。

  2. コマンド プロンプトでコマンドを使用して IP ipconfig /all 構成を確認します。

  3. Ping ユーティリティを使用して、ネットワーク接続と名前解決を確認します。 IP アドレスとサーバー名の両方に ping を実行します。 ドメイン名に ping を実行する場合があります。

  4. ネットワーク コンポーネントが正しく動作するかどうかを判断するには、Netdiag ツールを使用します。 詳細な出力をテキスト ファイルに送信するには、次のコマンドを使用します。

    netdiag /v >test.txt
    ログ ファイルを確認し、問題を探し、関連するコンポーネントを調査します。 このファイルには、他のネットワーク構成の詳細も含まれている。

  5. 小さな問題を解決するには、次の構文を使用して Netdiag ツールを使用します。

    netdiag /fix.

  6. コマンドを nltest /dsgetdc:domainname 使用して、特定のドメインに対してドメイン コントローラーを見つけ入れる可能性を確認します。

  7. このツール NSLookup を使用して、DNS エントリが DNS に正しく登録されていることを確認します。 サーバー ホスト レコードと GUID SRV レコードを解決できると確認します。

    たとえば、レコード登録を確認するには、次のコマンドを使用します。
    nslookup servername. childofrootdomain. rootdomain.com
    nslookup guid._msdcs. rootdomain.com

  8. これらのコマンドが成功しない場合は、次のいずれかの方法を使用して DNS を使用してレコードを再登録します。

    • ホスト レコードの登録を強制するには、「ipconfig/registerdns」と入力します。
    • ドメイン コントローラー サービスの登録を強制するには、Netlogon サービスを停止して開始します。
  9. ドメイン コントローラーの問題を検出するには、コマンド プロンプトから DCdiag ユーティリティを実行します。 このユーティリティは、多くのテストを実行して、ドメイン コントローラーが正しく実行されていることを確認します。 次のコマンドを使用して、結果をテキスト ファイルに送信します。 dcdiag /v >dcdiag.txt

  10. ドメイン コントローラーにLdp.exeバインドして、適切な LDAP 接続を確認するには、このツールを使用します。

  11. 特定のドメイン コントローラーに問題が発生している疑いがある場合は、Netlogon デバッグ ログを有効にした方が役立つ場合があります。 次のコマンドを入力して、NLTest ユーティリティを使用します nltest /dbflag:0x2000ffff 。 その後、Netlogon.log ファイルの [デバッグ] フォルダーに情報が記録されます。

  12. それでも問題を分離していない場合は、ネットワーク モニターを使用して、クライアントとドメイン コントローラー間のネットワーク トラフィックを監視します。

関連情報

詳細については、「Windows キット」、第 10 章「Active Directory 診断、トラブルシューティング、および回復」を参照してください。