本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate にてポリシールートを設定する方法について説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.3
ポリシールートとは
ポリシールートとは、宛先への経路が複数存在する構成において、特定の送信元・宛先・サービスの場合に通常とは異なる経路でルーティングをさせるために使用される機能です。
ポリシールートは、ルーティングテーブルを使用したルーティングとは別のルート決定の仕組みです。
ポリシールートが設定されている場合、FortiGate にパケットが着信すると FortiGate は以下の手順でルートを決定します。
- まずポリシールートのリストを先頭から順に評価し、条件に合致するポリシールートが見つかればそのポリシールートに基づきルートを確定します
- 条件に合致するポリシールートが存在しなければ、ルーティングテーブルに基づきルートを決定します
上記手順より、ポリシールートは通常のスタティックルートなどよりも優先されることになります。
以下でポリシールートの設定方法について説明します。
ポリシールートの適用順序
ポリシールートが複数設定されている場合、それらのポリシールートには適用順序があります。
ポリシールートは順に評価され、一番最初に条件に合致したポリシールートに基づいてルートが決定されるため、ポリシールートの適用順序が適切でない場合に想定と異なるルートになってしまうことが起こり得ます。
よってポリシールートの適用順序に注意してください。適用順序の確認方法と変更方法については後述します。
ポリシールートの設定方法
想定シナリオ
以下図のネットワーク構成を考えます。FortiGate の internal1 インターフェースの先には内部ネットワークがあり、wan1、wan2 の先にはそれぞれ異なるインターネット回線があります。内部ネットワークの端末は外部ネットワーク上の Microsoft 365 を利用しています。FortiGate はデフォルトルートとしてルータA を通る経路を設定していますが、内部ネットワークの端末から Microsoft 365 への通信についてはルータB を通る経路にルーティングさせたいです。これを実現するため、FortiGate にてポリシールートを設定します。
GUI の表示機能設定
デフォルトの設定では GUI 上にポリシールートに関する設定項目が表示されません。ポリシールートの設定項目を表示させるための設定を行います。
GUI の左側メニューから「システム > 表示機能設定」を選択し、表示機能設定画面にて「高度なルーティング」を有効化して「適用」をクリックします。
これでポリシールートの設定項目が表示されます。
ポリシールートの設定手順
GUI 左側のメニューから「ネットワーク > ポリシールート」を選択します。その後表示されたポリシールート画面の「新規作成」をクリックします。
以下のようなポリシールート設定画面が表示されるため各項目を設定します。
今回の想定シナリオでは以下のように設定します。
- 「着信インターフェース」では、対象通信を着信するインターフェースを指定します。今回のシナリオでは内部ネットワークからの通信が対象となるため internal を指定しています
- 「送信元アドレス」では、対象通信の送信元アドレスを指定します。手入力またはアドレスオブジェクトから指定が可能です。今回のシナリオでは内部ネットワークのセグメントに該当するアドレスオブジェクトを指定しています
- 「宛先アドレス」では、対象通信の宛先アドレスを指定します。手入力、アドレスオブジェクト、インターネットサービスの3つの指定方法があります。今回のシナリオでは Microsoft 365 宛の通信を対象としたいため、インターネットサービスで Microsoft 365 関連のインターネットサービスをすべて選択しています
- 「プロトコル」では、対象通信のプロトコル及びポートを指定できます。今回のシナリオではプロトコル及びポートでの制限はしないこととして「ANY」を選択しています
- 「サービスタイプ」「ビットマスク」は、基本的にデフォルトのままで問題ありません
- 「アクション」では「転送トラフィック」を選択します
- 「発信インターフェース」では、対象通信をルーティングする際の発信インターフェースを指定します。今回のシナリオでは wan2 から発信したいので wan2 を指定しています
- 「ゲートウェイアドレス」では、対象通信をルーティングする際のゲートウェイアドレスを指定します。今回のシナリオでは wan2 先のルータであるルータB のアドレスを指定しています
- 「コメント」は任意にコメントを設定できます
- 「ステータス」は「有効化済み」のままとします
以上の設定ができたら画面下の「OK」をクリックして確定します。
ポリシールート画面にてポリシールートが追加されたことを確認します。
ポリシールートの適用順序が適切になっているかを確認し、必要に応じて順序を変更します。実施方法については後述します。
ポリシールートの CLI コンフィグ
ポリシールートのコンフィグはconfig router policy
です。
今回のシナリオで設定したポリシールートのコンフィグは以下のようになっています。
config router policy
edit 1
set input-device "internal"
set input-device-negate disable
set srcaddr "10.1.1.0/24"
set src-negate disable
set action permit
set protocol 0
set gateway 10.0.11.254
set output-device "wan2"
set tos 0x00
set tos-mask 0x00
set status enable
set comments ''
set internet-service-id 327782 327880 327903 327902 327917
next
end
主要な設定項目は以下の通りです。
GUI 項目 | CLI 項目 | デフォルト値 |
---|---|---|
着信インターフェース | input-device | ー |
送信元アドレス > IP/ネットマスク | src | ー |
送信元アドレス > アドレス | srcaddr | ー |
宛先アドレス > IP/ネットマスク | dst | ー |
宛先アドレス > アドレス | dstaddr | ー |
宛先アドレス > インターネットサービス | internet-service-id internet-service-custom | ー |
プロトコル | protocol | 0 (ANY) |
送信元ポート | start-source-port end-source-port | 0 65535 |
宛先ポート | start-port end-port | 0 65535 |
サービスタイプ | tos | 0x00 |
ビットマスク | tos-mask | 0x00 |
アクション | action | permit |
発信インターフェース | output-device | ー |
ゲートウェイアドレス | gateway | 0.0.0.0 |
コメント | comments | ー |
ステータス | status | enable |
プロトコル (protocol) の主な設定値は以下の通りです。
- TCP: 6
- UDP: 17
- SCTP: 132
- ANY: 0
ポリシールートの適用順序の確認と変更
ポリシールートには適用順序があり、最初に条件に合致したポリシールートによってルートが決定されます。このためポリシールートの適用順序を確認することは重要です。
ポリシールート適用順序の確認
ポリシールートの適用順序は、GUI のポリシールート画面に表示されているポリシールートリストでの表示順に一致します。上から下に向かって順に適用されます。
「項番#」という項目がありますが、この項番は適用順とは関係ありません。
また、新規作成されたポリシールートの適用順は一番最後になります。つまり、ポリシールート一覧の一番下に追加されます。
CLI で適用順序を確認する場合は、show router policy
のコンフィグを確認します。
config router policy
edit 1
set input-device "internal"
set srcaddr "10.1.1.0/24"
set gateway 10.0.11.254
set output-device "wan2"
set internet-service-id 327782 327880 327903 327902 327917
next
edit 3
set input-device "internal"
set srcaddr "10.1.1.0/24"
set protocol 6
set start-port 10
set output-device "wan1"
next
end
ポリシールート適用順序はコンフィグでの表示順に一致します。上のコンフィグ例の場合、edit 1 のポリシールートが先に適用されます。
各ポリシールートの edit の ID 番号 (= GUI での項番#) は適用順序とは関係ありません。
ポリシールート適用順序の変更
ポリシールート画面にて、「項番#」をドラッグするとポリシールートの位置を移動することができます。この方法で対象のポリシールートを任意の位置に移動することで適用順序を変更できます。
CLI でポリシールートの適用順序を変更する場合はconfig router policy
内で以下のコマンドを実行します。
move <edit id a> after <edit id b>
<edit id a>
のポリシールートを<edit id b>
のポリシールートの後ろ(下)に移動する
move <edit id a> before <edit id b>
<edit id a>
のポリシールートを<edit id b>
のポリシールートの前(上)に移動する
例えば、以下のポリシールートが設定されているとします。
config router policy
edit 1
set input-device "internal"
set srcaddr "10.1.1.0/24"
set gateway 10.0.11.254
set output-device "wan2"
set internet-service-id 327782 327880 327903 327902 327917
next
edit 3
set input-device "internal"
set srcaddr "10.1.1.0/24"
set protocol 6
set start-port 10
set output-device "wan1"
next
end
config router policy
の中で以下のコマンドを実行します。
move 3 before 1
結果として以下のコンフィグになります。
config router policy
edit 3
set input-device "internal"
set srcaddr "10.1.1.0/24"
set protocol 6
set start-port 10
set output-device "wan1"
next
edit 1
set input-device "internal"
set srcaddr "10.1.1.0/24"
set gateway 10.0.11.254
set output-device "wan2"
set internet-service-id 327782 327880 327903 327902 327917
next
end
ファイアウォールポリシーの設定
ポリシールートによって wan2 から発信される Microsoft 365 向けの通信を許可するファイアウォールポリシーを設定します。
今回のシナリオでは以下のようなファイアウォールポリシーを設定します。ポイントは着信するインターフェース、発信するインターフェース、送信元、宛先の設定を対象のポリシールートの設定と合わせることです。
その他の設定項目は通常のファイアウォールポリシーと同様に設定します。
ポリシールートの動作確認
ポリシールートに合致する通信を実際に行うと、ポリシールート画面にて対象ポリシールートのヒット数がカウントアップします。これによってそのポリシールートが適用されていることを確認できます。
またトラフィックログを確認すると、対象通信についてはポリシールートで設定した発信インターフェースを通るようルーティングされていることを確認できます。
ポリシールート補足事項
- ポリシールートの設定項目である、着信インターフェース、送信元アドレス、宛先アドレスはオプションです。このため、着信するインターフェースと送信元アドレスのみを設定して宛先は無条件とする、宛先アドレスのみを設定して送信元は無条件にするといった設定もできます
参考資料
【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- HA (冗長構成) 設定
- FortiGate HA モードの Active-Passive と Active-Active の違いを解説します
- FortiGate HA(冗長構成)の概要と設定ガイド【詳しく解説】※note記事
- FortiGate HA 構成時のコンフィグ同期の仕様について解説します
- FortiGate HA 構成時の NTP,Syslog,SNMP 等の送信元インターフェースを解説 [ha-direct 設定]
- FortiGate HA 構成時の仮想 MAC アドレスについて解説します
- FortiGate HA ハートビート送信間隔と障害判定しきい値の設定ガイド
- FortiGate HA 構成時のバックアップ及びリストア実施ガイド
- FortiGate HA 構成でのモニタインターフェースダウン時の通信断時間について解説
- FortiGate HA 構成に関するQ&A 【良くありそうな疑問集】
- VDOM (バーチャルドメイン) 設定
- トランスペアレントモード設定
- システム系設定
- 管理者アカウント設定
- 時刻・NTP 設定
- ロギング・Syslog 送信設定
- SNMP 設定
- DHCP サーバ機能設定
- Proxy サーバ機能設定
- アラートメール送信
- ネットワーク系設定
- インターフェース設定
- ルーティング設定
- DNS 設定
- NAT 及び NAPT 設定
- ファイアウォール系設定
- アドレス設定
- サービス設定
- ファイアウォールポリシー設定
- ゾーンを使用したポリシー設定
- VPN 系設定
- Tips
Amazon アフィリエイトリンク
以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。
note メンバーシップへの参加もお待ちしています!
【アフィリエイト】おすすめ WordPress テーマ【SWELL】
当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。
また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。
技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。
レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。
コメント