FortiGateのポリシールーティング(PBR:Policy Based Routing)は、通常のルーティングテーブルとは異なる経路制御を実現する重要な機能です。特定の送信元や宛先に応じて柔軟にトラフィックの経路を変更できるため、複数回線の使い分けやVPN通信の優先制御など、実務では欠かせない設定となっています。

ある企業で「経理部だけインターネット接続を専用回線経由にしたい」という要件がありました。通常のスタティックルートでは全社一律の経路になってしまうため、ポリシールーティングで送信元IPアドレスに基づく経路制御を実装しました。
設定後、diagnoseコマンドで経路が正しく分岐していることを確認し、セキュリティ要件を満たすことができました。
ポリシールーティング(PBR)とは?通常ルーティングとの違い
ポリシールーティングは、宛先IPアドレスだけでなく、送信元IPアドレス、ポート番号、プロトコルなど、複数の条件に基づいて経路を決定する仕組みです。通常のルーティングテーブルよりも優先的に評価されるため、柔軟な経路制御が可能になります。
以下の表でスタティックルートとポリシールーティングの違いを比較します。
| 項目 | スタティックルート | ポリシールーティング |
|---|---|---|
| 判断基準 | 宛先IPアドレスのみ | 送信元、宛先、サービス等 |
| 優先度 | ルーティングテーブル参照 | ルーティングテーブルより優先 |
| 柔軟性 | 低い(全トラフィック一律) | 高い(条件による分岐可能) |
| 設定場所 | Router > Static Route | Policy & Objects > Policy Route |
図1: ポリシールーティングの適用率(実務での利用シーン別)
ポリシールーティングの実務ユースケース
最も典型的な利用例は、送信元IPアドレスに基づいた回線の振り分けです。例えば、経理部門(192.168.10.0/24)のインターネット通信だけを専用回線経由にし、他部署は通常回線を使用するといった設定が可能です。
IPsec VPNやSSL VPN宛のトラフィックを特定のゲートウェイ経由にすることで、通信の安定性を確保します。特に複数拠点間のVPN環境では、ポリシールーティングによる明示的な経路指定が有効です。
HTTPSトラフィックとその他のプロトコルで異なる経路を使用したり、特定の宛先ポート(例:TCP 3389のRDP通信)だけを管理用回線経由にするといった制御も実現できます。
ここでは、経理部門(192.168.10.0/24)のトラフィックを専用回線(wan2)経由にする設定例を紹介します。
「Policy & Objects」→「Policy Route」を選択し、「Create New」をクリックします。
Incoming Interface: internal、Source Address: 192.168.10.0/24、Destination Address: all、Outgoing Interface: wan2を設定します。
Gateway Address欄にwan2のゲートウェイIP(例:203.0.113.1)を入力します。
Sequence Number(優先度)を設定し、「OK」をクリックして保存します。数値が小さいほど優先度が高くなります。
CLIでの設定は以下のように行います。よりきめ細かな制御が可能です。
ポリシールーティングのCLI設定手順
config router policy
edit 1
set input-device "internal"
set src "192.168.10.0/255.255.255.0"
set dst "0.0.0.0/0.0.0.0"
set gateway 203.0.113.1
set output-device "wan2"
next
endポリシールーティングを設定する前に、必ずファイアウォールポリシーで該当トラフィックの通信が許可されていることを確認してください。ポリシールートだけでは通信は許可されません。
ポリシールーティングのトラブルシューティング
設定したポリシールーティングが正しく動作しているか確認するには、以下のdiagnoseコマンドを使用します。
# ポリシールートの一覧表示
get router info routing-table policy
# 特定IPアドレスの経路確認
get router info routing-table details 8.8.8.8
# ポリシールートのマッチング確認
diagnose firewall proute listパケットがポリシールートにマッチしているかリアルタイムで確認するには、以下のコマンドを実行します。
diagnose debug flow filter saddr 192.168.10.10
diagnose debug flow show function-name enable
diagnose debug flow trace start 10
diagnose debug enable出力結果に「matched policy route」と表示されれば、ポリシールーティングが正常に適用されています。
まとめ:ポリシールーティング設計のポイント
よくあるトラブルと解決方法をまとめます。
| 症状 | 原因 | 解決策 |
|---|---|---|
| 経路が切り替わらない | ファイアウォールポリシー未設定 | 該当インターフェースの通信許可ポリシー追加 |
| 一部通信のみ失敗 | ゲートウェイアドレス誤り | 正しいゲートウェイIPを再設定 |
| 優先度が効かない | Sequence Numberの設定ミス | 小さい番号を優先ルールに設定 |
| 戻りパケット喪失 | 非対称ルーティング発生 | asymmetric routing許可設定 |
FortiGateにおける経路決定は以下の優先順位で行われます。理解しておくことでトラブルシューティングが容易になります。
図2: FortiGateの経路決定優先順位
複数のポリシールートを設定する場合、Sequence Number(優先度番号)が小さいものから順に評価されます。例えば、Sequence 5のルールがマッチすれば、Sequence 10以降は評価されません。
より具体的な条件(特定の送信元+宛先)には小さい番号を、広範な条件(全送信元)には大きい番号を割り当てることで、意図した経路制御を実現できます。
# 優先度の確認
config router policy
show
end
# 優先度の変更(edit番号を変更)
config router policy
move 5 before 3
endFortiGateのポリシールーティングは、送信元やサービスに基づく柔軟な経路制御を実現する強力な機能です。スタティックルートでは不可能な細かい制御が可能になり、複数回線の効率的な運用やセキュリティ要件の実現に役立ちます。
- ポリシールートは通常のルーティングテーブルより優先される
- GUI/CLI両方で設定可能だが、diagnoseコマンドでの確認が重要
- Sequence Numberで評価順序を制御し、ファイアウォールポリシーとの組み合わせで完全な制御を実現
FortiGateポリシールーティングに関するよくある質問(FAQ)
Q. ポリシールーティングとスタティックルートはどちらが優先される?
FortiGateではポリシールーティング(PBR)がスタティックルートより優先されます。パケットがPBRの条件にマッチした場合はPBRで指定されたゲートウェイに転送され、マッチしない場合は通常のルーティングテーブルが参照されます。
Q. ポリシールーティングを一時的に無効化する方法は?
CLIで「config router policy」→「edit [ID]」→「set status disable」で個別のポリシールートを無効化できます。トラブルシューティング時に切り分けで使うことが多いです。削除ではなく無効化なので、復旧時はstatusをenableに戻すだけで済みます。
Q. SD-WANとポリシールーティングの使い分けは?
単純な送信元ベースの経路制御ならポリシールーティングで十分です。ただし、回線品質の監視やSLAベースの自動切り替えが必要な場合はSD-WANが適しています。FortiOS 7.x以降ではSD-WANが推奨されており、新規構築ではSD-WANを優先的に検討しましょう。
Q. ポリシールーティングが効かない場合の確認ポイントは?
まず「diagnose firewall proute list」でPBRルールが正しく登録されているか確認します。次に、マッチ条件(送信元IP、宛先IP、プロトコル、ポート)が実際のトラフィックと合致しているか、ゲートウェイが到達可能か(ping確認)をチェックします。ファイアウォールポリシーでの許可も忘れがちなポイントです。



