【FortiGate】宛先 NAT とルーティングの適用順序について

ファイアウォール(UTM)
スポンサーリンク

作業環境

  • FortiGate 60E
    • version 7.0.3

「NAT が先かルーティングが先か」問題

ルータにおいて NAT を設定している場合、ルーティングとの関係で注意が必要です。

例えば Cisco ルータでは、outside source NAT を設定している場合における inside から outside への通信については宛先 NAT されますが、変換前の宛先アドレスに対してルーティングが実施されます。このため、変換前のアドレス宛のルーティング設定が必要になります。

さて、FortiGate についてはどうでしょうか。以下では FortiGate における NAT、ルーティングの適用順序について記載します。

【答え】FortiGate では宛先 NAT が先に適用される

FortiGate では、一般的にはバーチャル IP を使用したポリシーを設定することで宛先 NAT を実現します。

この場合の FortiGate における NAT、ルーティング、ポリシー適用の順序は以下の通りです。

  1. バーチャル IP オブジェクトの設定に基づいて宛先 NAT が適用される
  2. 変換後宛先 IP に対してルーティングが実施される
    • 出力インターフェースが決まる
  3. ポリシー評価が実施され、適用ポリシーが決定される

バーチャル IP はポリシー設定の中で指定されるオブジェクトのため「適用ポリシーが決まってから宛先 NAT が適用されるのでは」と考えるかもしれませんが、先に宛先 NAT が適用されます。

宛先 NAT を適用するかどうかの評価の仕組みは以下の通りです。

  • 作成されているバーチャル IP オブジェクトの内、いずれかのファイアウォールポリシーの「宛先」として指定されているもののみが評価対象となる
  • 着信したパケットの宛先 IP アドレスがいずれかのバーチャル IP の「外部IPアドレス/範囲」に含まれている場合、対象バーチャル IP の設定に基づいて宛先 NAT される

この仕組みから、どのポリシーにも合致しないが宛先 NAT が適用される、ということも起こり得ます。

以下のログは暗黙の deny ポリシーによって拒否されたパケットのログですが、宛先 NAT が適用されていることが分かります。

FortiGate では変換後宛先へのルートがあれば良い

例えば以下画像のような構成で、FortiGate にて 192.168.1.20 から 172.16.1.10 に宛先 NAT される場合、左側の端末は右側の端末と通信するために変換前の 192.168.1.20 宛に通信します。この場合、FortiGate では変換後の宛先である 172.16.1.10 宛のルートがあれば良いということです。

参考資料

FortiManager Rules with Virtual IP Objects - Routing Question
Hey, In FortiManager, rules have "Incoming Interface" and "Outgoing Interface" fields, which are, among other fields, used to classify if a packet for matching ...
Packet flow ingress and egress: FortiGates without network processor offloading | Parallel Path Processing (Life of a Packet)


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