Azure

Azure DNS Private Resolver を利用してDNS転送を行う

はじめに

Azure DNS Private Resolver を利用してDNS転送を行う方法を紹介していきます。前回はProxyとして利用する方法を紹介しましたがDNS転送(Forwarding)を行う方法を行っていきます。

Azure DNS Private Resolver エンドポイントとルールセット | Microsoft Learn
Azure DNS Private Resolver エンドポイントとルールセット | Microsoft Learn

この記事では、Azure DNS Private Resolver のエンドポイントとルールセットについて説明します

learn.microsoft.com

本機能はプレビューです。仕様の変更の可能性もあるので注意してください。

前提条件

検証環境として下記の環境を利用しています。

Azure DNS Private Resolver を利用してDNSプライベートゾーンをProxyする - 技術的な何か。
Azure DNS Private Resolver を利用してDNSプライベートゾーンをProxyする - 技術的な何か。

はじめに Azure DNS Private Resolverを利用してDNSプライベートゾーンをProxyしてみたいと思います。 これまでAzureではDNSをオンプレミスなどで利用する場合にはDN

level69.net

疑似オンプレとしてAWSをAzureとVPNで接続した環境を利用しています。そのためVPNでの双方の接続は完了していることが前提です。AWS側はです。

構成

DNS転送先の環境も作成します。VNETを追加しDNSプライベートゾーンを作成します。

AWS側からfabrikam.com の名前解決を DNS Private Resolver を利用してDNS転送を行います。

下記のようにVNET毎にDNSプライベートゾーンがリンクされている場合はAWS側(疑似オンプレ)から名前解決できません。

リンクを貼れは問題は解決しますが、リンクできないシナリオ(組織的問題など)の場合に利用できる構成です。

 

仮想ネットワーク、DNSの構築については割愛します。

  • VNETの作成とピアリング
  • サーバーの作成
  • DNSプライベートゾーンの作成(fabrikam.com)
  • DNS Private Resolverの作成とInbound endpointの作成

本投稿では以下の説明をしていきます。

  • DNS Private ResolverのOutbound endpoint設定
  • DNS転送ルールセットの作成
  • 名前解決の確認

Inbound endpointで受け取ったものをOutboud endpointのから転送します。転送するルールを指定したドメインのみ転送されます。

構築

既に環境は構成されていることが前提です。

DNS Private ResolverのOutbound endpoint設定

DNS Private ResolverにOutbound endpoint(送信エンドポイント)を追加します。

サブネットがない場合は作成します。10.0.0.0/24-10.0.16.0/24は予約アドレス。

追加されたことを確認します。

 

DNS転送ルールセットの作成

DNS転送ルールセットの作成を行います。上記で作成したOutbound endpoint(送信エンドポイント)を選択します。

ルールセットを作成します。ここではドメインのfabrikam.comを転送する規則を追加します。接続先IPは転送先のDNS Private ResolverのInbound endpointのIPアドレスを指定します。

追加されたことを確認します。

次に仮想ネットワークリンクを追加します。これは名前問合せが来るセグメントになります。今回はAWS側からVPN経由でくるので10.0.0.0/16のVNETを指定します。

追加されたことを確認します。

名前解決の確認

確認のためにAWS側から事前に作成してあるサーバーにserver2.fabrikam.comとしてAレコードを作成しておきます。

アクセスして確認してみます。
名前解決、アクセスできていることが分かります。

ubuntu@ip-172-16-30-9:~$ dig server2.fabrikam.com

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> server2.fabrikam.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47513
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;server2.fabrikam.com.          IN      A

;; ANSWER SECTION:
server2.fabrikam.com.   1800    IN      A       10.1.0.4

;; Query time: 352 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Sep 22 09:45:36 UTC 2022
;; MSG SIZE  rcvd: 65

ubuntu@ip-172-16-30-9:~$ curl server2.fabrikam.com
Azure VM2

contoso.comも問題なく名前解決できていることも確認できます。

ubuntu@ip-172-16-30-9:~$ dig server1.contoso.com

; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> server1.contoso.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58069
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;server1.contoso.com.           IN      A

;; ANSWER SECTION:
server1.contoso.com.    1800    IN      A       10.0.0.4

;; Query time: 164 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Sep 22 09:54:23 UTC 2022
;; MSG SIZE  rcvd: 64

以上で動作確認は完了です。

まとめ

Proxyと機能としてだけではなく、DNS転送(Forwarding)の設定を行いました。この機能を利用することで、オンプレ側へのDNS転送も行えます。

これまでDNS転送はAzureでは課題になっていましたが、DNS Private Resolverを利用することで解決できます。

-Azure
-