FortiGateはパケットごとにルートを都度検索するのではなく、セッション作成時にルーティングテーブルを参照し、決定した出力インターフェースや次ホップ情報をセッションに保持します。
以降のパケットはセッションに従って処理されるため、ルートが後から変わっても既存セッションには即座に反映されません。
この挙動は「セッションに紐づいた経路情報の保持」と呼べるもので、いわゆる“一時的なルート”が生成されるわけではありません。
ルーティングが変更された場合にセッションをどう扱うかは、以下の設定で制御されます。
preserve-session-routesnat-route-changeVIPはDNAT(宛先NAT)であり、受信パケットの宛先IPを内部サーバーのアドレスに書き換えます。
重要なのは、VIPそのものがルートを生成するわけではないという点です。
DNAT後の内部サーバー宛トラフィックは、通常通りFortiGateが持つルーティングテーブルで解決されなければなりません。
したがって、内部ネットワーク宛の静的ルートや動的ルートが正しく設定されている必要があります。
Transparentモード(透過モード)では、FortiGateは基本的にL2ブリッジとして動作します。
この場合、IPルーティングではなくMACアドレスやARPに基づいてフレームを転送します。
ただし、ポリシー制御や一部のUTM機能を利用する際に内部的にIP情報を参照することはありますが、「一時的なルートを生成して転送する」という仕組みではありません。
トラブルシューティング時には以下のCLIコマンドでセッション情報を確認できます。
diagnose sys session list
ここでは、セッションごとのプロトコル、送受信インターフェース、ポリシーID、タイムアウト、NPUオフロード可否などが確認できます。
公開されているドキュメント上で「route=tr-route」といった項目は確認されていません。
現場では、表示される標準的なフィールド(ポリシーID、インターフェース、オフロード状態など)を読み解くことが基本です。
preserve-session-route や snat-route-change によって制御されます。以上、FortiGateのトランスルートについてでした。
最後までお読みいただき、ありがとうございました。