Azure でスプリットホライズン DNS を実装する

完了

Contoso は、境界ネットワーク内のインターネットに接続された DNS サーバーを使用して、外部クライアントに対する DNS クエリを解決します。 内部 DNS サーバーは、内部クライアントのクエリを解決します。 IT チームは、Azure の内部および外部の両方のクライアントに対して同じ名前を解決する方法を必要とします。 スプリットホライズン DNS を提案します。

スプリットホライズン DNS とは

"スプリットホライズン DNS" ("スプリットブレイン DNS" とも呼ばれる) では、インターネットと内部リソースの両方に同じ DNS ドメイン名を使用します。 ただし、内部および外部の DNS 名前空間が一致すると、特定の問題が発生する可能性があります。 ただし、スプリットホライズン DNS は、これらの問題に解決策を提供できます。

スプリットホライズン DNS は、ドメイン名の登録情報を格納する同じドメインの 2 つのプライマリ DNS ゾーンがリソースにある構成です。 内部ネットワーク ホストは 1 つのゾーンに送られますが、外部ホストは名前解決のために別のゾーンに送られます。

たとえば、contoso.com ドメインの非スプリット DNS 構成では、次の表の例のような DNS ゾーンがある可能性があります。

Host レコード タイプ IP アドレス (IP address)
www A 131.107.1.200
リレー A 131.107.1.201
Webserver1 A 192.168.1.200
Exchange1 A 192.168.0.201

インターネット上のクライアント コンピューターが、発行された名前 relay.contoso.com を使用して SMTP リレーにアクセスする場合、DNS サーバーに対してクエリを実行すると、結果 131.107.1.201 が返されます。 次に、クライアントはその IP アドレスに対して SMTP 経由の接続を確立します。

ただし、組織のイントラネット上のクライアント コンピューターも、発行された名前 relay.contoso.com を使用します。 DNS サーバーは、同じ結果である 131.107.1.201 のパブリック IP アドレスを返します。 次に、クライアントは、発行されたコンピューターの外部インターフェイスを使用して、返された IP アドレスへの接続を確立しようとします。 クライアントの構成によっては、これは成功しない可能性があります。

Azure でスプリットホライズン DNS を実装する

同じドメイン名に 2 つのゾーンを構成することにより、この問題を回避できます。 Azure にスプリットホライズン DNS を実装するには、次の 2 つの Azure DNS ゾーンを作成する必要があります。

  • contoso.com という名前のパブリック DNS ゾーン。 適切な VM のパブリック IP アドレスを、このゾーン内の DNS レコードとして登録する必要があります。
  • contoso.com という同じ名前のプライベート DNS ゾーン。 適切な VNet をこのゾーンに登録 VNet としてリンクする必要があります。 Azure は、その VNet の VM をホスト (A) レコードとしてプライベート ゾーンに自動的に登録し、プライベート IP アドレスをポイントします。

Contoso.com のプライベート ゾーンには、次の表に示す情報が含まれます。

Host レコード タイプ IP アドレス (IP address)
www CNAME Webserver1.contoso.com
リレー CNAME Exchange1.contoso.com
Webserver1 A 192.168.1.200
Exchange1 A 192.168.1.201

Contoso.com のパブリック ゾーンには、次の表に示す情報が含まれます。

Host レコード タイプ IP アドレス (IP address)
www A 131.107.1.200
リレー A 131.107.1.201
MX Relay.contoso.com

これで、内部ネットワークと外部ネットワークのクライアント コンピューターで、名前 relay.contoso.com を適切な内部または外部の IP アドレスに解決できるようになりました。

Note

Windows Server DNS では、スプリットホライズン DNS は DNS ポリシーを使用して実現されます。