NAT設定の考え方

ここでは、PAシリーズにおけるNAT設定の基本的な概念についてご紹介します。

NATの設定(その1)で紹介した宛先NATの設定を行う際、NATポリシーの送信元ゾーンと宛先ゾーンをどちらもUntrustゾーンに設定しました。その理由を知ることでNAT設定に関する理解が深まるかと思います。

  • NAT処理フロー
    PAシリーズがNAT通信時に行うフローについての説明します。
  • 送信元NAT時のフロー
    NATポリシーとSecurityポリシーのゾーンは同一です。
  • 宛先NAT時のフロー
    一般的な構成では、NATポリシーとSecurityポリシーのゾーンが異なる場合があります。
    送信元NAT時との違いを確認します。

NAT処理フロー

PAシリーズのNATの処理フローの概要について説明します。
少し古いですが公式HPにUnderstanding and Configration NATというドキュメントがありますので併せて参照ください。

まず前提として、FWはルーティングテーブルを見て、そのIPがどのゾーンに所属しているかを決定しています。

  1. パケットを受信したインターフェイスを元に送信元ゾーンを決定します。
    送信元インターフェイスは変更できないので送信元ゾーンが確定します。
  2. パケットの宛先IPをルーティングテーブルでチェックして、ネクストホップの出力インターフェイスを確認します。
  3. 出力インターフェイスに設定しているゾーンを宛先ゾーンとして決定します。
    • 送信元NATの場合は送信元ゾーン、宛先ゾーンが確定します。
    • 宛先NATの場合は宛先ゾーンが変更になる可能性があるので仮決定の状態です。
  4. ①(受信IFによる送信元ゾーン)- ③(NAT変換前の宛先ゾーン)を元にNATポリシーをチェックします。
    • NATポリシーはこの仮決定のゾーンでチェックが行われます。
  5. NATポリシーに基づき、NAT変換を行います。
  6. 宛先NATの場合、宛先IPがNATにより変更され、その影響で出力インターフェイスが変更になる場合があるため、宛先NAT適用後の宛先IPを再度ルーティングテーブルでチェックし、変更後の出力インターフェイスを確認します。
  7. NAT後の出力インターフェイスを元に宛先ゾーンが確定します。
  8. ①(受信IFによる送信元ゾーン)- ⑦(NAT変換後の宛先ゾーン)を元にセキュリティポリシーをチェックします。
    • 上述の通り、宛先NATにおいては、NATポリシーと、セキュリティポリシーでポリシーチェック時の宛先ゾーンが異なる場合があることに注意しましょう。

これらを踏まえて、NATの設定(その1)で設定したポリシーを再度確認してみます。

送信元NATのフロー

送信元NATの構成を再掲します。

NATポリシーとセキュリティポリシーのルールは以下のようになります。

NATポリシー
セキュリティポリシー

ここで、先ほどのフローに当てはめて考えます。

  1. WindowsクライアントPCから出力されたパケットは、FWのインターフェイスe1/2に入ります。インターフェイスe1/2はTrustゾーンに割り当てられていますので、送信元ゾーンはTrustゾーンで確定します。
  2. 宛先ゾーンを決定するために、宛先IP(1.1.1.1)のルーティングテーブルを確認します。ルーティング設定の説明については割愛しますが、インターネット側にデフォルトルートが設定されている前提とします。この場合宛先IP(1.1.1.1)はデフォルトルートにマッチしますので、出力インターフェイスはe1/3となります。
  3. インターフェイスe1/3はUntrustゾーンに割り当てられていますので、宛先ゾーンはUntrustゾーンになります。また、送信元NATでは宛先IPは変換されませんのでここで宛先ゾーンも確定します。
  4. ①(送信元ゾーン:Trustゾーン)、③(宛先ゾーン:Untrustゾーン)を元にNATポリシーをチェックします。
  5. NATによるアドレス変換が行われます。
  6. 宛先NATは行われませんので、宛先は変わりません。
  7. 宛先NATは行われませんので、宛先ゾーンも変わりません。
  8. ①(送信元ゾーン:Trustゾーン)、⑦=③(宛先ゾーン:Untrustゾーン)を元に、セキュリティポリシーのチェックを行い通信制御を行います。

