本記事について
本記事では、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 ネイバーに適用するという手順で設定します。
アクセスリストの設定
GUI 左側メニューから「ネットワーク > ルーティングオブジェクト」画面を開き、「新規作成 > アクセスリスト」をクリックします。
以下の設定画面が表示されます。名前欄に任意のアクセスリスト名を入力し、ルール欄の「新規作成」をクリックします。
ルール作成画面が表示されるため各項目を設定します。
- 「アクション」を拒否にします
- 「完全一致」を有効にします
- 「タイプ」は Prefix のままにします
- 「プレフィックス」は「Specify」にし、受信を拒否するルートのネットワークを入力します
以上設定したら「OK」をクリックします。
上の拒否ルールのみだとすべてのルートが拒否されてしまうため、その他のルートを許可するルールを追加します。再度ルール欄の「新規作成」をクリックします。
ルール作成画面で以下の通り設定します。
- 「アクション」を許可にします
- 「完全一致」は無効のままにします
- 「タイプ」は Prefix のままにします
- 「プレフィックス」は「Any」にします
以上設定したら「OK」をクリックします。
アクセスリスト設定画面に戻ったら「OK」をクリックします。
アクセスリスト画面にアクセスリストが追加されたことを確認します。
以上でアクセスリストの設定は完了です。
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 ネイバーに適用します。
GUI 左側メニューから「ネットワーク > BGP」画面を開き、ネイバー欄にて設定対象ネイバーをクリックして選択して「編集」をクリックします。
ネイバー設定画面にて「IPv4フィルタリング」欄にある「Distribute list in」を有効化し、表示された設定欄で作成しておいたアクセスリストを選択します。その後「OK」をクリックします。
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 ネイバーに適用するという手順で設定します。
アクセスリストの設定
GUI 左側メニューから「ネットワーク > ルーティングオブジェクト」画面を開き、「新規作成 > アクセスリスト」をクリックします。
以下の設定画面が表示されます。名前欄に任意のアクセスリスト名を入力し、ルール欄の「新規作成」をクリックします。
ルール作成画面が表示されるため各項目を設定します。
- 「アクション」を拒否にします
- 「完全一致」を有効にします
- 「タイプ」は Prefix のままにします
- 「プレフィックス」は「Specify」にし、受信を拒否するルートのネットワークを入力します
以上設定したら「OK」をクリックします。
上の拒否ルールのみだとすべてのルートが拒否されてしまうため、その他のルートを許可するルールを追加します。再度ルール欄の「新規作成」をクリックします。
ルール作成画面で以下の通り設定します。
- 「アクション」を許可にします
- 「完全一致」は無効のままにします
- 「タイプ」は Prefix のままにします
- 「プレフィックス」は「Any」にします
以上設定したら「OK」をクリックします。
アクセスリスト設定画面に戻ったら「OK」をクリックします。
アクセスリスト画面にアクセスリストが追加されたことを確認します。
以上でアクセスリストの設定は完了です。
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 ネイバーに適用します。
GUI 左側メニューから「ネットワーク > BGP」画面を開き、ネイバー欄にて設定対象ネイバーをクリックして選択して「編集」をクリックします。
ネイバー設定画面にて「IPv4フィルタリング」欄にある「Distribute list out」を有効化し、表示された設定欄で作成しておいたアクセスリストを選択します。その後「OK」をクリックします。
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 の設計構築中なら以下の記事も役立つかもです
- 基礎知識
- 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 のインストールも簡単にできます。
コメント