🔍

Azure DNS Private Resolver を試してみる

2022/05/18に公開

はじめに

Azure DNS Private Resolver がパブリックプレビューで出てきました。こちらを使うと、いままではオンプレ - Azure 間でのアクセスの際の名前解決に必要であったカスタム DNS サーバや DNS フォワーダーの仮想マシンが不要になりそうです。詳細はこちらです。
https://docs.microsoft.com/en-us/azure/dns/dns-private-resolver-overview

要約すると、

  • Azure 上のカスタム DNS サーバ VM の代わりになる
  • DNS フォワーディングルールが設定できる
  • インバウンドエンドポイント=オンプレからの DNS リクエスト受け口
  • インバウンドエンドポイントにリンクされた VNET にリンクされているプライベート DNS ゾーンの名前解決が可能
  • オンプレ DNS サーバからはインバウンドエンドポイントを条件付きフォワーダーに指定する
  • アウトバウンドエンドポイント= DNS フォワーディングの出口
  • オンプレの DNS にフォワーディングしたい場合、ルールに対象の DNS ゾーンを指定し、オンプレ DNS サーバを指定
  • DNS Private Resolver とリンク & 既定の DNS (= Azure DNS) 設定した VNET の仮想マシンがフォワーディング対象の名前解決をすると、 DNS Private Resolver で処理される(=VNET ではリンクしておけばインバウンドエンドポイントを DNS に指定する必要はない)

構築作業

構築ガイドはこちらです。
https://docs.microsoft.com/en-us/azure/dns/dns-private-resolver-get-started-portal


  1. プレビュー用の Azure ポータルのリンクにアクセスします。はじめに日本語で試したのですが、ルールセットのページで一部設定項目が勝手に日本語訳されてエラーになったので、現時点では英語のポータルでの設定が必要です。
    https://go.microsoft.com/fwlink/?linkid=2194569

  1. DNS Private Resolver で検索すると表示されます。[Create] をクリックします。

  1. サブスクリプションやリソースグループ、名前、リージョン、仮想ネットワークを指定します。現時点ではデプロイできるリージョンが制限されています。

  1. インバウンドエンドポイントを追加して名前とサブネットを指定します。インバウンドエンドポイントは オンプレやその他クラウドサービスから DNS リクエストを受け付けるエンドポイント(入口)です。配置するサブネットは "Microsoft.Network/dnsResolvers" に委任する必要があります。(=DNS Resolver Inbound Endpoint 専用サブネットになる)

  1. アウトバウンドエンドポイントを追加して名前とサブネットを指定します。アウトバウンドエンドポイントは オンプレやその他クラウドサービスから受け付けたリクエストを条件に従ってフォワードするためのエンドポイント(出口)です。配置するサブネットは "Microsoft.Network/dnsResolvers" に委任する必要があり、インバウンドと共用はできなさそうです。(=DNS Resolver Outbound Endpoint 専用サブネットになる)

  1. ルールセットを追加します。ルールセットは1つまたは複数のアウトバウンドエンドポイントに適用できる DNS フォワーディングルールのグループであり、VNET にリンクしています。VNET にリンクさせ、その VNET が既定 (Azure 提供)の DNS サーバを指定している場合にルールセットの DNSフォワーダーが適用されます。

ちなみに日本語のポータルでのエラーの原因はこれっぽいです。


  1. [Review and Create] をクリック、検証が完了したら「Create」をクリックします。

デプロイ結果

デプロイしたリソースを確認してみます。


概要ページ


インバウンドエンドポイント
この IP アドレスがオンプレからの DNS リクエストの指定先になる。


アウトバウンドエンドポイント


ルールセットは別リソース


ルール


VNET リンク

動作確認 -VNET 内-

DNS Private Resolver にリンクされている VNET の仮想マシンで動作確認


Azure DNS (168.63.129.16) が指定されていることを確認


パブリックの名前解決


プライベート DNS ゾーンの名前解決


フォワーディングルールに指定した DNS ゾーンの名前解決

フォワーディング先の DNS サーバの設定 & ログ
アウトバウンドエンドポイントから来ていることが確認できる

動作確認 -スポーク VNET-

スポーク VNET を DNS Private Resolver にリンクさせ動作確認


VNET リンクを追加


VNET リンクを追加


スポーク VNET 内の仮想マシンで名前解決

動作確認 -オンプレ (VPNGW 経由) -

VPNGW に P2S 接続している端末からインバウンドエンドポイントを指定して名前解決

プライベートエンドポイントの名前解決

不具合?

構成がよくないのか分からないが、フォワーディングが 2 回に 1 回くらい失敗する。

Discussion