このように、送信元NATの場合、NATポリシーとセキュリティポリシーではゾーンは同一となります。

宛先NATのフロー

続いて、宛先NAT(再掲)のフローについても確認してみましょう。

NATポリシーとセキュリティポリシーのルールは以下のようになります。

NATポリシー
セキュリティポリシー

ここでも、先ほどのフローに当てはめて考えます。

  1. インターネットPC(9.9.9.9)から出力されたパケットは、FWのインターフェイスe1/3に入ります。インターフェイスe1/3はUntrustゾーンに割り当てられていますので、送信元ゾーンはUntrustゾーンで確定します。
  2. 宛先ゾーンを決定するために、宛先IPのルーティングテーブルを確認します。
    • ここで、宛先IPはインターネット側に公開されているNAT用のIP(10.0.3.102)です。
    • この宛先IP(10.0.3.102)は、インターネット側のインターフェイスe1/3に設定したセグメント(10.0.3.0/24)マッチしますので、出力インターフェイスはe1/3となります。
    • ちなみに、別セグメントでNAT用のIPプールを設定した場合も、そのIPプールのゾーンはルーティングテーブルによって割り当てられます。IPプールへのルートがない場合、ゾーンが割り当てられずNAT処理ができなくなります。※1
  3. インターフェイスe1/3はUntrustゾーンに割り当てられていますので、宛先ゾーンはUntrustゾーンになります。
  4. ①(送信元ゾーン:Untrustゾーン)、③(宛先ゾーン:Untrustゾーン)を元にNATポリシーをチェックします。
  5. NATによるアドレス変換が行われます。
    • この設定例では送信元NATも行われますが、ゾーンの決定には関与しませんので、ここでは無視します。
    • 宛先NATが行われ、宛先IPが、10.0.3.102 → 10.0.2.251に変換されます。
  6. 宛先NATにより宛先IPが変更になったので、再度ルーティングテーブルを確認します。
    • 宛先IPは、Windows Server 2019のIP(10.0.2.251)にNAT変換されています。
    • この宛先IP(10.0.2.251)は、ルーティングテーブル上では内部インターフェイスe1/2が所属するセグメント(10.0.2.0/24)にマッチしますので、出力インターフェイスはe1/2となります。
  7. 宛先NATにより変更となった出力インターフェイスe1/2はTrustゾーンに割り当てられていますので、宛先ゾーンはTrustゾーンに変更されます。
  8. ①(送信元ゾーン:Untrustゾーン)、⑦(宛先ゾーン:Trustゾーン)を元に、セキュリティポリシーのチェックを行い通信制御を行います。
    • セキュリティポリシーに設定する宛先IPアドレスはNAT変換前のIP、つまりNAT IP宛に対して設定しますので間違えない様にしましょう。

このように宛先NATの場合、NATポリシーとセキュリティポリシーではゾーンが異なる場合があります。

基本的にはNATの設定でご紹介している設定パターンを覚えてもらえれば問題ありませんが、構成によっては異なる設定方法が必要な場合もありますので、その際にこのフローを思い出してもらえれば幸いです。

※1  インターネットゲートウェイに設置されたFWには、ほとんどの場合デフォルトルートが設定されているはずです。このデフォルトルートは、ルートの存在しないNAT用のIPプールのゾーン決定にも利用されます。デフォルトルートは一般的にインターネット向けに設定されますので、ルートのないIPプールはインターネット側のゾーン(Untrust)に割り当てられます。「宛先NATポリシーはUntrust-to-Untrustで設定するもの」と記載したのはこのような理由からで、基本的にはあまり意識していなくても宛先NATは動作します。しかしFWがデフォルトゲートウェイを持たない場合、IPプールへのルーティングが設定されていないとゾーンを割り当てることができませんし、逆にIPプールへのStaticルートが設定されている場合はそのルートに基づいてゾーンを設定する必要があります。インターネットからDMZにあるグローバルIP宛の通信を宛先NATでTrust側に転送したいというような場合や、デフォルトルートが設定されない閉域網などで利用する場合、後述するUターンNATを利用するような場合には、このフローに基づいて設定を行うことでトラブルを回避できるかと思います。

コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!

タイトルとURLをコピーしました