チュートリアル: プライベート リゾルバーを使用して DNS フェールオーバーを設定する
この記事では、複数の異なるリージョンにデプロイされた 2 つ以上の Azure DNS Private Resolver を使用して、オンプレミスの DNS サービスの単一障害点を排除する方法について詳しく説明します。 ローカルのリゾルバーをプライマリ DNS として割り当て、隣接するリージョンのリゾルバーをセカンダリ DNS として割り当てることで、DNS フェールオーバーを実現できます。 プライマリ DNS サーバーが応答しなかった場合、DNS クライアントでは自動的にセカンダリ DNS サーバーを使用して再試行します。
このチュートリアルでは、以下の内容を学習します。
- オンプレミスの条件付きフォワーダーと Azure DNS Private Resolver を使用して、Azure プライベート DNS ゾーンを解決します。
- Azure プライベート DNS ゾーンのオンプレミス DNS フェールオーバーを有効にします。
次の図は、この記事で説明するフェールオーバー シナリオを示しています。
このシナリオには、2 つのオンプレミスの場所から 2 つの Azure ハブ仮想ネットワークへの接続が存在します。
- 東部リージョンでは、プライマリ パスは東部仮想ネットワーク ハブへのパスです。 西部ハブへのセカンダリ接続があります。 西部リージョンは逆さまに構成されています。
- インターネット接続の問題により、1 つの仮想ネットワーク (西部) への接続が一時的に切断されます。
- 冗長設計のため、サービスは両方のリージョンで維持されます。
DNS 解決パスは、次のようになります。
- 冗長なオンプレミス DNS 条件付きフォワーダーは、受信エンドポイントに DNS クエリを送信します。
- 受信エンドポイントは、オンプレミスから DNS クエリを受信します。
- 送信エンドポイントと DNS 転送ルールセットは、DNS クエリを処理し、オンプレミスのリソースに応答を返します。
フェールオーバー シナリオでは、送信エンドポイントと DNS 転送ルールセットは必要ありませんが、完全にそろった状態を示すためにここに含めています。 Azure からオンプレミス ドメインを解決するためにルールセットを使用できます。 詳細については、「Azure DNS Private Resolver エンドポイントとルールセット」および「Azure とオンプレミスのドメインを解決する」を参照してください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- 2 つのリージョンにある 2 つの Azure 仮想ネットワーク
- オンプレミスから各仮想ネットワークへの VPN または ExpressRoute リンク
- 各仮想ネットワークに配置されている Azure DNS Private Resolver
- 各仮想ネットワークにリンクされている Azure プライベート DNS ゾーン
- オンプレミスの DNS サーバー
注意
このチュートリアルでは、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 が割り当てられます
DNS プライベート リゾルバーを検索し、最初のリージョンからプライベート リゾルバーを選択します (例: myeastresolver)。
[設定] で [受信エンドポイント] を選択し、IP アドレス設定を書き留めます (例: 10.10.0.4)。
DNS プライベート リゾルバーの一覧に戻り、別のリージョンからのリゾルバーを選択します (例: mywestresolver)。
[設定] で [受信エンドポイント] を選択し、このリゾルバーの IP アドレス設定を書き留めます (例: 10.20.0.4)。
プライベート ゾーン リンクを確認する
Azure DNS プライベート ゾーンの DNS レコードを解決するには、そのゾーンを仮想ネットワークにリンクする必要があります。 この例では、ゾーン azure.contoso.com
は myeastvnet と mywestvnet にリンクされています。 これ以外の仮想ネットワークへのリンクも設定できます。
プライベート DNS ゾーンを検索し、プライベート ゾーンを選択します (例: azure.contoso.com)。
[設定] で [仮想ネットワーク リンク] を選択し、前の手順で受信エンドポイントに使用した仮想ネットワークも [仮想ネットワーク] の下にリストされていることを確認します (例: myeastvnet と mywestvnet)。
1 つ以上の仮想ネットワークがまだリンクされていない場合は、[追加] を選択し、[リンク名] に値を指定します。サブスクリプションを選択してから仮想ネットワークを選択すると、ここに追加できます。
ヒント
ピアリングを使用して、プライベート DNS ゾーンのレコードを解決することもできます。 詳細については、「Azure DNS Private Resolver エンドポイントとルールセット」を参照してください。
Azure DNS 解決を確認する
仮想ネットワークの DNS 設定が既定 (Azure 提供) に設定されていることを確認します。
仮想ネットワークを検索し、最初の仮想ネットワークを選択します (例: myeastvnet)。
[設定] で [DNS サーバー] を選択し、[既定 (Azure 提供)] が選択されていることを確認します。
次の仮想ネットワーク (mywestvnet) を選択し、[Default (Azure 提供)] が選択されていることを確認します。
注意
カスタム DNS 設定を機能させることもできますが、これは現在のシナリオの対象範囲には含まれません。
プライベート DNS ゾーンを検索し、プライベート ゾーンの名前を選択します (例: azure.contoso.com)。
[+ レコード セット] を選択し、新しい A レコードを追加して、ゾーンにテスト レコードを作成します (例: test)。
オンプレミス クライアントを使用してコマンド プロンプトを開き、nslookup を使用して、書き留めた最初のプライベート リゾルバー IP アドレス (例: 10.10.0.4) を使用してテスト レコードを検索します。 次の例を参照してください。
nslookup test.azure.contoso.com 10.10.0.4
クエリは、テスト レコードに割り当てた IP アドレスを返す必要があります。
2 番目のプライベート リゾルバー (例: 10.20.0.4) に書き留めた IP アドレスを使用して、この nslookup クエリを繰り返します。
注意
プライベート ゾーンの 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)。
Windows PowerShell プロンプトを管理者特権で開き、次のコマンドを実行します。 azure.contoso.com をプライベート ゾーンの名前に置き換え、以下の IP アドレスをプライベート リゾルバーの IP アドレスに置き換えます。
Add-DnsServerConditionalForwarderZone -Name "azure.contoso.com" -MasterServers 10.20.0.4,10.10.0.4
必要に応じて、DNS コンソールを使用して条件付きフォワーダーを入力することもできます。 次の例を参照してください。
転送が行われたので、前の手順で使用したのと同じ DNS クエリを発行します。 ただし、今回はクエリの宛先 IP アドレスを入力しません。 このクエリでは、クライアントの既定の DNS サーバーが使用されます。
回復性をデモンストレーションする (省略可能)
これで、いずれかの接続が切断されたときに DNS 解決が機能することをデモンストレーションできるようになりました。
インターフェイスを無効または切断して、オンプレミスからいずれかの仮想ネットワークへの接続を中断します。 接続がオンデマンドで自動的に再接続しないことを確認します。
接続されなくなった仮想ネットワークのプライベート リゾルバーを使用して nslookup クエリを実行し、失敗したことを確認します (以下を参照)。
既定の DNS サーバー (フォワーダーで構成) を使用して nslookup クエリを実行し、有効にした冗長性が原因で機能することを確認します。
次のステップ
- Azure DNS Private Resolver のコンポーネント、利点、要件を確認します。
- Azure PowerShell または Azure portal を使用して Azure DNS Private Resolver を作成する方法を確認します。
- Azure DNS Private Resolver を使用して Azure ドメインとオンプレミス ドメインを解決する方法について学習します。
- Azure DNS Private Resolver のエンドポイントとルールセットについて学習します。
- プライベート リゾルバーを使用してハイブリッド DNS を構成する方法について学習します。
- Azure のその他の重要なネットワーク機能について参照してください。
- Learn モジュール: Azure DNS の概要。