仮想ネットワークの名前解決を設計する

完了

Azure を使用して IaaS、PaaS、ハイブリッド ソリューションをホストする方法によっては、仮想マシン (VM) と仮想ネットワーク内に配置されたその他のリソースが相互に通信できるようにする必要があります。 IP アドレスを使用して通信を行うこともできますが、簡単に記憶できて変更されない名前を使用する方が、はるかに簡単です。

DNS は、パブリック DNS と、自分の内部ネットワークからアクセスできるリソース用のプライベート DNS の、2 つの領域に分割されます。

パブリック DNS サービス

パブリック DNS サービスでは、Web サーバーのようなインターネット経由でアクセスできるリソースとサービスの名前と IP アドレスが解決されます。 Azure DNS は、Microsoft Azure インフラストラクチャを使用して名前解決を提供する、DNS ドメインのホスティング サービスです。 Azure DNS 内の DNS ドメインは、DNS ネーム サーバーから成る Azure のグローバル ネットワーク上でホストされます。 Azure DNS には、エニーキャスト ネットワークが使用されています。 各 DNS クエリには、使用できる最も近い DNS サーバーが応答します。これによって、ドメインには高速なパフォーマンスと高可用性が提供されます。

Azure DNS では、関連するゾーン内でアドレス レコードを手動で作成できます。 最も頻繁に使用されるのは次のレコードです。

  • ホスト レコード: A/AAAA (IPv4/IPv6)
  • エイリアス レコード: CNAME

Azure DNS により、仮想ネットワーク内のドメイン名を管理および解決するための、信頼性が高く安全な DNS サービスが提供されます。カスタム DNS ソリューションを追加する必要はありません。

DNS ゾーンにより、ドメインの DNS レコードがホストされます。 そのため、Azure DNS でドメインのホストを開始するには、そのドメイン名用に DNS ゾーンを作成する必要があります。 ドメインの DNS レコードはすべて、この DNS ゾーン内に作成されます。

考慮事項

  • ゾーンの名前がリソース グループ内で一意であること、および作成するゾーンがまだ存在していないことが必要です。
  • 同じゾーン名は、別のリソース グループまたは別の Azure サブスクリプション内であれば再利用できます。
  • 複数のゾーンで同じ名前を共有できますが、各インスタンスには異なるネーム サーバー アドレスが割り当てられます。
  • ルート/親ドメインはレジストラーに登録され、Azure NS を指します。
  • 子ドメインは Azure DNS に直接登録されます。

注意

自社で所有していないドメイン名でも、Azure DNS 内にそのドメイン名で DNS ゾーンを作成できます。 ただし、ドメインを構成するには、ドメインを所有する必要があります。

DNS ドメインを委任する

Azure DNS を使用すると、DNS ゾーンをホストし、Azure のドメインの DNS レコードを管理できます。 ドメインに対する DNS クエリを Azure DNS に到達させるには、ドメインを親ドメインから Azure DNS に委任する必要があります。 Azure DNS はドメイン レジストラーではないことに注意してください。

ドメインを Azure DNS に委任するには、最初にゾーンのネーム サーバー名を把握する必要があります。 DNS ゾーンが作成されるたびに、Azure DNS によってプールからネーム サーバーが割り当てられます。 ネーム サーバーが割り当てられると、Azure DNS によって、権限を持つ NS レコードがゾーンに自動的に作成されます。

DNS ゾーンが作成され、ネーム サーバーが割り当てられたら、親ドメインを更新する必要があります。 各レジストラーは独自の DNS 管理ツールを所有していて、ドメインのネーム サーバー レコードを変更します。 レジストラーの DNS 管理ページで、NS レコードを編集し、その NS レコードを、Azure DNS で作成されたレコードに置き換えます。

注意

ドメインを Azure DNS に委任する場合は、Azure DNS によって提供されるネーム サーバー名を使用する必要があります。 対象のドメインの名前に関係なく、常に 4 つのネーム サーバー名すべてを使用する必要があります。

子ドメイン

別の子ゾーンを設定する必要がある場合は、Azure DNS でサブドメインを委任できます。 たとえば、Azure DNS で contoso.com を構成すると、個別の子ゾーンを partners.contoso.com に構成できます。

サブドメインの設定は、一般的な委任と同じプロセスに従います。 唯一異なる点は、ドメイン レジストラーではなく、Azure DNS の親ゾーン contoso.com に NS レコードを作成する必要があることです。

注意

