【注意】FortiGate RAM 2GB以下の小型モデルで ver.7.4.4からProxy機能廃止、ver.7.6.0からSSL-VPN機能廃止 被害者が散見しています> Membership

FortiGate BGP ルートフィルタ設定ガイド【Distribute list in,out】

目次

本記事について

本記事では、Fortinet 社のファイアウォール製品である FortiGate に関して、BGP にて特定ルートの受信を拒否したり、ルート配信を止めたりするルートフィルタの設定方法について説明します。

動作確認環境

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

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

BGP で受信するルートのフィルタリング設定【Distribute list in】

想定シナリオ

この組織には拠点Aと拠点Bがあり、WAN 接続ルータとして拠点Aには FortiGate が、拠点Bには Cisco C891FJ-K9 が設置されていて、これらが iBGP ネイバーを形成しています。FortiGate にて、拠点B のセグメントの内 172.16.1.0/24 についてはルートを受信しないようにルートフィルタを設定します。

受信ルートフィルタの設定方法

ルートフィルタは、対象ルートを定義するアクセスリストを作成し、それをディストリビュートリストとして BGP ネイバーに適用するという手順で設定します。

アクセスリストの設定

STEP
アクセスリスト設定画面の表示

GUI 左側メニューから「ネットワーク > ルーティングオブジェクト」画面を開き、「新規作成 > アクセスリスト」をクリックします。

STEP
アクセスリストの設定

以下の設定画面が表示されます。名前欄に任意のアクセスリスト名を入力し、ルール欄の「新規作成」をクリックします。

ルール作成画面が表示されるため各項目を設定します。

  • アクション」を拒否にします
  • 完全一致」を有効にします
  • タイプ」は Prefix のままにします
  • プレフィックス」は「Specify」にし、受信を拒否するルートのネットワークを入力します

以上設定したら「OK」をクリックします。

上の拒否ルールのみだとすべてのルートが拒否されてしまうため、その他のルートを許可するルールを追加します。再度ルール欄の「新規作成」をクリックします。

ルール作成画面で以下の通り設定します。

  • アクション」を許可にします
  • 完全一致」は無効のままにします
  • タイプ」は Prefix のままにします
  • プレフィックス」は「Any」にします

以上設定したら「OK」をクリックします。

アクセスリスト設定画面に戻ったら「OK」をクリックします。

STEP
設定確認

アクセスリスト画面にアクセスリストが追加されたことを確認します。

以上でアクセスリストの設定は完了です。

CLI でアクセスリストを設定する場合は、config router access-listで設定します。

config router access-list
    edit "deny_172.16.1.0/24"
        config rule
            edit 1
                set action deny
                set prefix 172.16.1.0 255.255.255.0
                set exact-match enable
            next
            edit 2
                set prefix any
            next
        end
    next
end

BGP ネイバーでのディストリビュートリストの設定

上で作成したアクセスリストをディストリビュートリストとして BGP ネイバーに適用します。

STEP
BGP ネイバー設定画面の表示

GUI 左側メニューから「ネットワーク > BGP」画面を開き、ネイバー欄にて設定対象ネイバーをクリックして選択して「編集」をクリックします。

STEP
ネイバーのディストリビュートリスト設定

ネイバー設定画面にて「IPv4フィルタリング」欄にある「Distribute list in」を有効化し、表示された設定欄で作成しておいたアクセスリストを選択します。その後「OK」をクリックします。

STEP
設定の適用

BGP 設定画面で「適用」をクリックします。

以上でディストリビュートリストの設定は完了です。

CLI でアクセスリストを設定する場合は、config router bgp内の対象ネイバーの設定内で設定します。

config router bgp
    config neighbor
        edit "192.168.179.10"
            set distribute-list-in "deny_172.16.1.0/24"
        next
    end
end

BGP セッションのリセット

ディストリビュートリストの設定を動作に反映させるためには BGP セッションのリセットが必要です。ネイバー設定で「ソフト再設定」が有効になっている場合はソフトリセットで対応可能ですが、そうでない場合はハードリセットが必要になります。受信ルートに関する設定変更なので「in」方向のリセットを行います。

ハードリセットのコマンドは以下です。

execute router clear bgp ip <対象ネイバーIP> in

ソフトリセットのコマンドは以下です。

execute router clear bgp ip <対象ネイバーIP> soft in

リセット後 FortiGate で BGP テーブルを確認すると 172.16.1.0/24 へのルートが学習されていないことを確認できます。

FortiGate-60F-01 # get router info bgp network
VRF 0 BGP table version is 2, local router ID is 10.0.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric     LocPrf Weight RouteTag Path
*> 10.1.1.0/24      0.0.0.0                       100  32768        0 i <-/1>
*> 10.10.10.0/24    0.0.0.0                       100  32768        0 i <-/1>
*>i172.16.0.0/24    192.168.179.10  0             100      0        0 i <-/1>

