Azure プライベート DNS ゾーンを使用すると、仮想ネットワーク内および仮想ネットワーク間での名前解決を実現できます。 この記事では、この機能を使用することでメリットを得られるいくつかの一般的なシナリオについて見ていきます。
シナリオ: 単一の仮想ネットワークをスコープとする名前解決
このシナリオでは、仮想マシンなどの多くのリソースを含む Azure 内に仮想ネットワークを確保しているとします。 特定のドメイン名 (DNS ゾーン) を使用して、仮想ネットワーク内のどのリソースも解決することが、求められる要件となります。 また、名前解決はプライベートとし、インターネットからアクセスできないようにする必要があります。 最後に、Azure で VM を DNS ゾーンに自動的に登録する必要があります。
このシナリオを次に示します。 "A" という名前の仮想ネットワークがあり、これには 2 つの VM (VNETA-VM1 と VNETA-VM2) が含まれています。 各 VM には、プライベート IP が関連付けられています。 たとえば、プライベート ゾーンを作成し、 contoso.com仮想ネットワーク "A" を登録仮想ネットワークとしてリンクすると、Azure DNS によって、2 つの VM を参照するゾーンに 2 つの A レコードが自動的に作成されます。 VNETA-VM1 からの DNS クエリを実行することで VNETA-VM2.contoso.com を解決できるようになり、VNETA-VM2 のプライベート IP を含む DNS 応答が返されます。
また、VNETA-VM1 (10.0.0.1) のプライベート IP のために、VNETA-VM2 から逆引き DNS クエリ (PTR) を行うこともできます。 DNS 応答には、予想どおりに VNETA-VM1 という名前が含められます。
注意
IP アドレス 10.0.0.1 と 10.0.0.2 は、あくまで例です。 Azure ではサブネット内の最初の 4 つのアドレスが予約されるため、.1 と .2 のアドレスは通常は VM に割り当てられません。
次の図は、このシナリオを簡略化したバージョンを示していて、含まれる仮想ネットワークは A と B の 2 つだけです。A が登録仮想ネットワークとして定義され、B が解決仮想ネットワークとして定義されます。 この目的は、両方の仮想ネットワークで、共通のゾーン contoso.com が共有されることにあります。 ゾーンが作成されると、登録用として定義されている仮想ネットワークによって、仮想ネットワーク内の VM (VNETA-VM1 と VNETA-VM2) の DNS レコードが自動的に登録されます。 解決仮想ネットワーク B 内の VM 用のゾーンに DNS レコードを手動で追加することもできます。この設定を使用すると、正引きおよび逆引き DNS クエリにおける次の動作が観察されます。
解決仮想ネットワーク B 内の VNETB VM1 から VNETA-VM1.contoso.com に対する DNS クエリは、VNETA-VM1 のプライベート IP を含む DNS 応答を受信します。
解決仮想ネットワーク B 内の VNETB-VM2 からの 10.1.0.1 に対する逆引き DNS (PTR) クエリは、FQDN VNETB-VM1.contoso.com を含む DNS 応答を受信します。
解決仮想ネットワーク B 内の VNETB-VM3 からの 10.0.0.1 に対する逆引き DNS (PTR) クエリは、NXDOMAIN を受信します。 その理由は、逆引き DNS クエリのスコープが、同じ仮想ネットワークに限定されているためです。
シナリオ: 水平分割機能
このシナリオでは、同じ DNS ゾーンでクライアントが配置されている場所に応じて異なる名前解決が必要になります。 機能または動作が異なるアプリケーションのプライベートおよびパブリック バージョンを持っている場合があります。 両方のバージョンに対して同じドメイン名を使用する必要がありました。 このシナリオを実現するには、Azure DNS 内に同じ名前を使用してパブリックおよびプライベート ゾーンを作成します。
次の図にこのシナリオを示します。 仮想ネットワーク A には、2 つの VM (VNETA-VM1 と VNETA-VM2) が含まれています。 どちらにもプライベート IP とパブリック IP が構成されています。 contoso.com という名前のパブリック DNS ゾーンが作成されました。これによって、これらの VM のパブリック IP が DNS レコードとしてゾーン内に登録されます。 contoso.com という名前のプライベート DNS ゾーンも作成されます。 仮想ネットワーク A は、登録仮想ネットワークとして定義してあります。 次に、Azure によって、VM がそれぞれのプライベート IP を指す A のレコードとしてプライベート ゾーンに自動的に登録されます。
これで、インターネット クライアントが VNETA-VM1.contoso.com に対して DNS クエリを実行すると、Azure によって、パブリック ゾーンからパブリック IP レコードが返されます。 同じ DNS クエリが、同じ仮想ネットワーク A 内の別の VM (たとえば VNETA-VM2) から発行された場合、Azure は、プライベート ゾーンからプライベート IP レコードを返します。