【注意】FortiGate ver.7.4.5 からすべてのモデルでファームウェア自動更新機能がデフォルト有効になりました> Membership

FortiGate ポリシールート設定ガイド [送信元や宛先でルートを変更]

目次

本記事について

本記事では、Fortinet 社のファイアウォール製品である FortiGate にてポリシールートを設定する方法について説明します。

動作確認環境

本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。

  • FortiGate-60F
    • バージョン 7.4.3

ポリシールートとは

ポリシールートとは、宛先への経路が複数存在する構成において、特定の送信元・宛先・サービスの場合に通常とは異なる経路でルーティングをさせるために使用される機能です。

ポリシールートは、ルーティングテーブルを使用したルーティングとは別のルート決定の仕組みです。

ポリシールートが設定されている場合、FortiGate にパケットが着信すると FortiGate は以下の手順でルートを決定します。

  • まずポリシールートのリストを先頭から順に評価し、条件に合致するポリシールートが見つかればそのポリシールートに基づきルートを確定します
  • 条件に合致するポリシールートが存在しなければ、ルーティングテーブルに基づきルートを決定します

上記手順より、ポリシールートは通常のスタティックルートなどよりも優先されることになります。

ポリシールートは「ポリシーベースルート(PBR)」と呼ばれることもあります。

以下でポリシールートの設定方法について説明します。

ポリシールートの適用順序

ポリシールートが複数設定されている場合、それらのポリシールートには適用順序があります。

ポリシールートは順に評価され、一番最初に条件に合致したポリシールートに基づいてルートが決定されるため、ポリシールートの適用順序が適切でない場合に想定と異なるルートになってしまうことが起こり得ます。

よってポリシールートの適用順序に注意してください。適用順序の確認方法と変更方法については後述します。

ポリシールートの設定方法

想定シナリオ

以下図のネットワーク構成を考えます。FortiGate の internal1 インターフェースの先には内部ネットワークがあり、wan1、wan2 の先にはそれぞれ異なるインターネット回線があります。内部ネットワークの端末は外部ネットワーク上の Microsoft 365 を利用しています。FortiGate はデフォルトルートとしてルータA を通る経路を設定していますが、内部ネットワークの端末から Microsoft 365 への通信についてはルータB を通る経路にルーティングさせたいです。これを実現するため、FortiGate にてポリシールートを設定します。

GUI の表示機能設定

デフォルトの設定では GUI 上にポリシールートに関する設定項目が表示されません。ポリシールートの設定項目を表示させるための設定を行います。

GUI の左側メニューから「システム > 表示機能設定」を選択し、表示機能設定画面にて「高度なルーティング」を有効化して「適用」をクリックします。

これでポリシールートの設定項目が表示されます。

ポリシールートの設定手順

STEP
ポリシールート設定画面の表示

GUI 左側のメニューから「ネットワーク > ポリシールート」を選択します。その後表示されたポリシールート画面の「新規作成」をクリックします。

STEP
ポリシールートの設定

以下のようなポリシールート設定画面が表示されるため各項目を設定します。

今回の想定シナリオでは以下のように設定します。

  • 着信インターフェース」では、対象通信を着信するインターフェースを指定します。今回のシナリオでは内部ネットワークからの通信が対象となるため internal を指定しています
  • 送信元アドレス」では、対象通信の送信元アドレスを指定します。手入力またはアドレスオブジェクトから指定が可能です。今回のシナリオでは内部ネットワークのセグメントに該当するアドレスオブジェクトを指定しています
  • 宛先アドレス」では、対象通信の宛先アドレスを指定します。手入力、アドレスオブジェクト、インターネットサービスの3つの指定方法があります。今回のシナリオでは Microsoft 365 宛の通信を対象としたいため、インターネットサービスで Microsoft 365 関連のインターネットサービスをすべて選択しています
  • プロトコル」では、対象通信のプロトコル及びポートを指定できます。今回のシナリオではプロトコル及びポートでの制限はしないこととして「ANY」を選択しています
  • サービスタイプ」「ビットマスク」は、基本的にデフォルトのままで問題ありません
  • アクション」では「転送トラフィック」を選択します
  • 発信インターフェース」では、対象通信をルーティングする際の発信インターフェースを指定します。今回のシナリオでは wan2 から発信したいので wan2 を指定しています
  • ゲートウェイアドレス」では、対象通信をルーティングする際のゲートウェイアドレスを指定します。今回のシナリオでは wan2 先のルータであるルータB のアドレスを指定しています
  • コメント」は任意にコメントを設定できます
  • ステータス」は「有効化済み」のままとします

以上の設定ができたら画面下の「OK」をクリックして確定します。

STEP
設定の確認

ポリシールート画面にてポリシールートが追加されたことを確認します。

STEP
ポリシールートの適用順序の確認と変更

ポリシールートの適用順序が適切になっているかを確認し、必要に応じて順序を変更します。実施方法については後述します。

ポリシールートの 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
プロトコルprotocol0 (ANY)
送信元ポートstart-source-port
end-source-port
0
65535
宛先ポートstart-port
end-port
0
65535
サービスタイプtos0x00
ビットマスクtos-mask0x00
アクションactionpermit
発信インターフェースoutput-device
ゲートウェイアドレスgateway0.0.0.0
コメントcomments
ステータスstatusenable

プロトコル (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 向けの通信を許可するファイアウォールポリシーを設定します。

今回のシナリオでは以下のようなファイアウォールポリシーを設定します。ポイントは着信するインターフェース、発信するインターフェース、送信元、宛先の設定を対象のポリシールートの設定と合わせることです。

その他の設定項目は通常のファイアウォールポリシーと同様に設定します。

ポリシールートの動作確認

ポリシールートに合致する通信を実際に行うと、ポリシールート画面にて対象ポリシールートのヒット数がカウントアップします。これによってそのポリシールートが適用されていることを確認できます。

またトラフィックログを確認すると、対象通信についてはポリシールートで設定した発信インターフェースを通るようルーティングされていることを確認できます。

ポリシールート補足事項

  • ポリシールートの設定項目である、着信インターフェース、送信元アドレス、宛先アドレスはオプションです。このため、着信するインターフェースと送信元アドレスのみを設定して宛先は無条件とする、宛先アドレスのみを設定して送信元は無条件にするといった設定もできます

参考資料

あわせて読みたい
あわせて読みたい
Technical Tip: Configuring the Firewall Policy Routes Description This article describes the process of configuring Policy Routes when it is necessary to route certain type or source of traffic to another interface...

【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです

Amazon アフィリエイトリンク

以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。

note メンバーシップへの参加もお待ちしています!

note(ノート)
陰の構築者たちのメンバーシップ|シェイド@陰の構築者 ネットワーク設計構築をする人に役立つメンバーシップです。 独自ブログ(https://shadowgarden.org/)にてネットワークエンジニア向け情報を発信しており、その活動を応援...

【アフィリエイト】おすすめ WordPress テーマ【SWELL

当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。

また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。

技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。

レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次