Total number of prefixes 3

BGP で配信するルートのフィルタリング設定【Distribute list out】

想定シナリオ

この組織には拠点Aと拠点Bがあり、WAN 接続ルータとして拠点Aには FortiGate が、拠点Bには Cisco C891FJ-K9 が設置されていて、これらが iBGP ネイバーを形成しています。FortiGate にて、拠点A のセグメントの内 10.10.10.0/24 についてはルートを配信しないようにルートフィルタを設定します。

配信ルートフィルタの設定方法

ルートフィルタは、対象ルートを定義するアクセスリストを作成し、それをディストリビュートリストとして BGP ネイバーに適用するという手順で設定します。

アクセスリストの設定

STEP
アクセスリスト設定画面の表示

GUI 左側メニューから「ネットワーク > ルーティングオブジェクト」画面を開き、「新規作成 > アクセスリスト」をクリックします。

STEP
アクセスリストの設定

以下の設定画面が表示されます。名前欄に任意のアクセスリスト名を入力し、ルール欄の「新規作成」をクリックします。

ルール作成画面が表示されるため各項目を設定します。

  • アクション」を拒否にします
  • 完全一致」を有効にします
  • タイプ」は Prefix のままにします
  • プレフィックス」は「Specify」にし、受信を拒否するルートのネットワークを入力します

以上設定したら「OK」をクリックします。

上の拒否ルールのみだとすべてのルートが拒否されてしまうため、その他のルートを許可するルールを追加します。再度ルール欄の「新規作成」をクリックします。

ルール作成画面で以下の通り設定します。

  • アクション」を許可にします
  • 完全一致」は無効のままにします
  • タイプ」は Prefix のままにします
  • プレフィックス」は「Any」にします

以上設定したら「OK」をクリックします。

アクセスリスト設定画面に戻ったら「OK」をクリックします。

STEP
設定確認

アクセスリスト画面にアクセスリストが追加されたことを確認します。

以上でアクセスリストの設定は完了です。

CLI でアクセスリストを設定する場合は、config router access-listで設定します。

config router access-list
    edit "deny_10.10.10.0/24"
        config rule
            edit 1
                set action deny
                set prefix 10.10.10.0 255.255.255.0
                set exact-match enable
            next
            edit 2
                set prefix any
            next
        end
    next
end

BGP ネイバーでのディストリビュートリストの設定

上で作成したアクセスリストをディストリビュートリストとして BGP ネイバーに適用します。

STEP
BGP ネイバー設定画面の表示

GUI 左側メニューから「ネットワーク > BGP」画面を開き、ネイバー欄にて設定対象ネイバーをクリックして選択して「編集」をクリックします。

STEP
ネイバーのディストリビュートリスト設定

ネイバー設定画面にて「IPv4フィルタリング」欄にある「Distribute list out」を有効化し、表示された設定欄で作成しておいたアクセスリストを選択します。その後「OK」をクリックします。

STEP
設定の適用

BGP 設定画面で「適用」をクリックします。

以上でディストリビュートリストの設定は完了です。

CLI でアクセスリストを設定する場合は、config router bgp内の対象ネイバーの設定内で設定します。

config router bgp
    config neighbor
        edit "192.168.179.10"
            set distribute-list-out "deny_10.10.10.0/24"
        next
    end
end

BGP セッションのリセット

ディストリビュートリストの設定を動作に反映させるためには BGP セッションのリセットが必要です。ネイバー設定で「ソフト再設定」が有効になっている場合はソフトリセットで対応可能ですが、そうでない場合はハードリセットが必要になります。配信ルートに関する設定変更なので「out」方向のリセットを行います。

ハードリセットのコマンドは以下です。

execute router clear bgp ip <対象ネイバーIP> out

ソフトリセットのコマンドは以下です。

execute router clear bgp ip <対象ネイバーIP> soft out

リセット後対向ルータで BGP テーブルを確認すると 10.10.10.0/24 へのルートが学習されていないことを確認できます。

Router#show ip bgp
BGP table version is 9, local router ID is 10.0.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i  10.1.1.0/24      192.168.179.21                100      0 i
 *>   172.16.0.0/24    0.0.0.0                  0         32768 i
 *>   172.16.1.0/24    0.0.0.0                  0         32768 i

【補足】プレフィックスリストを使用したルートフィルタ

本記事の設定例ではアクセスリストを使用してディストリビュートリストを設定しましたが、別の設定方法としてプレフィックスリストを使用してプレフィックスリストを設定することでも同じようにルートフィルタの動作を実現することができます。

なお、ディストリビュートリストとしてはアクセスリストを設定できますがプレフィックスリストは設定できません。また、プレフィックスリストとしてはプレフィックスリストを設定できますがアクセスリストは設定できません。

参考資料


【おすすめ】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をコピーしました!

コメント

コメントする

目次