本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate にて BGP ルートの以下属性を設定する方法について説明します。
- Local-Preference
- MED
- AS-Path
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.3
FortiGate BGPルートのLocal-Preference設定方法
対象ルートを指定するプレフィックスリストの作成
config router prefix-list
にて Local-Preference 設定対象ルートの宛先に該当するプレフィックスリストを作成します。
config router prefix-list
edit "plist_10.1.1.0"
config rule
edit 1
set action permit
set prefix 10.1.1.0 255.255.255.0
unset ge
unset le
next
end
next
end
Local-Preferenceを設定するルートマップの作成
config router route-map
にて Local-Preference を設定するルートマップを作成します。このとき対象ルートとして上で作成したプレフィックスリストを指定します。
config router route-map
edit "rmap-pref200_10.1.1.0"
config rule
edit 1
set action permit
set match-ip-address "plist_10.1.1.0"
unset set-ip-prefsrc
set set-local-preference 200
next
edit 2
set action permit
unset set-ip-prefsrc
next
end
next
end
なおルートマップは暗黙のdenyの動作になるため、Local-Preference 設定対象外のルートについてはそのまま広報されるよう、上のようにすべてを許可するルールを追加します(edit 2
)。これを追加しないと、Local-Preference を設定しないルートが広報されなくなってしまいます。
BGPネイバー設定にてルートマップを設定
BGPネイバー設定のOUT方向のルートマップ設定にて、上で作成したルートマップを設定します。
config router bgp
config neighbor
edit "192.168.179.10"
set route-map-out "rmap-pref200_10.1.1.0"
next
end
end
以上で Local-Preference の設定は完了です。
BGPセッションのリセット
BGP ルートの属性値の設定変更を反映させるためには BGP セッションをリセットする必要があります。以下コマンドでリセットできます。(ハードリセット)
execute router clear bgp ip <対象ネイバーIP> out
BGP ネイバー設定でソフト再設定を有効化している場合は、ネイバー状態を維持したままのリセットであるソフトリセットをすることができます。
execute router clear bgp ip <対象ネイバーIP> soft out
ネイバールータでのBGPルートの確認
以下はネイバールータでの BGP ルート情報です。
Router#show ip bgp
BGP table version is 16, 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 200 0 i
*>i 10.10.10.0/24 192.168.179.21 100 0 i
*> 172.16.0.0/24 0.0.0.0 0 32768 i
上の11行目にて対象ルートの Local-Preference が 200 に変わっていることを確認できます。
FortiGate BGPルートのMED設定方法
対象ルートを指定するプレフィックスリストの作成
config router prefix-list
にて MED 設定対象ルートの宛先に該当するプレフィックスリストを作成します。
config router prefix-list
edit "plist_10.1.1.0"
config rule
edit 1
set action permit
set prefix 10.1.1.0 255.255.255.0
unset ge
unset le
next
end
next
end
MEDを設定するルートマップの作成
config router route-map
にて MED を設定するルートマップを作成します。このとき対象ルートとして上で作成したプレフィックスリストを指定します。
config router route-map
edit "rmap-med300_10.1.1.0"
config rule
edit 1
set action permit
set match-ip-address "plist_10.1.1.0"
unset set-ip-prefsrc
set set-metric 300
next
edit 2
set action permit
unset set-ip-prefsrc
next
end
next
end
なおルートマップは暗黙のdenyの動作になるため、MED 設定対象外のルートについてはそのまま広報されるよう、上のようにすべてを許可するルールを追加します(edit 2
)。これを追加しないと、MED を設定しないルートが広報されなくなってしまいます。
BGPネイバー設定にてルートマップを設定
BGPネイバー設定のOUT方向のルートマップ設定にて、上で作成したルートマップを設定します。
config router bgp
config neighbor
edit "192.168.179.10"
set route-map-out "rmap-med300_10.1.1.0"
next
end
end
以上で Local-Preference の設定は完了です。
BGPセッションのリセット
BGP ルートの属性値の設定変更を反映させるためには BGP セッションをリセットする必要があります。以下コマンドでリセットできます。(ハードリセット)
execute router clear bgp ip <対象ネイバーIP> out
BGP ネイバー設定でソフト再設定を有効化している場合は、ネイバー状態を維持したままのリセットであるソフトリセットをすることができます。
execute router clear bgp ip <対象ネイバーIP> soft out
ネイバールータでのBGPルートの確認
以下はネイバールータでの BGP ルート情報です。
Router#show ip bgp
BGP table version is 19, 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 300 100 0 i
*>i 10.10.10.0/24 192.168.179.21 100 0 i
*> 172.16.0.0/24 0.0.0.0 0 32768 i
上の11行目にて対象ルートの MED が 300 に変わっていることを確認できます。
FortiGate BGPルートのASパス設定方法
対象ルートを指定するプレフィックスリストの作成
config router prefix-list
にて ASパス設定対象ルートの宛先に該当するプレフィックスリストを作成します。
config router prefix-list
edit "plist_10.1.1.0"
config rule
edit 1
set action permit
set prefix 10.1.1.0 255.255.255.0
unset ge
unset le
next
end
next
end
ASパスを設定するルートマップの作成
config router route-map
にて ASパスを設定するルートマップを作成します。このとき対象ルートとして上で作成したプレフィックスリストを指定します。
config router route-map
edit "rmap-aspath_10.1.1.0"
config rule
edit 1
set action permit
set match-ip-address "plist_10.1.1.0"
set set-aspath "64512" "64513" "64514"
unset set-ip-prefsrc
next
edit 2
set action permit
unset set-ip-prefsrc
next
end
next
end
なおルートマップは暗黙のdenyの動作になるため、ASパス設定対象外のルートについてはそのまま広報されるよう、上のようにすべてを許可するルールを追加します(edit 2
)。これを追加しないと、ASパスを設定しないルートが広報されなくなってしまいます。
BGPネイバー設定にてルートマップを設定
BGPネイバー設定のOUT方向のルートマップ設定にて、上で作成したルートマップを設定します。
config router bgp
config neighbor
edit "192.168.179.10"
set route-map-out "rmap-aspath_10.1.1.0"
next
end
end
以上で Local-Preference の設定は完了です。
BGPセッションのリセット
BGP ルートの属性値の設定変更を反映させるためには BGP セッションをリセットする必要があります。以下コマンドでリセットできます。(ハードリセット)
execute router clear bgp ip <対象ネイバーIP> out
BGP ネイバー設定でソフト再設定を有効化している場合は、ネイバー状態を維持したままのリセットであるソフトリセットをすることができます。
execute router clear bgp ip <対象ネイバーIP> soft out
ネイバールータでのBGPルートの確認
以下はネイバールータでの BGP ルート情報です。
Router#show ip bgp
BGP table version is 22, 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 64512 64513 64514 i
*>i 10.10.10.0/24 192.168.179.21 100 0 i
*> 172.16.0.0/24 0.0.0.0 0 32768 i
上の11行目にて対象ルートの ASパスが追加されていることを確認できます。
【参考】プレフィックスリスト、ルートマップを GUI で設定する場合
プレフィックスリスト、ルートマップは GUI で設定することもできます。
「ネットワーク > ルーティングオブジェクト」画面の「新規作成」からプレフィックスリスト及びルートマップを作成することができます。
プレフィックスリストについては以下のような形でルールを設定します。
ルートマップについては以下のような形でルールを設定します。
ネイバーへのルートマップの適用については以下のように「Route Map Out」にて適用します。
参考資料
【おすすめ】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 のインストールも簡単にできます。
コメント