カスタム DNS サーバーを構成して、Azure Firewall の DNS プロキシを有効にすることができます。 これらの設定は、ファイアウォールをデプロイするときに構成するか、後で [DNS 設定] ページから構成します。 既定では、Azure Firewall は Azure DNS を使用し、DNS Proxy は無効になっています。
DNS サーバー
DNS サーバーでは、ドメイン名から IP アドレスに管理と解決が行われます。 Azure Firewall では、名前解決に Azure DNS が既定で使用されます。 DNS サーバー設定を使用すると、Azure Firewall の名前解決に対して独自の DNS サーバーを構成できます。 1 台のサーバーまたは複数台のサーバーを構成できます。 複数の DNS サーバーを構成する場合、使用されるサーバーはランダムに選択されます。 カスタム DNS には、最大 15 台の DNS サーバーを構成できます。
注意
Azure Firewall Manager を使用して管理される Azure Firewall インスタンスの場合、DNS 設定は関連する Azure Firewall ポリシー内に構成されます。
カスタム DNS サーバーを構成する
- Azure Firewall の [設定] で、 [DNS 設定] を選択します。
- [DNS サーバー] では、仮想ネットワークで以前に指定した既存の DNS サーバーを入力または追加できます。
- 適用を選択します。
ファイアウォールによって、名前解決のために、指定された DNS サーバーに DNS トラフィックが送信されるようになりました。
DNS プロキシ
Azure Firewall が DNS プロキシとして機能するように構成できます。 DNS プロキシは、クライアント仮想マシンから DNS サーバーへの DNS 要求の仲介役です。
ネットワーク ルールで FQDN (完全修飾ドメイン名) フィルタリングを有効にする場合は、DNS プロキシを有効にし、ファイアウォールを DNS プロキシとして使用するように仮想マシンの構成を更新します。
ネットワーク 規則で FQDN フィルター処理を有効にしたが、Azure Firewall を DNS プロキシとして使用するようにクライアント仮想マシンを構成していない場合、これらのクライアントからの DNS 要求が異なる時間に解決されたり、Azure Firewall で表示される結果とは異なる結果が返されたりする可能性があります。 一貫した DNS 解決と FQDN フィルター処理を確保するには、クライアント仮想マシンを構成して、Azure Firewall を DNS プロキシとして使用します。 この設定により、すべての DNS 要求がファイアウォールを通過し、不整合を防ぐことができます。
Azure Firewall が DNS プロキシの場合、次の 2 種類のキャッシュ関数を使用できます。
正のキャッシュ: DNS 解決が成功しました。 ファイアウォールは、最大 1 時間の応答で TTL (Time to Live) に従ってこれらの応答をキャッシュします。
負のキャッシュ: DNS 解決が、応答なし、または解決なしという結果になります。 ファイアウォールは、最大 30 分の応答で TTL に従ってこれらの応答をキャッシュします。
DNS プロキシによって、すべての解決済み IP アドレスが FQDN からネットワーク ルールに格納されます。 ベスト プラクティスとして、1 つの IP アドレスに解決される FQDN を使用することをお勧めします。
ポリシーの継承
スタンドアロン ファイアウォールに適用されるポリシー DNS 設定によって、スタンドアロン ファイアウォールの DNS 設定がオーバーライドされます。 子ポリシーは親ポリシーのすべての DNS 設定を継承しますが、親ポリシーをオーバーライドできます。
たとえば、ネットワーク規則で FQDN を使用するには、DNS プロキシを有効にする必要があります。 ただし、親ポリシーで DNS プロキシが有効 になっていない 場合、この設定をローカルでオーバーライドしない限り、子ポリシーはネットワーク ルールの FQDN をサポートしません。
DNS プロキシの構成
DNS プロキシの構成には、次の 3 つの手順が必要です。
- Azure Firewall の [DNS 設定] で DNS プロキシを有効にします。
- 必要に応じて、カスタム DNS サーバーを構成するか、指定された既定のものを使用します。
- DNS トラフィックを Azure Firewall に誘導するために、仮想ネットワークの DNS サーバーの設定で、Azure Firewall のプライベート IP アドレスをカスタム DNS アドレスとして構成します。
注意
カスタム DNS サーバーを使用する場合は、Azure Firewall サブネットの一部ではない仮想ネットワークから IP アドレスを選択します。
DNS プロキシを構成するには、ファイアウォールのプライベート IP アドレスを使用するように、仮想ネットワークの DNS サーバー設定を構成する必要があります。 次に、Azure Firewall の [DNS 設定] で、DNS プロキシを有効にします。
仮想ネットワークの DNS サーバーを構成する
- Azure Firewall インスタンス経由で DNS トラフィックがルーティングされる仮想ネットワークを選択します。
- [設定] で、 [DNS サーバー] を選択します。
- [DNS サーバー] で、 [カスタム] を選択します。
- ファイアウォールのプライベート IP アドレスを入力します。
- [保存] を選択します。
- 新しい DNS サーバー設定が割り当てられるように、仮想ネットワークに接続されている VM を再起動します。 VM では、再起動されるまで、現在の DNS 設定が使用され続けます。
DNS プロキシを有効にする
- Azure Firewall インスタンスを選択します。
- [設定] で、 [DNS 設定] を選択します。
- 既定では、DNS プロキシは無効になっています。 この設定が有効になると、ファイアウォールによって、ポート 53 がリッスンされ、構成済みの DNS サーバーに DNS 要求が転送されます。
- DNS サーバーの構成を確認して、設定が環境に適していることを確認します。
- [保存] を選択します。
高可用性フェールオーバー
DNS プロキシには、異常が検出されたサーバーの使用を停止し、利用可能な別の DNS サーバーを使用するフェールオーバー メカニズムが備わっています。
すべての DNS サーバーが利用不可の状態になった場合、別の DNS サーバーにフォールバックすることはできません。
正常性チェック
DNS プロキシは、上流のサーバーの異常がレポートされる限り、5 秒間の正常性チェック ループを実行します。 正常性チェックとは、ルート ネーム サーバーに対する再帰 DNS クエリのことです。 上流のサーバーが正常と見なされると、ファイアウォールは、次のエラーまで正常性チェックを停止します。 正常なプロキシからエラーが返されると、ファイアウォールはリストから別の DNS サーバーを選択します。
Azure プライベート DNS ゾーンを使用する Azure Firewall
Azure Firewall では、Azure プライベート DNS ゾーンとの統合がサポートされており、プライベート ドメイン名を解決できます。 プライベート DNS ゾーンを Azure Firewall がデプロイされている仮想ネットワークに関連付けると、そのゾーンで定義されている名前をファイアウォールで解決できます。
重要
Microsoft が所有する既定のドメインをオーバーライドするプライベート DNS ゾーンに DNS レコードを作成することは避けてください。 これらのドメインをオーバーライドすると、Azure Firewall が重要なエンドポイントを解決できなくなる可能性があります。これにより、管理トラフィックが中断され、ログ記録、監視、更新などの機能が失敗する可能性があります。
以下は、Azure Firewall の管理トラフィックがアクセスする必要があるため、オーバーライドされるべきではない Microsoft が所有するドメインの非網羅的なリストです。
azclient.ms
azure.com
cloudapp.net
core.windows.net
login.microsoftonline.com
microsoft.com
msidentity.com
trafficmanager.net
vault.azure.net
windows.net
management.azure.com
table.core.windows.net
store.core.windows.net
azure-api.net
microsoftmetrics.com
time.windows.com
servicebus.windows.net
blob.storage.azure.net
blob.core.windows.net
arm-msedge.net
cloudapp.azure.com
monitoring.core.windows.net
たとえば、Azure Firewall 管理トラフィックでは、ドメイン blob.core.windows.net
を使用してストレージ アカウントにアクセスする必要があります。
*.blob.core.windows.net
のプライベート DNS ゾーンを作成し、それをファイアウォールの仮想ネットワークに関連付ける場合は、既定の DNS 解決をオーバーライドし、重要なファイアウォール操作を中断します。 この問題を回避するには、既定のドメインをオーバーライドしないでください。 代わりに、 *.<unique-___domain-name>.blob.core.windows.net
などの一意のサブドメインのプライベート DNS ゾーンを作成します。
または、プライベート DNS ゾーンが Azure Firewall に影響しないようにするには、プライベート DNS ゾーンを必要とするサービスを別の仮想ネットワークにデプロイします。 これにより、プライベート DNS ゾーンはサービス仮想ネットワークにのみ関連付けられ、Azure Firewall の DNS 解決には影響しません。