親ゾーンと子ゾーンは、同じリソース グループでも異なるリソース グループでもかまいません。 親ゾーンのレコード セット名が子ゾーンの名前 (この場合は partners) と一致することに注意してください。

DNS レコード セットと個々の DNS レコードの違いを理解することは重要です。 レコード セットとは、1 つのゾーン内にある同じ名前、同じ種類のレコードのコレクションです。

[レコード セットの追加] ページのスクリーンショット。

レコード セットには、同一の 2 つのレコードを含めることはできません。 空のレコード セット (レコードが 0 個) を作成することはできますが、Azure DNS ネーム サーバーには表示されません。 レコード セットの種類が CNAME の場合、そこに含めることができるレコードは 1 つです。

[レコード セットの追加] ページは、選択したレコードの種類によって変わります。 A レコードの場合は、TTL (Time to Live) と IP アドレスが必要です。 Time-to-Live (TTL) は、再度クエリの実行までにクライアントが各レコードをキャッシュする期間を指定します。

[レコードの追加] ページのスクリーンショット。

プライベート DNS サービス

プライベート DNS サービスにより、リソースとサービスの名前と IP アドレスが解決されます

仮想ネットワーク内にデプロイされたリソースで、ドメイン名を内部 IP アドレスに解決する必要がある場合、3 つの方法のいずれかを使用できます。

  • Azure DNS Private Zones
  • Azure で提供される名前解決
  • 独自の DNS サーバーを使用する名前解決

どちらの名前解決方法を使用するかは、リソースが互いに通信するために必要な方法によって決まります。

名前解決のニーズが、Azure で提供される機能の範囲を超えている場合があります。 たとえば、Microsoft Windows Server Active Directory ドメインを使用して、仮想ネットワーク間で DNS 名を解決することが必要である場合があります。 これらのシナリオを可能にするために、Azure では独自の DNS サーバーを使用する機能を提供します。

仮想ネットワーク内の DNS サーバーは、Azure の再帰的リゾルバーに DNS クエリを転送できます。 これにより、その仮想ネットワーク内のホスト名を解決することができます。 たとえば、Azure で実行しているドメイン コントローラー (DC) は、そのドメインに対する DNS クエリに応答し、他のすべてのクエリを Azure に転送できます。 クエリを転送することで、VM はオンプレミスのリソース (DC 経由) と Azure で提供されるホスト名 (フォワーダー経由) の両方を参照できます。 Azure の再帰的リゾルバーへのアクセスは、仮想 IP 168.63.129.16 を通じて提供されます。

また、DNS 転送により、仮想ネットワーク間の DNS 解決も有効になり、オンプレミスのコンピューターで Azure 提供のホスト名を解決できるようになります。 VM のホスト名を解決するには、DNS サーバー VM が、同じ仮想ネットワークに存在し、ホスト名のクエリを Azure に転送するように構成されている必要があります。 DNS サフィックスは仮想ネットワークごとに異なるため、条件付きの転送ルールを使用し、解決のために正しい仮想ネットワークに DNS クエリを送信します。

Azure 提供の DNS

Azure には、独自の既定の内部 DNS が用意されています。 それによって提供される内部 DNS ゾーンは、常に存在し、自動登録をサポートし、手動でレコードを作成する必要がなく、VNet が作成されると作成されます。 そして、それは無料のサービスです。 Azure によって提供される名前解決では、基本的な権限を持つ DNS 機能のみが提供されます。 このオプションを使用した場合、DNS ゾーン名とレコードは Azure によって自動的に管理され、ユーザーは DNS ゾーン名や DNS レコードのライフサイクルを制御できなくなります。

内部 DNS では、.internal.cloudapp.net という名前空間が定義されます。

VNet に作成される VM は、内部 DNS ゾーンに登録され、myVM.internal.cloudapp.net のような DNS ドメイン名を与えられます。 登録されるのは、VM 上のゲスト OS の名前ではなく、Azure リソース名であることを認識しておくことが重要です。

内部 DNS の制限事項

  • 異なる VNet の間で解決することはできない。
  • ゲスト OS 名ではなく、リソース名が登録される。
  • 手動でレコードを作成することはできない。

Azure プライベート DNS ゾーン

Azure のプライベート DNS ゾーンは、内部リソースでのみ使用できます。 スコープはグローバルなので、任意のリージョン、任意のサブスクリプション、任意の VNet、任意のテナントからアクセスできます。 ゾーンを読み取るアクセス許可がある場合は、名前解決にそれを使用できます。 プライベート DNS ゾーンは回復性が高く、世界中のリージョンにレプリケートされます。 インターネット上のリソースには使用できません。

