Azure

Azure FirewallのDNS Proxy機能で実現するシームレスなハイブリッドクラウド環境

はじめに

ハイブリッドクラウド環境の構築において重要な機能のひとつにDNSがあります。しかし、ひとつ問題としてオンプレにしろクラウドにしろDNSサーバーの運用は行いたくないですね。

そこでAzureにはプライベートDNSが用意されています。プライベートDNSを設定することで内部の仮想マシンなどにFQDNを設定することが出来ます。

ただし、プライベートDNSは通常、Azure内でのみ利用でき他の環境から利用することが出来ません。

オンプレや他のクラウド環境からDNSを利用できるようにするにはDNS Proxyを利用する方法があります。DNS ProxyはAzure Firewallの機能として実装されており個別にサーバーを構築する必要がありません。

そこで今回はAzure FirewallのDNS Proxy機能を紹介します。

前提条件

以下の前提条件で行います。

構成は以下のようにVPN(Site to Site)で接続された環境です。

  • Azure Firewallは構築されている。
    • プランはStandardで問題ないです。
  • プライベートDNSは設定されている。
    • 対象となる仮想マシンのプライベートIPアドレスがAレコードに登録されている。
    • DNSはFirewallと同じ仮想ネットワークにリンクさせます。
  • アクセス対象の仮想マシンがすでに構築されている。

VPNの設定が必要な場合は過去記事を参考してください。

8800円の格安VPNルータで家とAzure間をサイト対サイトVPN(IPSec)で接続する - 技術的な何か。
8800円の格安VPNルータで家とAzure間をサイト対サイトVPN(IPSec)で接続する - 技術的な何か。

はじめに Azureと拠点を結ぶためにはVPNかExpress Routeによる接続が必要となります。しかし、少数の拠点ではExpress Routeはコスパが悪いです。また、個人でVPN用にルータを

level69.net

設定

DNS Proxyの設定は下記のドキュメントを参考に行っています。ドキュメント内では外部(オンプレなど)DNSを利用する方法が書かれていますがAzure DNSを利用する設定にします。

Azure Firewall の DNS 設定 | Microsoft Docs
Azure Firewall の DNS 設定 | Microsoft Docs

DNS サーバーと DNS プロキシ設定を使用して Azure Firewall を構成できます。

docs.microsoft.com

Azure側の設定

作成したAzure Firewall ポリシーを開きます。

Firewall ポリシーのDNSを開きます。

機能を有効にします。DNS ServersはDefaultです。カスタムではプライベートDNSは利用できません。

DNS ProxyをEnabledに変更します。以上でDNS Proxyの設定は完了です。非常に簡単です。

DNS ServersにDefaultを設定することでリンクされているプライベートを参照するようになります。

オンプレ側の設定

オンプレ側ではDNSの設定を行います。

オンプレサーバーに個別に設定したり、DHCPで配布を行います。DNSのIPアドレスはFirewallのプライベートIPです。

確認

DNSへの問い合わせが問題なく行われるか確認します。

vm1.prv.demo.sxにAレコードで10.0.3.4として仮想マシンを登録しています。

PS C:\Users\user1> nslookup vm1.prv.demo.sx
サーバー: UnKnown
Address: 10.0.3.4

権限のない回答:
名前: vm1.prv.demo.sx
Address: 10.0.0.4

問題なくIPアドレスを引けていることが確認できます。

疎通確認も問題ないです。

PS C:\Users\user1> ping vm1.prv.demo.sx

vm1.prv.demo.sx [10.0.0.4]に ping を送信しています 32 バイトのデータ:
10.0.0.4 からの応答: バイト数 =32 時間 =12ms TTL=63
10.0.0.4 からの応答: バイト数 =32 時間 =13ms TTL=63
10.0.0.4 からの応答: バイト数 =32 時間 =12ms TTL=63
10.0.0.4 からの応答: バイト数 =32 時間 =11ms TTL=63

10.0.0.4 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 11ms、最大 = 13ms、平均 = 12ms

ここで気になることが発生します。DNSをAzureのプライベートDNSに設定すると外部のアドレスが参照できないのではないだろうかと。

問題ありません。Azure DNSは問題なく外部のアドレスも参照することが可能です。

PS C:\Users\user1> nslookup azure.com
サーバー: UnKnown
Address: 10.0.3.4

権限のない回答:
名前: azure.com
Addresses: 20.37.196.198
20.43.132.131
20.49.104.40
20.50.2.51
40.112.243.51
40.74.100.137
191.235.228.36

まとめ

Azure FirewallのDNS Proxyの機能は、Azure特有の機能です。DNS Proxyのためにインスタンスの構築や可用性の設計などは必要ありません。すべてマネージドな環境なため導入や運用に際しても非常に有効な手段となります。ただし、大規模な環境ではVPNなどネットワークの切断による障害に対応するように、各拠点でDNSをキャッシュしたりセカンダリを設定したり対策が必要となるかもしれません。ここら辺は環境、コストに合わせた設計が必要となると思います。

-Azure
-,