チュートリアル: プライベート リゾルバーを使用して DNS フェールオーバーを設定する

この記事では、複数の異なるリージョンにデプロイされた 2 つ以上の Azure DNS Private Resolver を使用して、オンプレミスの DNS サービスの単一障害点を排除する方法について詳しく説明します。 ローカルのリゾルバーをプライマリ DNS として割り当て、隣接するリージョンのリゾルバーをセカンダリ DNS として割り当てることで、DNS フェールオーバーを実現できます。 プライマリ DNS サーバーが応答しなかった場合、DNS クライアントでは自動的にセカンダリ DNS サーバーを使用して再試行します。

このチュートリアルでは、以下の内容を学習します。

  • オンプレミスの条件付きフォワーダーと Azure DNS Private Resolver を使用して、Azure プライベート DNS ゾーンを解決します。
  • Azure プライベート DNS ゾーンのオンプレミス DNS フェールオーバーを有効にします。

次の図は、この記事で説明するフェールオーバー シナリオを示しています。

Azure DNS Private Resolver のアーキテクチャ

このシナリオには、2 つのオンプレミスの場所から 2 つの Azure ハブ仮想ネットワークへの接続が存在します。

  • 東部リージョンでは、プライマリ パスは東部仮想ネットワーク ハブへのパスです。 西部ハブへのセカンダリ接続があります。 西部リージョンは逆さまに構成されています。
  • インターネット接続の問題により、1 つの仮想ネットワーク (西部) への接続が一時的に切断されます。
  • 冗長設計のため、サービスは両方のリージョンで維持されます。

DNS 解決パスは、次のようになります。

  1. 冗長なオンプレミス DNS 条件付きフォワーダーは、受信エンドポイントに DNS クエリを送信します。
  2. 受信エンドポイントは、オンプレミスから DNS クエリを受信します。
  3. 送信エンドポイントと DNS 転送ルールセットは、DNS クエリを処理し、オンプレミスのリソースに応答を返します。

フェールオーバー シナリオでは、送信エンドポイントと DNS 転送ルールセットは必要ありませんが、完全にそろった状態を示すためにここに含めています。 Azure からオンプレミス ドメインを解決するためにルールセットを使用できます。 詳細については、「Azure DNS Private Resolver エンドポイントとルールセット」および「Azure とオンプレミスのドメインを解決する」を参照してください。

前提条件

注意

このチュートリアルでは、azure.contoso.com は Azure プライベート DNS ゾーンです。 azure.contoso.com をプライベート DNS ゾーン名に置き換えます。

Azure へのサインイン

Azure portal にサインインします。

受信エンドポイントの IP アドレスを決定する

DNS プライベート リゾルバーの受信エンドポイントに割り当てられた IP アドレスを書き留めます。 この IP アドレスは、オンプレミスの DNS フォワーダーの構成に使用されます。

この例では、2 つのリージョンに 2 つの仮想ネットワークがあります。

  • myeastvnet は米国東部リージョンにあり、アドレス空間 10.10.0.0/16 が割り当てられます
  • mywestvnet は米国中西部リージョンにあり、アドレス空間 10.20.0.0/16 が割り当てられます
  1. DNS プライベート リゾルバーを検索し、最初のリージョンからプライベート リゾルバーを選択します (例: myeastresolver)。

  2. [設定][受信エンドポイント] を選択し、IP アドレス設定を書き留めます (例: 10.10.0.4)。

    受信エンドポイントの表示

  3. DNS プライベート リゾルバーの一覧に戻り、別のリージョンからのリゾルバーを選択します (例: mywestresolver)。

  4. [設定][受信エンドポイント] を選択し、このリゾルバーの IP アドレス設定を書き留めます (例: 10.20.0.4)。

Azure DNS プライベート ゾーンの DNS レコードを解決するには、そのゾーンを仮想ネットワークにリンクする必要があります。 この例では、ゾーン azure.contoso.commyeastvnetmywestvnet にリンクされています。 これ以外の仮想ネットワークへのリンクも設定できます。

  1. プライベート DNS ゾーンを検索し、プライベート ゾーンを選択します (例: azure.contoso.com)。

  2. [設定][仮想ネットワーク リンク] を選択し、前の手順で受信エンドポイントに使用した仮想ネットワークも [仮想ネットワーク] の下にリストされていることを確認します (例: myeastvnetmywestvnet)。

    仮想ネットワーク リンクの表示

  3. 1 つ以上の仮想ネットワークがまだリンクされていない場合は、[追加] を選択し、[リンク名] に値を指定します。サブスクリプションを選択してから仮想ネットワークを選択すると、ここに追加できます。

