FortiGate でのインターネットマルチホームについて

はじめに

本記事では、1台の FortiGate に2つのインターネット回線を収容し、これらの回線を同時に利用する方法について紹介します。具体的には、送信元アドレスに基づいて、どの回線を通じてトラフィックを送受信するかを制御するポリシールーティングに焦点を当てます。

ポリシールーティングとは

通常のルーティングとの違い:

  • 通常のルーティング(スタティックルーティングや動的ルーティング)は、主に宛先アドレスに基づいてトラフィックの経路を決定します。
  • 一方、ポリシールーティングは、送信元アドレスやその他の条件(例:プロトコル、宛先ポート番号など)に基づいてトラフィックの経路を特定します。

    ポリシールーティングの利点と注意点:

    利点注意点

    柔軟性:
    特定のユーザーやデバイス、アプリケーションに応じて、最適なインターネット回線や経路を選択できる。

    非対称ルーティングのリスク:
    出力と入力のルーティングパスが一致しない可能性。
    帯域幅の最適化:
    トラフィックの種類により、特定の回線を使用することで帯域幅を効果的に使用できる。
    設定の複雑性:
    ポリシールーティングは通常のルーティングよりも設定が複雑になる可能性。
    コストの最適化:
    トラフィックの種類や量に応じて、コストの低い回線を選択できる。
    トラブルシューティングの困難性:
    複数のルーティングポリシーが存在すると問題の特定が難しい。
    高度な制御:
    送信元、宛先、プロトコルなどの条件に基づいてルーティングが可能。
    パフォーマンスの影響:
    大量のポリシーを適用するとデバイスのパフォーマンスに影響が出る可能性。

    FortiGate でのポリシールーティングの設定方法

    FortiGate でポリシールーティングを設定する方法について解説していきます。

    前提条件

    以下の環境を前提としています。
    Client 192.168.100.100 からの通信は Internet01 へ、192.168.100.200 からの通信は Internet02(VyOS 経由) でのアウトバウンド通信としています。

    ポリシールーティングの設定

    192.168.100.100/24 からの通信は直接 Internet01 へ[1]Internet01 の GW は 10.9.6.1 を想定

    config router policy
    edit 1
    set input-device "port3"
    set src "192.168.100.100/255.255.255.255"
    set gateway 10.9.6.1
    end

    192.168.100.200/24 からの通信は VyOS(100.64.1.254)を経由して、Internet02 へ

    config router policy
    edit 2
    set input-device "port3"
    set src "192.168.100.200/255.255.255.255"
    set gateway 100.64.1.254
    next
    end

    ポリシールーティングの確認方法

    diagnose sys session listコマンドでアクティブなセッションの詳細が表示されます。ここから、特定の送信元や宛先アドレスなどの情報を確認することができます。
    FG01 (root) # diagnose sys session list
    session info: proto=1 proto_state=00 duration=14131 expire=59 timeout=0 flags=00                                                                                                             000000 socktype=0 sockport=0 av_idx=0 use=3
    origin-shaper=
    reply-shaper=
    per_ip_shaper=
    class_id=0 ha_id=0 policy_dir=0 tunnel=/ vlan_cos=0/255
    state=may_dirty
    statistic(bytes/packets/allow_err): org=1184064/14096/1 reply=1184064/14096/1 tu                                                                                                             ples=2
    tx speed(Bps/kbps): 83/0 rx speed(Bps/kbps): 83/0
    orgin->sink: org pre->post, reply pre->post dev=9->3/3->9 gwy=10.9.6.1/0.0.0.0
    hook=post dir=org act=snat 192.168.100.100:3303->1.1.1.1:8(10.9.6.171:63720)
    hook=pre dir=reply act=dnat 1.1.1.1:63720->10.9.6.171:0(192.168.100.100:3303)
    misc=0 policy_id=1 pol_uuid_idx=15748 auth_info=0 chk_client_info=0 vd=0
    serial=000009f1 tos=ff/ff app_list=0 app=0 url_cat=0
    route_policy_id=1
    rpdb_link_id=00000001 ngfwid=n/a
    npu_state=00000000
    no_ofld_reason:  npu-flag-off
    
    session info: proto=1 proto_state=00 duration=14170 expire=59 timeout=0 flags=00                                                                                                             000000 socktype=0 sockport=0 av_idx=0 use=3
    origin-shaper=
    reply-shaper=
    per_ip_shaper=
    class_id=0 ha_id=0 policy_dir=0 tunnel=/ vlan_cos=0/255
    state=may_dirty
    statistic(bytes/packets/allow_err): org=1187172/14133/1 reply=1187172/14133/1 tu                                                                                                             ples=2
    tx speed(Bps/kbps): 83/0 rx speed(Bps/kbps): 83/0
    orgin->sink: org pre->post, reply pre->post dev=9->6/6->9 gwy=100.64.1.254/0.0.0                                                                                                             .0
    hook=post dir=org act=snat 192.168.100.200:4616->1.1.1.1:8(100.64.1.253:65033)
    hook=pre dir=reply act=dnat 1.1.1.1:65033->100.64.1.253:0(192.168.100.200:4616)
    dst_mac=00:0c:29:58:94:42
    misc=0 policy_id=2 pol_uuid_idx=15749 auth_info=0 chk_client_info=0 vd=0
    serial=00000988 tos=ff/ff app_list=0 app=0 url_cat=0
    route_policy_id=2
    rpdb_link_id=00000002 ngfwid=n/a
    npu_state=00000000
    no_ofld_reason:  npu-flag-off

    UTM 機能の併用に関する留意事項と対策

    ポリシールーティングの動的性と UTM の適用範囲:

    • 通常の静的・動的ルーティングと異なり、ポリシールーティングは特定の条件に基づく動的なルート決定を行うことから、トラフィックのフローが変化します。
    • この変化により、どのトラフィックに対して UTM ポリシーを適用するかの判断が難しくなり、UTM 機能の組み合わせが複雑化する可能性があります。

      対処方法:

      • 明確なポリシールーティングの定義

        ポリシールーティングの条件を明確にし、それに基づくトラフィックフローを確認した上で、UTM ポリシーを適用する範囲を決定します。


      • 詳細なドキュメントの作成

        ポリシールーティングの条件、変更履歴や意図、適用範囲などをドキュメント化し、UTM 機能との併用時の運用の透明性を確保します。

      以上

      created by Rinker
      ¥3,080 (2024/10/09 05:36:59時点 楽天市場調べ-詳細)

      脚注

      脚注
      1Internet01 の GW は 10.9.6.1 を想定