Azure DNS Private Resolver とは?

Azure DNS Private Resolverとは、DNS条件付きフォワーダー機能を提供するマネージド
サービスになります。今までだと、オンプレミス環境からAzure Private DNSへの名前解決行う場合、仮想マシン上にDNSフォワーダーをたてるか、Azure FirewallのDNS Proxyを利用する必要がありました。また、逆にAzure上の仮想マシンから、オンプレミスのドメインを参照するにも同じような苦労がありました。このような苦労が、”Azure DNS Private Resolver”で解決できます!

【Azure DNS Private Resolver のコンポーネント】

・Inbound Endpoint:転送されてきたDNSクエリを受信する。固定IPアドレスを持つ
・Outbound Endpoint:転送したいDNSクエリを送信する。サブネットIPをランダムで利用
・Forwarding Ruleset:条件付きフォワーダー機能。リンク(黄線)した仮想ネットワークから利用できる。”Outbound Endpoint”とセットで使用します。
※エンドポイント用サブネットには、委任[Microsoft.Network/dnsResolvers]が必要です。

【オンプレミスからPrivateDNSを参照する場合】

①オンプレADの条件付きフォワーダー機能により、Inbound EndpointにDNSクエリを転送
②Inbound Endpointを経由してPrivateDNSが参照される。
※Outbound Endpoint、Forwarding Ruleset は不要

【AzureからオンプレDNS&PrivateDNSを参照する場合】

①スポークVMからAzureDNSを経由して、Forwarding Rulesetを参照する
②Forwarding Rulesetに従い、Outbound Endpointを経由してオンプレADを参照する。
または、Outbound Endpointから、Inbound Endpointを経由してPrivateDNSを参照する。
※これらの通信は、Peeringを通りません。

【諸条件】

・標準でゾーン冗長に対応
・DNS Private ResolverとForwarding Rulesetは、同じリージョンである必要がある
・1つの仮想ネットワークに、1つのDNS Private Resolverが設定可能
・エンドポイントを設定できるサブネットは[/28~/24]である必要がある
・1つのForwarding Ruleset内でのルールは最大1000まで
・1つのForwarding Rulesetは、最大500の仮想ネットワークにリンク可能
・IPv6には非対応


それでは、やってみよう!!

今回は【AzureからオンプレDNS&PrivateDNSを参照する場合】と同じ構成を作成します。
事前に、オンプレAD、VPN、仮想ネットワーク、PrivateDNS は構築しております。

[+リソースの作成]ー[検索:DNS Private Resolver]ー作成を選択

サブスクリプション:Azureサービスの提供範囲
リソースグループ:グループ名(複数のリソースを1つにグループ化する機能)
名前:表示名
リージョン:デプロイするAzureのリージョン
仮想ネットワーク:DNS Private Resolverを展開するNWを選択

エンドポイント名:表示名
サブネット:Inbound Endpointを作成するサブネットを選択

エンドポイント名:表示名
サブネット:Outbound Endpointを作成するサブネットを選択

ルールセット名:表示名
エンドポイント:Outbound Endpointを選択

ルール名:表示名
ドメイン名:転送するドメイン名 ※[.]にすると全てのドメイン名が対象となる
ルールの状態:[Enable/Disabled]
接続先IPアドレス:転送先のDNSサーバーのIPアドレス
※PrivateDNSを参照するには、InboundEndpointを指定

下記リソースが作成されます。
※DNS Private ResolverとForwarding Rulesetは、別リソースで作成される

DNS Private Resolverでは、受信エンドポイント/送信エンドポイントが設定されています。

DNS Forwarding Rulesetでは、ルール、仮想ネットワークリンク、送信エンドポイントが設定されています。※Spoke01-linkは、作成後に手動で追加

オンプレADにて条件付きフォワーダー設定を実施
※PrivateDNSを参照する場合は、Inbound Endpointに転送する


それでは、確認してみましょう!

オンプレ端末からPrivateDNSを参照

スポークVMからPrivateDNSを参照

スポークVMからオンプレDNSを参照

オンプレADのログを確認すると、Outbound EndpointのIPアドレスが確認できる。