ヒント

ピアリングを使用して、プライベート DNS ゾーンのレコードを解決することもできます。 詳細については、「Azure DNS Private Resolver エンドポイントとルールセット」を参照してください。

Azure DNS 解決を確認する

仮想ネットワークの DNS 設定が既定 (Azure 提供) に設定されていることを確認します。

  1. 仮想ネットワークを検索し、最初の仮想ネットワークを選択します (例: myeastvnet)。

  2. [設定][DNS サーバー] を選択し、[既定 (Azure 提供)] が選択されていることを確認します。

  3. 次の仮想ネットワーク (mywestvnet) を選択し、[Default (Azure 提供)] が選択されていることを確認します。

    注意

    カスタム DNS 設定を機能させることもできますが、これは現在のシナリオの対象範囲には含まれません。

  4. プライベート DNS ゾーンを検索し、プライベート ゾーンの名前を選択します (例: azure.contoso.com)。

  5. [+ レコード セット] を選択し、新しい A レコードを追加して、ゾーンにテスト レコードを作成します (例: test)。

    テスト A レコードを作成する

  6. オンプレミス クライアントを使用してコマンド プロンプトを開き、nslookup を使用して、書き留めた最初のプライベート リゾルバー IP アドレス (例: 10.10.0.4) を使用してテスト レコードを検索します。 次の例を参照してください。

    nslookup test.azure.contoso.com 10.10.0.4
    

    クエリは、テスト レコードに割り当てた IP アドレスを返す必要があります。 nslookup - east の結果

  7. 2 番目のプライベート リゾルバー (例: 10.20.0.4) に書き留めた IP アドレスを使用して、この nslookup クエリを繰り返します。

    nslookup - West の結果

    注意

    プライベート ゾーンの DNS 解決が機能しない場合は、Azure Vnet へのオンプレミスのリンクが接続されていることを確認します。

オンプレミスの DNS 転送を構成する

2 つの異なる Azure DNS Private Resolver を使用することで、オンプレミスから Azure に DNS 解決が機能するようになったので、これらの両方のアドレスを使用するように転送を構成できます。 これにより、Azure への接続のいずれかが中断された場合の冗長性が実現されます。 フォワーダーを構成する手順は、使用している DNS サーバーの種類によって異なります。 次の例では、DNS サーバーの役割サービスを実行している、IP アドレスが 10.100.0.2 の Windows Server を使用しています。

注意

転送の構成に使用する DNS サーバーは、ネットワーク上のクライアント デバイスが DNS 解決に使用するサーバーである必要があります。 構成しているサーバーが既定でない場合は、転送の構成後に、そのサーバーの IP アドレスを直接照会する必要があります (例: nslookup test.azure.contoso.com 10.100.0.2)。

  1. Windows PowerShell プロンプトを管理者特権で開き、次のコマンドを実行します。 azure.contoso.com をプライベート ゾーンの名前に置き換え、以下の IP アドレスをプライベート リゾルバーの IP アドレスに置き換えます。

    Add-DnsServerConditionalForwarderZone -Name "azure.contoso.com" -MasterServers 10.20.0.4,10.10.0.4
    
  2. 必要に応じて、DNS コンソールを使用して条件付きフォワーダーを入力することもできます。 次の例を参照してください。

    DNS フォワーダーの表示

  3. 転送が行われたので、前の手順で使用したのと同じ DNS クエリを発行します。 ただし、今回はクエリの宛先 IP アドレスを入力しません。 このクエリでは、クライアントの既定の DNS サーバーが使用されます。

    nslookup の結果

回復性をデモンストレーションする (省略可能)

これで、いずれかの接続が切断されたときに DNS 解決が機能することをデモンストレーションできるようになりました。

  1. インターフェイスを無効または切断して、オンプレミスからいずれかの仮想ネットワークへの接続を中断します。 接続がオンデマンドで自動的に再接続しないことを確認します。

  2. 接続されなくなった仮想ネットワークのプライベート リゾルバーを使用して nslookup クエリを実行し、失敗したことを確認します (以下を参照)。

  3. 既定の DNS サーバー (フォワーダーで構成) を使用して nslookup クエリを実行し、有効にした冗長性が原因で機能することを確認します。

    nslookup の結果 - フェールオーバー

次のステップ