本記事について
本記事では、Fortinet 社のファイアウォール製品である FortiGate に関して、別拠点のルータと BGP ネイバーを形成してルートの送受信を行うための設定方法について説明します。
動作確認環境
本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。
- FortiGate-60F
- バージョン 7.4.3
想定シナリオ
この組織には拠点Aと拠点Bがあり、WAN 接続ルータとして拠点Aには FortiGate が、拠点Bには Cisco C891FJ-K9 が設置されていて、これらが L2 接続しています。FortiGate と C891FJ-K9 の間で iBGP ネイバーを形成して LAN へのルートを送受信させることにします。
GUI の表示機能設定
デフォルト設定では GUI に BGP の設定項目が表示されません。「システム > 表示機能設定」画面で「高度なルーティング」を有効にすることで BGP の設定項目が表示されます。
FortiGate BGP 基本設定をする方法
BGP の設定は「ネットワーク > BGP」画面で行います。
以下のような設定画面となっています。
【必須】ローカルASとルーターID
「ローカルAS」は FortiGate 自身の AS 番号、「ルータ―ID」は FortiGate 自身のルータ―IDです。
ローカルAS が対向ルータと一致していると iBGP ネイバーに、一致していないと eBGP ネイバーになります。
【必須】ネイバー
以下のネイバー欄で「新規作成」をクリックするとネイバー設定を追加できます。
ネイバーの追加画面の設定項目を以下に示します。
まず基本設定項目は以下の通りです。
- 設定必須項目
- IP: 対向ルータのアドレスを指定します
- リモートAS: 対向ルータの AS 番号を指定します
- その他項目はオプションです
- パスワード: デフォルトで何か設定されているような表示になっていますが、実際には未設定状態です
- アップデートソース: 対向ルータの BGP ネイバー設定でアドレスとして FortiGate の Loopback アドレスが指定されている場合にはアップデートソースを Loopback インターフェースと設定する必要があります
- eBGPマルチホップの実施: eBGP ネイバーでは TTL が 1 のため、対向ルータとの間にルータを挟む場合はこれを有効化する必要があります
続きの設定項目として以下の通り IPv4 フィルタリング項目等があります。
- ソフト再設定: これを有効化すると、ネイバーを切らずに設定変更を反映させるソフトリセットができるようになるため有効化を推奨します
- Next hop self: iBGP ネイバーの場合はほとんどの場合有効にします
- iBGP ネイバーの場合、ルート広報する際にルートのネクストホップが FortiGate のアドレスに変更されずにルート広報されるため、ネットワーク構成によっては問題が起きます。ルートのネクストホップを FortiGate のアドレスに変更するためには Next hop self を有効にします
- 本記事の想定シナリオの構成では無効でも影響が無いため無効のままにしています
ネイバー設定後はリストにネイバー情報が追加されます。
【オプション】ネイバーグループとネイバー範囲
ネイバーを設定する代わりにネイバーグループとネイバー範囲を設定することでもネイバーを形成することができます。特定セグメント内にネイバーとなる対向ルータが複数存在する場合にこの設定方法を活用できます。この方式の場合、FortiGate は対向ルータからの BGP パケット受信するとそのルータとネイバーを形成します。
- ネイバーグループ: 特定セグメントのネイバーすべてに共通となるネイバー設定
- ネイバー範囲: ネイバーが存在するセグメントと最大ネイバー数の設定。これにネイバーグループを紐づける設定を行う
ネイバーグループの設定項目は以下の通りです。
ネイバー範囲の設定項目は以下の通りです。
【オプション】ネットワーク設定
ネットワーク設定では BGP でルート広報する対象ネットワークを指定します。
以下画像の通り1枠に1ネットワーク入力して設定します。
なおこのネットワーク設定で指定したネットワーク宛のルートを BGP ネイバーに広報するためには FortiGate のルーティングテーブルに当該ルートがインストールされている必要があります。
【オプション】IPv4再配布、ダンピング、グレースフルリスタート
IPv4再配布、ダンピング、グレースフルリスタートの設定項目は以下の通りです。これらは必要な場合のみ有効化して設定します。
【オプション】高度な設定、ベストパスの選択
以下は高度な設定項目のデフォルト値です。
以下はベストパスの選択設定項目のデフォルト値です。
BGP の設定は以上です。
FortiGate BGP コンフィグ例
BGP のコンフィグはconfig router bgp
です。
本記事の想定シナリオ用の設定を行った後の BGP コンフィグは以下のようになります。
config router bgp
set as 64512
set router-id 10.0.0.1
config neighbor
edit "192.168.179.10"
set remote-as 64512
next
end
config network
edit 1
set prefix 10.1.1.0 255.255.255.0
next
edit 2
set prefix 10.10.10.0 255.255.255.0
next
end
config network6
edit 1
set prefix6 ::/128
next
end
config redistribute "connected"
end
config redistribute "rip"
end
config redistribute "ospf"
end
config redistribute "static"
end
config redistribute "isis"
end
config redistribute6 "connected"
end
config redistribute6 "rip"
end
config redistribute6 "ospf"
end
config redistribute6 "static"
end
config redistribute6 "isis"
end
end
FortiGate BGP 状態確認コマンド
get router info bgp neighbors
BGP ネイバーの情報を確認できます。
FortiGate-60F-01 # get router info bgp neighbors
VRF 0 neighbor table:
BGP neighbor is 192.168.179.10, remote AS 64512, local AS 64512, internal link
BGP version 4, remote router ID 10.0.0.2
BGP state = Established, up for 00:25:43
Last read 00:00:21, hold time is 180, keepalive interval is 60 seconds
Configured hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received (old and new)
Address family IPv4 Unicast: advertised and received
Address family VPNv4 Unicast: advertised
Address family IPv6 Unicast: advertised
Address family VPNv6 Unicast: advertised
Address family L2VPN EVPN: advertised
Received 33 messages, 0 notifications, 0 in queue
Sent 32 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
NLRI treated as withdraw: 0
Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
BGP table version 3, neighbor version 3
Index 0, Offset 0, Mask 0x1
Community attribute sent to this neighbor (both)
1 accepted prefixes, 1 prefixes in rib
2 announced prefixes
For address family: VPNv4 Unicast
BGP table version 1, neighbor version 1
Index 0, Offset 0, Mask 0x1
Community attribute sent to this neighbor (both)
0 accepted prefixes, 0 prefixes in rib
0 announced prefixes
For address family: IPv6 Unicast
BGP table version 1, neighbor version 1
Index 0, Offset 0, Mask 0x1
Community attribute sent to this neighbor (both)
0 accepted prefixes, 0 prefixes in rib
0 announced prefixes
For address family: VPNv6 Unicast
BGP table version 1, neighbor version 1
Index 0, Offset 0, Mask 0x1
Community attribute sent to this neighbor (both)
0 accepted prefixes, 0 prefixes in rib
0 announced prefixes
For address family: L2VPN EVPN
BGP table version 1, neighbor version 1
Index 0, Offset 0, Mask 0x1
Community attribute sent to this neighbor (both)
0 accepted prefixes, 0 prefixes in rib
0 announced prefixes
Connections established 1; dropped 0
Local host: 192.168.179.21, Local port: 13657
Foreign host: 192.168.179.10, Foreign port: 179
Egress interface: 5
Nexthop: 192.168.179.21
Nexthop interface: wan1
Nexthop global: ::
Nexthop local: ::
BGP connection: non shared network
get router info bgp summary
BGP ネイバー情報のサマリを確認できます。
FortiGate-60F-01 # get router info bgp summary
VRF 0 BGP router identifier 10.0.0.1, local AS number 64512
BGP table version is 3
1 BGP AS-PATH entries
0 BGP community entries
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.179.10 4 64512 49 49 3 0 0 00:40:20 1
Total number of neighbors 1
上の10行目が対向ルータから学習したルートです。
get router info bgp network
BGP で学習したルートを確認できます。
FortiGate-60F-01 # get router info bgp network
VRF 0 BGP table version is 3, 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
上の10行目が対向ルータから学習したルートです。
get router info routing-table all
ルーティングテーブルを確認して BGP ルートのインストール状況を確認します。
FortiGate-60F-01 # get router info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
V - BGP VPNv4
* - candidate default
Routing table for VRF=0
C 10.1.1.0/24 is directly connected, internal1
C 10.10.10.0/24 is directly connected, dmz
B 172.16.0.0/24 [200/0] via 192.168.179.10 (recursive is directly connected, wan1), 00:33:03, [1/0]
C 192.168.179.0/24 is directly connected, wan1
上の13行目で BGP ルートがインストールされていることを確認できます。
BGP セッションリセットコマンド
BGP の設定変更を行った場合、内容によっては設定変更を反映させるために BGP セッションをリセットする必要があります。リセットにはネイバーダウンを伴うハードリセットと、ネイバーを維持したままのリセットであるソフトリセットがあります。ソフトリセットをするためにはネイバー設定で「ソフト再構成」を有効にしておく必要があります。
- ハードリセット
execute router clear bgp ip all [<in|out>]
- 全てのネイバーを対象にリセット
execute router clear bgp ip <ネイバーIP> [<in|out>]
- 指定したネイバーを対象にリセット
- ソフトリセット
execute router clear bgp ip all soft [<in|out>]
- 全てのネイバーを対象にリセット
execute router clear bgp ip <ネイバーIP> soft [<in|out>]
- 指定したネイバーを対象にリセット
- in: 受信した BGP ルートのみを更新します
- out: 広報する BGP ルートのみを更新します
- in,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 のインストールも簡単にできます。
コメント