内部 DNS より高い柔軟性が必要なシナリオでは、独自のプライベート DNS ゾーンを作成できます。 これらのゾーンを使用すると、次のことができます。

  • ゾーンに特定の DNS 名を構成する。
  • 必要に応じて手動でレコードを作成する。
  • 異なるゾーン間で名前と IP アドレスを解決する。
  • 異なる VNet 間で名前と IP アドレスを解決する。

ポータルを使用してプライベート DNS ゾーンを作成する

プライベート DNS ゾーンは、Azure portal、Azure PowerShell、または Azure CLI を使用して作成できます。 プライベート DNS ゾーン検索のスクリーン ショット。

新しい DNS ゾーンがデプロイされるときに、リソース レコードを手動で作成するか、自動登録を使用し、Azure のリソース名に基づいてリソース レコードを作成することができます。

プライベート DNS ゾーンでは、ポインター、MX、SOA、サービス、テキスト レコードなど、すべてのレコードがサポートされます。

Azure での VNet は、CIDR 範囲で定義された 1 つ以上のサブネットのグループを表します。 VM などのリソースはサブネットに追加されます。

VNet レベルでの既定の DNS 構成は、Azure によって行われる DHCP 割り当ての一部であり、Azure DNS サービスを使用するための特別なアドレス 168.63.129.16 が指定されています。

必要な場合は、VM NIC で代替 DNS サーバーを構成することにより、既定の構成をオーバーライドできます。

DNS の既定の構成。

VNet をプライベート ゾーンにリンクする 2 つの方法:

  • 登録: 登録の場合、各 VNet は 1 つのプライベート DNS ゾーンにリンクできます。 ただし、登録では最大 100 個の VNet が同じプライベート DNS ゾーンにリンクできます。
  • 解決: 異なる名前空間に、他にも多くのプライベート DNS ゾーンが存在する場合があります。 名前解決を使用すると、そのような各ゾーンに VNet をリンクできます。 名前解決では、各 VNet が最大 1,000 個のプライベート DNS ゾーンにリンクできます。

VNet は、登録の場合は 1 つのプライベート DNS ゾーンにリンクされ、解決の場合は最大 100 個のプライベート DNS ゾーンにリンクされます。

オンプレミスの DNS と Azure VNet の統合

外部 DNS サーバー (オンプレミス サーバーなど) がある場合は、VNet でカスタム DNS 構成を使用して 2 つを統合できます。

外部 DNS は、任意の DNS サーバーで実行できます (BIND on UNIX、Active Directory Domain Services DNS など)。 既定の Azure DNS サービスではなく外部 DNS サーバーを使いたい場合は、対象の DNS サーバーを構成する必要があります。

組織は、多くの場合、自動登録に内部 Azure プライベート DNS ゾーンを使用した後、カスタム構成を使用して外部 DNS サーバーの外部ゾーンにクエリを転送します。

転送には 2 つの形式があります。

  • 転送 - 最初のサーバーで解決できない場合にクエリを解決する別の DNS サーバー (ゾーンの SOA) を指定します。
  • 条件付き転送 - 名前付きゾーンに対して DNS サーバーを指定し、そのゾーンのすべてのクエリが指定した DNS サーバーにルーティングされるようにします。

注意

DNS サーバーが Azure の外部にある場合、168.63.129.16 で Azure DNS にアクセスできません。 このシナリオでは、VNet 内に DNS リゾルバーを設定し、それにクエリを転送した後、それでクエリを 168.63.129.16 (Azure DNS) に転送させます。 基本的には、168.63.129.16 はルーティング可能ではなく、したがって外部クライアントからアクセスできないので、転送を使用します。

オンプレミスの DNS サーバーは、条件付き転送を使用して VNet 1 のクエリを転送します。VNet 1 の DNS リゾルバーは、解決のために Azure DNS にクエリを送信します。

以下のそれぞれの質問に最も適した回答を選んでください。 次に、[自分の回答を確認します] を選択します。

自分の知識をチェックする

1.

静的パブリック IP アドレスと動的パブリック IP アドレスの違いは何ですか?

2.

アプリケーションの所有者は、VNet 上の特定のリソースに動的 IP アドレスを使用する必要があります。 どの SKU を選択する必要がありますか?