Azure Firewall の DNS 設定
カスタム 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 フィルタリングを有効にし、ファイアウォールを DNS プロキシとして使用するようにクライアント仮想マシンを構成していない場合、これらのクライアントからの DNS 要求が、ファイアウォールとは異なる時刻に DNS サーバーに送信されたり、異なる応答が返されことがあります。 Azure Firewall を DNS プロキシとして使用するようにクライアント仮想マシンを構成することをお勧めします。 不整合を回避するために、クライアント要求のパスに Azure Firewall が配置されます。
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 アドレスとして構成します。
Note
カスタム DNS サーバーを使用することを選択する場合、Azure Firewall サブネット内の IP アドレスを除き、仮想ネットワーク内の任意の 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 ゾーンを使用する場合は、Microsoft によって作成されたストレージ アカウントやその他のエンドポイントの既定のドメイン名をオーバーライドするドメイン マッピングを作成しないようにしてください。 既定のドメイン名をオーバーライドすると、Azure Firewall 管理トラフィックが Azure ストレージ アカウントやその他のエンドポイントにアクセスできなくなります。 これにより、ファイアウォールの更新、ログ、監視が中断されます。
たとえば、ファイアウォール管理トラフィックは、ドメイン名 blob.core.windows.net を持つストレージ アカウントにアクセスする必要があり、ファイアウォールは FQDN から IP アドレスに解決するために Azure DNS に依存します。
ドメイン名 *.blob.core.windows.net
を使用してプライベート DNS ゾーンを作成し、それを Azure Firewall 仮想ネットワークに関連付けないようにしてください。 既定のドメイン名をオーバーライドすると、すべての DNS クエリがプライベート DNS ゾーンに送信され、ファイアウォール操作が中断されます。 代わりに、プライベート DNS ゾーンの一意のドメイン名 (*.<unique-domain-name>.blob.core.windows.net
など) を作成します。
または、ストレージ アカウントのプライベート リンクを有効にし、それをプライベート DNS ゾーンと統合することもできます。「Azure Firewall を使用してプライベート エンドポイント トラフィックを検査する」を参照してください。