PowerEdge:内部ドメイン名と外部ドメイン名が同一のWindows環境でWebサイトにアクセスできない
摘要: この記事では、Active Directoryとインターネット ドメイン名が同一である環境で発生する可能性のある3つの問題について説明します。
症状
以下のすべての例では、ADドメインと登録済みドメインの両方がdomain.comという名前で、www.domain.comという名前の会社のWebサイトがあります。同一のドメイン名により、スプリット(またはスプリットブレイン)DNS環境が作成されます。この状況では、内部と外部のDNSネームスペースは同じ名前ですが、別々です
問題1:外部でホストされている会社のWebサイトに、社内からアクセスできません。
これは、スプリットDNS環境で最も一般的な問題です。会社のWebサイト、または会社が所有する別のインターネット接続リソースに、ドメインに参加しているクライアントが社内からアクセスできません。社外のマシンでは、Webサイトに問題なくアクセスできます。
2.社内でホストされているパブリックWebサイトに、社内からアクセスできません。
これは、上記の問題1のバリエーションです。違いは、Webサイトが会社の内部ネットワーク上のファイアウォールの背後またはDMZで内部的にホストされていることです。内部ユーザーと外部ユーザーの両方がアクセスできるはずですが、内部ユーザーはアクセスできません。外部ユーザーからの問題の報告はありません。
問題3:問題1または2に対処した後、Webサイトの読み込みが不完全になったり、読み込めなくなったりします。
サイトがまったく読み込まれないか、内部ユーザーに対して不完全に読み込まれることがあります。すなわち、サイトの一部が表示されなかったり、サイト内のリンクが機能しなかったりします。外部ユーザーは問題なくWebサイトにアクセスできます。
原因
問題1:外部でホストされている会社のWebサイトに、社内からアクセスできません。
これが発生する理由は、内部ユーザーが会社のWebサイトを閲覧しようとした際の動作を確認することで原因を特定できます。
- ユーザーのコンピューターは、ドメインの DNS サーバー(通常はドメイン コントローラー(DC))に、次のIPアドレスを照会します。
www.domain.comとなります。 - DCは、
domain.comという名前の前方参照ゾーンをホストしているため、そのゾーンで次の名前のホスト レコードを探します。wwwとなります。 - DCは、
wwwという名前のホスト レコードを検出しません。DCはdomain.comゾーンに対して権限を持っているため、クエリーは転送されません。 - DCはユーザーのコンピューターに応答し、次のアドレスが見つからなかった旨を報告します。
www.domain.comとなります。 - ユーザーのコンピューターのブラウザーに「ページを表示できません」などのエラーが表示されます。
この問題は、権限のあるDNSサーバーが、そのゾーン内の名前のクエリーを他のDNSサーバーに送信しないために発生します。特定のクエリーに一致するレコードがない場合は、「見つかりません」という応答を返します。この例では、正しいレコードを持つ他のDNSサーバーがあります。それは、パブリックな domain.com ゾーンをホストするDNSサーバーです。これは、社外のマシンからWebサイトにアクセスできるという事実から明らかです。ただし、内部マシンからのクエリーは、そのサーバーには送信されません。
問題2:社内でホストされているパブリックWebサイトに、社内からアクセスできません。
この問題の原因は、問題1と同様です。この場合、内部ユーザーはWebサイトの名前をパブリックIPアドレスに正しく解決できます。しかし、ファイアウォールが設定されているため、Webサイトにはアクセスできません。ファイアウォールは、内部ネットワーク上のユーザーがパブリック アドレスではなくプライベート アドレスを使用してWebサイトにアクセスすることを想定しています
問題3:問題1または2に対処した後、Webサイトの読み込みが不完全になったり、読み込めなくなったりします。
これは、Webサイトのコードがブラウザーを www.domain.com から domain.comへリダイレクトする場合に起こりえます。内部リンクでは、サイトをwww.domain.comではなく domain.com として参照する場合もあります。ww.domain.comとなります。Webサイトが内部でホストされているか外部でホストされているかに関係なく、同じ症状が内部マシンで見られます。
この場合、問題はもう少し複雑です。マシンで domain.com をIPアドレスに解決するには、DNSの domain.com ゾーンに空白のホスト レコードが含まれる必要があります。このレコードの名前は、Windows DNSコンソールに(親フォルダーと同名)と表示されます。ただし、ADは、 domain.com ゾーンの空白のホスト レコードを使用して、 domain.com ドメインのDCを表します。余分な空白のホスト レコードが domain.com ゾーンに存在する場合、遅延や認証の問題が発生する可能性があります。
前述の理由により、この問題はDNSのみを使用して解決することはできません。WebサイトのIPアドレスを使用して空白のホスト レコードを作成しても、内部ユーザーのWebサイト アクセスの問題は断続的にしか解決しません。DCを参照する既存の空白のホスト レコードは、ラウンド ロビンDNS機能により、これに干渉します。これらのレコードはDCによって自動的に登録されるため、DNSゾーンから削除されると、定期的に再表示されます。
解决方案
問題1:外部でホストされている会社のWebサイトに、社内からアクセスできません。
この問題の解決方法は簡単です。DCのdomain.comゾーンにwwwという名前のホスト(A)レコードを作成し、そのレコードにWebサイトのIPアドレスを指定します。そのDNSサーバーにクエリーを実行するマシンは、正しい応答を受信し、Webサイトを閲覧できます。
問題2:社内でホストされているパブリックWebサイトに、社内からアクセスできません。
これについても簡単な解決方法があります。DCのdomain.comゾーンにwwwという名前のホスト レコードを作成し、そのレコードにWebサイトのプライベートIPアドレスを指定します。内部マシンはWebサイトの名前をそのプライベート アドレスに解決し、外部マシンは引き続きWebサイトのパブリック アドレスに名前を解決します。
問題3:問題1または2に対処した後、Webサイトの読み込みが不完全になったり、読み込めなくなったりします。
この問題を解決する最も簡単な方法は、Webサイトのコードを変更してリダイレクトを削除することです。また、内部リンクでは、サイトをdomain.comではなくwww.domain.comとして参照する必要があります。コードを変更できない場合、問題を解決するための唯一のオプションは、ADドメインの名前を変更することです。これは、環境の規模と複雑さによっては、複雑なタスクになる場合があります
メモ:Webサイトにアクセスするには、これらすべての例で www.domain.com という名前を使用します。名前 domain.com を使用してサイトにアクセスしても、機能しないか、断続的にしか機能しません。
其他信息
Active Directory (AD)ドメイン設計のベスト プラクティスでは、登録済みのドメイン名をADドメインの名前として使用しないことをお勧めします。これには、次の2つの選択肢が推奨されています。
- 非パブリックDNSサフィックス(
.localまたは.lanなど)をADドメイン名に含めます。 - ADドメインを登録済みドメインのサブドメインにします(例:
corp.domain.com)。
これは、ADドメインがまだ作成されていない場合、または名前変更操作が進行中の場合にのみ可能です。