ドメイン コントローラー移行後に信頼関係が正常に動作しなくなる事象について

Last Update: feedback 共有

こんにちは。Windows Commercial Support Directory Services チームです。
ドメイン コントローラーを移行した後にドメイン間の認証 (信頼関係) が正常に動作しなくなった場合、その要因は DNS に起因しているケースが多くあります。様々なシナリオがありますが、その中の 1 つのシナリオを紹介します。

本稿では、下記の条件で発生するシナリオを紹介します。

  1. contoso.com と fabrikam.com のドメイン間で信頼関係を結んでいる。
  2. contoso.com では、DNS サーバーに fabrikam.com のセカンダリ ゾーンを構成している。
    (fabrikam.com ゾーンの下には _msdcs 委任レコードが登録されている)
  3. fabrikam.com でドメインコントローラーの移行をおこない、ドメイン コントローラーのホスト名が変更された。

症状:

以下の図のように contoso.com ( DNS サーバー) において、信頼関係先である fabrikam.com に対する名前解決をセカンダリ ゾーンで実現している場合に、プライマリからのゾーン転送が成功しているにもかかわらず、SRV レコードの名前解決に失敗し、信頼関係が正常に動作しなくなる場合がございます。この事象は fabrikam.com のドメイン コントローラーが移行され、ホスト名が変更になったことをきっかけにして発生します。

<移行前>

<移行後>

信頼関係先 (fabrikam.com) にセキュア チャネルの検証を行うと、 “ERROR_NO_LOGON_SERVERS” が表示されます。

原因:

fabrikam.com の _msdcs 委任レコードが古いドメイン コントローラーのホスト名のままになっており、contoso.com のドメイン コントローラーが、 _msdcs.fabrikam.com ゾーンに格納された SRV レコードの名前解決を新しいドメイン コントローラー (DNS サーバー) に委任できていない可能性がございます。
_msdcs 委任レコードは、ドメイン コントローラーが昇格および降格された情報が、自動で反映されない実装になっています。このため、_msdcs 委任レコードに登録されたドメイン コントローラーが降格されると、名前解決の委任先が居なくなり、結果として SRV レコードの名前解決に失敗します。

解決:

本事象を回避するためには、以下の 3 つの方法のいずれかを実施します。
a) fabrikam.com のドメイン コントローラー (DNS サーバー) で _msdcs 委任レコードを更新する
b) contoso.com のドメイン コントローラー (DNS サーバー) で条件付きフォワーダーによる名前解決を設定する
c) contoso.com のドメイン コントローラー (DNS サーバー) で _msdcs.fabrikam.com のセカンダリ ゾーンを構成する

それぞれの方法について手順をご案内いたします。

a) fabrikam.com のドメイン コントローラー (DNS サーバー) で _msdcs 委任レコードを更新する

fabrikam.com の _msdcs 委任レコードに、現存するドメイン コントローラー (DNS サーバー) を追加します。 これによって、contoso.com のドメイン コントローラーが _msdcs.fabrikam.com 内の SRV レコードを解決する際に、fabrikam.com の現存するドメイン コントローラー (DNS サーバー) に名前解決を委任するようになります。

_msdcs 委任レコードの更新

  1. fabrikam.com のドメイン コントローラー (DNS サーバー) に管理者権限を持ったユーザーでログオンします。

  2. [DNS マネージャ] を起動します。

  3. [前方参照ゾーン] - [fabrikam.com] 配下の [_msdcs] を右クリックし、[プロパティ] をクリックします。

  4. すでに存在しないドメイン コントローラー (DNS サーバー) を選択し、[削除] をクリックします。

  5. [追加] をクリックします。

  6. “サーバーの完全修飾ドメイン名 (FQDN) (S):” 欄に現存するドメイン コントローラー (DNS サーバー) の FQDN を入力し、 [OK] をクリックします。
    例) fabrikam.com に現存するドメイン コントローラーのホスト名が dc1 の場合 dc1.fabrikam.com.

  7. 委任先を複数登録する場合は、登録する FQDN を変えて、手順 5. ~ 6. を実施します。

  8. [OK] をクリックし、”_msdcs のプロパティ” 画面を閉じます。

  9. コマンド プロンプト (管理者) を起動します。

  10. 以下のコマンドを実行し、fabrikam.com のドメイン コントローラーへ情報を複製します。
    repadmin /syncall /AeP

ゾーン転送の強制

  1. contoso.com のドメイン コントローラー (DNS サーバー)に管理者権限を持ったユーザーでログオンします。
  2. [DNS マネージャ] を起動します。
  3. [前方参照ゾーン] 配下の [fabrikam.com]を右クリックし、[マスターからゾーンの新しいコピーを転送 (O)] をクリックします。

