- 2020年09月08日
- 6分で読める
-
- D
- v
- s
この記事では、Windowsベースのドメインでドメインコントローラーを見つけるためにWindowsが使用するメカニズムについて説明します。ベースのドメインでドメインコントローラーを見つけるためにWindowsが使用するメカニズムについて説明します。
注意
この記事はWindows 2000に適用されます。 Windows 2000のサポートは2010年7月13日に終了します。 Windows 2000サポート終了記念ソリューションセンターは、Windows 2000からの移行戦略を計画するための出発点となります。 詳細については、「Microsoft Support Lifecycle Policy」をご覧ください。
元の製品バージョン。 Windows Server 2019、Windows Server 2016、Windows Server 2012 R2
オリジナルのKB番号:247811
概要
この記事では、DNSスタイルの名前とフラットスタイル(NetBIOS)の名前でドメインを検索するプロセスについて詳しく説明します。 フラットスタイルの名前は、後方互換性のために使用されます。 その他のケースでは、ポリシーとしてDNSスタイルの名前を使用する必要がある。
More information
このシーケンスは、Locatorがどのようにドメインコントローラーを見つけるかを説明しています:
-
クライアント(ドメインコントローラーを探しているコンピューター)上で、LocatorはローカルのNetlogonサービスへのリモートプロシージャコール(RPC)として開始されます。
-
クライアントは、ドメインコントローラーを選択するために必要な情報を収集し、DsGetDcNameコールを使用して、情報をNetlogonサービスに渡します。
-
クライアント上のNetlogonサービスは、収集した情報を使用して、2つの方法のいずれかで指定されたドメインのドメインコントローラを検索します。
-
DNS 名の場合、Netlogon は IP/DNS 互換の Locator を使用して DNS に問い合わせます。つまり、DsGetDcName は DnsQuery 呼び出しを行い、SRV レコードを指定する適切な文字列にドメイン名を追加した後、DNS からサービス リソース (SRV) レコードと「A」レコードを読み取ります。
-
Windowsベースのドメインにログオンしているワークステーションは、次のような一般的な形式でSRVレコードをDNSに問い合わせます:
_service._protocol.DnsDomainName
Active Directoryサーバーは、TCPプロトコル上でLDAP(Lightweight Directory Access Protocol)サービスを提供しています。
_ldap._tcp.
_ldap._tcp.DnsDomainName
-
-
NetBIOS 名の場合、Netlogon は Microsoft Windows NT version 4.
Netlogonは、NetBIOS名の場合、Microsoft Windows NT version 4.0互換のLocatorを使用して(つまり、トランスポート固有のメカニズム(たとえばWINS)を使用して)ドメインコントローラの発見を行います。
-
Netlogonサービスは、名前を登録したコンピュータにデータグラムを送信します。 NetBIOSドメイン名の場合、データグラムはメールスロット・メッセージとして実装されます。 DNSドメイン名の場合、データグラムはLDAP User Datagram Protocol (UDP)検索として実装されています。 UDPは、TCP/IPプロトコルスイートの一部であるコネクションレスのデータグラム伝送プロトコルです。
-
利用可能な各ドメインコントローラーは、データグラムに応答して、現在稼働中であることを示し、DsGetDcNameに情報を返す。
UDPは、あるコンピュータ上のプログラムが、別のコンピュータ上のプログラムにデータグラムを送信することを可能にする。
- 利用可能な各ドメイン コントローラーは、現在動作可能であることを示すためにデータグラムに応答し、その情報をDsGetDcNameに返します。
- Netlogonサービスはドメイン コントローラーの情報をキャッシュするので、後続のリクエストは発見プロセスを繰り返す必要がありません。
クライアントがログオンするとき、またはネットワークに参加するとき、ドメインコントローラーを見つけられなければなりません。 クライアントはDNSにDNS Lookupクエリを送り、ドメインコントローラーを探し、できればクライアント自身のサブネット内にあるドメインコントローラーを探します。
_LDAP._TCP.dc._msdcs.domainname
クライアントがドメインコントローラーを見つけた後、Active Directoryへのアクセスを得るためにLDAPを使って通信を確立します。 その交渉の一環として、ドメインコントローラは、クライアントのIPサブネットに基づいて、クライアントがどのサイトにいるかを識別します。 クライアントが最も近い(最も最適な)サイトにいないドメインコントローラーと通信している場合、ドメインコントローラーはクライアントのサイトの名前を返す。 クライアントがすでにそのサイトのドメインコントローラーを探そうとしていた場合(たとえば、クライアントがDNSにDNS Lookupクエリを送信して、クライアントのサブネット内のドメインコントローラーを探した場合)、クライアントは最適ではないドメインコントローラーを使用する。 そうでなければ、クライアントは、新しい最適なサイト名で、サイト固有のDNSルックアップを再度実行する。 ドメインコントローラーは、サイトとサブネットを識別するために、ディレクトリサービスの情報の一部を使用する。
クライアントがドメインコントローラーを見つけた後、ドメインコントローラーのエントリーはキャッシュされる。 ドメインコントローラーが最適なサイトにない場合、クライアントは15分後にキャッシュをフラッシュし、キャッシュエントリを破棄する。
クライアントがドメインコントローラーへの通信パスを確立した後、クライアントはログオンと認証の資格情報を確立し、Windowsベースのコンピューターの場合は必要に応じて、安全なチャンネルを設定することができる。
クライアントは、ログオンするために、ドメインコントローラへのLDAP接続を確立する。 ログオンのプロセスでは、Security Accounts Managerを使用します。 通信パスはLDAPインターフェイスを使用し、クライアントはドメイン コントローラーによって認証されているため、クライアント アカウントは検証され、Security Accounts Managerを介してディレクトリ サービス エージェント、データベース レイヤー、そして最終的にExtensible Storage Engine (ESE)のデータベースに渡されます。
Troubleshooting the Domain Locator Process
ドメイン ロケーター プロセスをトラブルシューティングするには:
-
クライアントとサーバーの両方でEvent Viewerを確認します。 イベントログには、問題があることを示すエラーメッセージが含まれている場合があります。 イベントビューアを表示するには、[スタート]をクリックし、[プログラム]をポイントし、[管理ツール]をポイントし、[イベントビューア]をクリックします。 クライアントとサーバーの両方で、システムログを確認します。
-
コマンドプロンプトで
ipconfig /all
コマンドを使用して、IP構成を確認します。 -
Pingユーティリティを使用して、ネットワーク接続と名前解決を確認します。 IPアドレスとサーバー名の両方をPingします。
-
Netdiagツールを使用して、ネットワークコンポーネントが正しく動作しているかどうかを確認します。 詳細な出力をテキストファイルに送信するには、次のコマンドを使用します:
netdiag /v >test.txt
ログファイルを確認し、問題がないか調べ、関係するコンポーネントを調査します。 -
マイナーな問題を修正するには、Netdiagツールを以下の構文で使用します。
netdiag /fix
. -
nltest /dsgetdc:domainname
コマンドを使用して、特定のドメインに対してドメインコントローラーが配置できることを確認します。 -
NSLookupツールを使用して、DNSエントリーがDNSに正しく登録されていることを確認します。 サーバーのホストレコードとGUIDのSRVレコードが解決できることを確認する。
例えば、レコードの登録を確認するには、以下のコマンドを使用します。
nslookup servername. childofrootdomain. rootdomain.com
nslookup guid._msdcs. rootdomain.com
これらのコマンドのいずれかが成功しない場合、次のいずれかの方法を使用して、DNSにレコードを再登録してください:
- ホストレコードの登録を強制するには、ipconfig /registerdnsと入力します。
- ドメインコントローラーサービスの登録を強制するには、Netlogonサービスを停止してから開始する。
ドメインコントローラーの問題を検出するには、コマンドプロンプトからDCdiagユーティリティを実行する。 このユーティリティは、ドメインコントローラーが正しく動作しているかどうかを確認するために、いくつかのテストを実行する。 結果をテキストファイルに送るにはこのコマンドを使う。 dcdiag /v >dcdiag.txt
LDAP.exeツールを使ってドメインコントローラーに接続してバインドし、適切なLDAP接続性を確認する。
特定のドメインコントローラーに問題があると思われる場合、Netlogon debug loggingをオンにすると便利であるかもしれない。 このコマンドを入力してNLTestユーティリティを使用する。 nltest /dbflag:0x2000ffff
。 情報はNetlogon.logファイルのDebugフォルダーに記録される。
それでも問題が解決しない場合は、Network Monitorを使って、クライアントとドメインコントローラー間のネットワークトラフィックを監視する。