はじめに
Azure DNS Private Resolver を利用してDNS転送を行う方法を紹介していきます。前回はProxyとして利用する方法を紹介しましたがDNS転送(Forwarding)を行う方法を行っていきます。
-
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をオンプレミスなどで利用する場合には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を利用することで解決できます。