b) contoso.com のドメイン コントローラー (DNS サーバー) で条件付きフォワーダーによる名前解決を設定する

fabrikam.com に対する名前解決をセカンダリ ゾーンではなく、条件付きフォワーダーを利用することで、_msdcs 委任レコードを参照することなく SRV レコードの名前解決が行えるようになります。

セカンダリ ゾーンの削除

  1. contoso.com のドメイン コントローラー (DNS サーバー)に管理者権限を持ったユーザーでログオンします。
  2. [DNS マネージャ] を起動します。
  3. [前方参照ゾーン] 配下の [fabrikam.com]を右クリックし、[削除] をクリックします。
  4. 確認画面が表示されたら、[はい] をクリックします。
  5. contoso.com のすべてのドメイン コントローラー (DNS サーバー)に対して、手順 1. ~ 4. を実施します。

条件付きフォワーダーの設定

  1. contoso.com のドメイン コントローラー (DNS サーバー)に管理者権限を持ったユーザーでログオンします。
  2. [DNS マネージャ] を起動します。
  3. [条件付きフォワーダー] を右クリックし、[新規条件付きフォワーダー(C)…] をクリックします。
  4. “DNS ドメイン:” 欄に fabrikam.com と入力し、”マスター サーバーの IP アドレス (S)” 欄に fabrikam.com の現存するドメイン コントローラー (DNS サーバー) の IP アドレスを入力します。 入力後、[OK] をクリックします。
    ※ DNS サーバーが複数存在する場合は、複数の IP アドレスを登録してください。
  5. contoso.com のすべてのドメイン コントローラー (DNS サーバー)に対して、手順 1. ~ 4. を実施します。

c) contoso.com のドメイン コントローラー (DNS サーバー) で _msdcs.fabrikam.com のセカンダリ ゾーンを構成する

contoso.com のドメイン コントローラー (DNS サーバー) 上に fabrikam.com セカンダリ ゾーンだけでなく、_msdcs.fabrikam.com セカンダリ ゾーンを追加で構成します。これにより、_msdcs.fabrikam.com ゾーン内のSRV レコードを解決する際に、fabrikam.com 内の _msdcs 委任レコードを参照するのではなく、_msdcs.fabrikam.com ゾーンを直接参照する動作となり、名前解決が行えるようになります。

ゾーン転送の許可

  1. fabrikam.com のドメイン コントローラー (DNS サーバー)に管理者権限を持ったユーザーでログオンします。
  2. [DNS マネージャ] を起動します。
  3. [前方参照ゾーン] 配下の [_msdcs.fabrikam.com]を右クリックし、[プロパティ] をクリックします。
  4. [ゾーンの転送] タブをクリックします。
  5. “ゾーン転送を許可するサーバー” にチェックを入れ、”次のサーバーのみ” を選択してから、[編集] をクリックします。
    ※ “すべてのサーバー” を選択してもゾーン転送の許可は可能となりますが、ここでは特定の IP アドレスに対してのみゾーン転送を許可する設定とします
  6. セカンダリとなる DNS サーバー (contoso.com の DNS サーバー) の IP アドレスを入力し、[OK] をクリックします。
    ※ DNS サーバーが複数存在する場合は、複数の IP アドレスを登録してください。
  7. [OK] をクリックし、プロパティ画面を閉じます。
  8. ゾーン転送元となる fabrikam.com のすべてのドメイン コントローラー (DNS サーバー)に対して、 手順 1. ~ 7. を実施します。

_msdcs.fabrikam.com セカンダリ ゾーンの作成

  1. contoso.com のドメイン コントローラー (DNS サーバー)に管理者権限を持ったユーザーでログオンします。
  2. [DNS マネージャ] を起動します。
  3. [前方参照ゾーン] を右クリックし、[新しいゾーン(Z)… ] をクリックします。
  4. [次へ] をクリックします。
  5. [セカンダリ ゾーン] を選択し、[次へ] をクリックします。
  6. ゾーン名(Z): 欄に “_msdcs.fabrikam.com” と入力し、[次へ] をクリックします。
  7. ゾーン転送元の DNS サーバー (fabrikam.com の DNS サーバー) の IP アドレスを入力し、[次へ] をクリックします。
    ※ DNS サーバーが複数存在する場合は、複数の IP アドレスを登録してください。
  8. [完了] をクリックします。
  9. [前方参照ゾーン] – [_msdcs.fabrikam.com] の順にクリックし、レコードが転送されていることを確認します。
  10. contoso.com のすべてのドメイン コントローラー (DNS サーバー)に対して、手順 1. ~ 9. を実施します。

本投稿が少しでも皆様のお役に立てば幸いです。
※ 本情報の内容 (リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。