Windows 11 Home環境 Virtual BoxでSONiC Community版でBGP Unnumberedをしてみた Part2
今回は、Windows11環境のVirtualBox に入れたSONiC VM 3台をBGP Unnumberedの設定をしていきます。
VirtualBoxにSONiC VMを入れて WindowsPC(ホストOS)からsshできるまでの方法は、前回の記事を参考にしてください。
Windows 11 Home環境 Virtual BoxでSONiC Community版でBGP Unnumberedをしてみた Part1 | ランスルネット (runsurunet.com)
Contents
環境の説明
構成図
spine1台とleaf 2台の構成です。緑色の内部ネットワークは、Virtualboxのネットワーク設定の名前です。
SONiCのバージョン
構成図とSONiCのバージョンは以下の通りです。あえてspineとleafで違うバージョンにしてみました。
sonic-spine01
SONiC Software Version: SONiC.master.632468-d66cb58f4
SONiC OS Version: 12
sonic-leaf01/02
SONiC Software Version: SONiC.202305.636497-151abec44
SONiC OS Version: 11
ホスト名を入力する
最初にホスト名を入力して保存をします。
例) sonic-leaf02というホスト名の場合
sudo config hostname sonic-leaf02
設定を保存します。
sudo config save -y
config_db.jsonを書き換える
config_db.jsonは、SONiCの設定ファイルです。
現在のバージョンでは、config_db.jsonの設定からBGPの設定を書き出して設定するようです。ただ、その設定方法の場合、BGPの設定が私にはわからなかったです。ですので、BGPの設定は、FRRで設定出来るように変更します。FRRとは、簡単にいうとオープンソースのルーティングソフトウェアで、SONiCはFRRを採用しています。
**FRR(Free Range Routing)は、オープンソースのルーティングソフトウェアスイートであり、様々なルーティングプロトコルをサポートしています。これは主にLinuxやUnixベースのシステムで動作し、ネットワークルーターとして機能します。FRRは、スケーラブルで柔軟なルーティングソリューションを提供し、特にデータセンターやクラウド環境で広く使われています。
SONiCの設定の基本
上記のようにBGPなどのルーティング設定をFRRにした場合、設定方法は以下の通りです。
- 1.SONiCの基本的な設定は、シェル。
- ホスト名やIPアドレスなどは、
sudo config **
で設定します。
- ホスト名やIPアドレスなどは、
- 2.ルーティングの設定は、
vtysh
と入力してFRRから行います。- FRR入るとCisco的なコマンドで設定を投入できます。
このような設定方法にするため、以下の手順でconfig_db.jsonの内容を書き換えていきます。
/etc/sonic/config_db.jsonを書き換えてsplit modeにする
SONiCにsshでログインをしてシェルから以下のコマンドを投入して config_db.jsonのバックアップをしてから編集します。
sudo cp /etc/sonic/config_db.json /etc/sonic/config_db.json.bk
sudo vi /etc/sonic/config_db.json
DEVICE_METADATAに1行設定を追加する docker_routing_config_mode
開いたら、/METADATA
と検索をします。見つかったら i
を押して編集モードにします。
以下の1行をDEVICE_METADATAの途中に追加します。
"docker_routing_config_mode": "split",
-参考
"DEVICE_METADATA": {
"localhost": {
"bgp_asn": "65100",
"buffer_model": "traditional",
"default_bgp_status": "up",
"default_pfcwd_status": "disable",
"docker_routing_config_mode": "split",←追加
"hostname": "sonic-leaf01",
"hwsku": "Force10-S6000",
"mac": "08:00:27:ac:bf:89",
"platform": "x86_64-kvm_x86_64-r0",
"timezone": "UTC",
"type": "LeafRouter"
}
},
追加が終わったら、:w
と入力して保存します。
これを3台分繰り返し設定をします。
DEVICE_METADATAのbgp_asnを削除する
DEVICE_METADATEのbgp_asnを削除します。i
で編集モードになって削除します。
"DEVICE_METADATA": {
"localhost": {
"bgp_asn": "65100",
"buffer_model": "traditional",
"default_bgp_status": "up",
"default_pfcwd_status": "disable",
"docker_routing_config_mode": "split"
"hostname": "sonic-leaf01",
"hwsku": "Force10-S6000",
"mac": "08:00:27:ac:bf:89",
"platform": "x86_64-kvm_x86_64-r0",
"timezone": "UTC",
"type": "LeafRouter"
}
},
削除が終わったら、:w
と入力して保存します。
同じくこれも3台分繰り返し設定をします。
BGP_NEIGHBORの前に//を入れる
開いたら、BGP_NEI
と検索をします。見つかったら i
を押して編集モードにします。
BGP_NEIGHBORの前に //
を入れます。
"//BGP_NEIGHBOR": {
"10.0.0.1": {
"rrclient": 0,
"name": "ARISTA01T2",
"local_addr": "10.0.0.0",
"nhopself": 0,
"holdtime": "180",
"asn": "65200",
"keepalive": "60"
//
を入れ終わったら、:wq
と入力して保存&終了します。
同じくこれも3台分繰り返し設定をします。
設定ファイルをリロードする
コンフィグをリロードします。
sudo config reload -y
不要な設定を消す
デフォルトで入っているIPv4アドレスをすべて消す
SONiCのバージョンにもよると思うのですが、私が入れた2つのバージョンは、最初からIPv4アドレスがはいっていました。今回BGP Unnumberedでは不要なのですべて削除します。
■確認コマンド
show ip interface
■削除コマンド
sudo config interface ip remove Ethernet0 10.0.0.0/31
sudo config interface ip remove Ethernet4 10.0.0.2/31
sudo config interface ip remove Ethernet8 10.0.0.4/31
sudo config interface ip remove Ethernet12 10.0.0.6/31
sudo config interface ip remove Ethernet16 10.0.0.8/31
sudo config interface ip remove Ethernet20 10.0.0.10/31
sudo config interface ip remove Ethernet24 10.0.0.12/31
sudo config interface ip remove Ethernet28 10.0.0.14/31
sudo config interface ip remove Ethernet32 10.0.0.16/31
sudo config interface ip remove Ethernet36 10.0.0.18/31
sudo config interface ip remove Ethernet40 10.0.0.20/31
sudo config interface ip remove Ethernet44 10.0.0.22/31
sudo config interface ip remove Ethernet48 10.0.0.24/31
sudo config interface ip remove Ethernet52 10.0.0.26/31
sudo config interface ip remove Ethernet56 10.0.0.28/31
sudo config interface ip remove Ethernet60 10.0.0.30/31
sudo config interface ip remove Ethernet64 10.0.0.32/31
sudo config interface ip remove Ethernet68 10.0.0.34/31
sudo config interface ip remove Ethernet72 10.0.0.36/31
sudo config interface ip remove Ethernet76 10.0.0.38/31
sudo config interface ip remove Ethernet80 10.0.0.40/31
sudo config interface ip remove Ethernet84 10.0.0.42/31
sudo config interface ip remove Ethernet88 10.0.0.44/31
sudo config interface ip remove Ethernet92 10.0.0.46/31
sudo config interface ip remove Ethernet96 10.0.0.48/31
sudo config interface ip remove Ethernet100 10.0.0.50/31
sudo config interface ip remove Ethernet104 10.0.0.52/31
sudo config interface ip remove Ethernet108 10.0.0.54/31
sudo config interface ip remove Ethernet112 10.0.0.56/31
sudo config interface ip remove Ethernet116 10.0.0.58/31
sudo config interface ip remove Ethernet120 10.0.0.60/31
sudo config interface ip remove Ethernet124 10.0.0.62/31
デフォルトで入っているBGPの設定を消す
まず最初にFRRに入ってからBGPの設定を丸ごと消します。
SONiCシェルから以下のコマンドでFRRに入ります。
vtysh
※プロンプトが sonic# に変わる
BGPの設定が入っていることを確認します。
show run
確認したらBGPの設定を消します。
conf t
no route bgp
end
ここはバージョンにもよるかもしれませんが、最初からprefix-listやroute-mapの設定が入っているのでこれも消します。私の入れたSONiCのバージョンでは以下の設定が不要でした。環境に応じてno ** と変更すれば設定を消すことが出来ます。
conf t
no ip prefix-list PL_LoopbackV4 seq 5 permit 10.1.0.1/32
!
no bgp community-list standard allow_list_default_community seq 5 permit no-export
no bgp community-list standard allow_list_default_community seq 10 permit 5060:12345
!
no route-map RM_SET_SRC permit 10
!
no route-map ALLOW_LIST_DEPLOYMENT_ID_0_V4 permit 65535
no route-map ALLOW_LIST_DEPLOYMENT_ID_0_V6 permit 65535!
no route-map FROM_BGP_PEER_V4 permit 10
no route-map FROM_BGP_PEER_V4 permit 11
no route-map FROM_BGP_PEER_V4 permit 100
no route-map FROM_BGP_PEER_V6 permit 1
no route-map FROM_BGP_PEER_V6 permit 10
no route-map FROM_BGP_PEER_V6 permit 11
no route-map FROM_BGP_PEER_V6 permit 100
no route-map TO_BGP_PEER_V4 permit 100
no route-map TO_BGP_PEER_V6 permit 100
no route-map CHECK_IDF_ISOLATION permit 10
no ip nht resolve-via-default
no ipv6 nht resolve-via-default
no ip protocol bgp route-map RM_SET_SRC
end
設定が消えたことを確認します。残っていたらno
で消します。
show run
最後にFRRの設定保存をします。
write memory
設定を投入する
以下の通り、spine1台、leaf2台の構成です。BGP Unnumberedの設定の他にもhostname
やLoopback1
の設定もしていきます。最終的にBGPでLoopback1を広報するように設定します。
sonic-spine01の設定
hostnameとLoopback0の設定 (sonic-spine01)
admin@sonic:~$
のシェルからコマンドを投入していきます。
sudo config hostname sonic-spine01
sudo config interface ip add Loopback0 10.0.1.1/32
確認
show ip interface
ホスト名は、一度sshからexit
をして再度ログインするとプロンプトが変わっています。
保存
sudo config save -y
BGPの設定 (sonic-spine01)
admin@sonic:~$
のシェルからvtysh
コマンドでFRRに入ります。
vtysh
設定を投入します。最初にprefix-listとroute-mapを投入します。
conf t
ip prefix-list Private_IP_Addresses seq 5 permit 10.0.0.0/8 le 32
ip prefix-list Private_IP_Addresses seq 10 permit 172.16.0.0/12 le 32
ip prefix-list Private_IP_Addresses seq 15 permit 192.168.0.0/16 le 32
ip prefix-list Loopback_LIST seq 5 permit 10.0.1.1/32
ip prefix-list Loopback_LIST seq 10 permit 10.0.2.1/32
ip prefix-list Loopback_LIST seq 15 permit 10.0.2.2/32
!
route-map Redistribute_Loopback permit 10
match interface Loopback0
exit
end
BGPを設定します。
conf t
router bgp 65101
bgp router-id 10.0.1.1
bgp log-neighbor-changes
bgp bestpath as-path multipath-relax
neighbor LEAF peer-group
neighbor LEAF remote-as external
neighbor LEAF advertisement-interval 0
neighbor LEAF timers 1 3
neighbor LEAF timers connect 5
neighbor LEAF capability extended-nexthop
neighbor Ethernet0 interface peer-group LEAF
neighbor Ethernet4 interface peer-group LEAF
!
address-family ipv4 unicast
redistribute connected route-map Redistribute_Loopback
neighbor LEAF soft-reconfiguration inbound
neighbor LEAF prefix-list Loopback_LIST in
neighbor LEAF prefix-list Private_IP_Addresses out
exit-address-family
exit
end
設定を確認します。
show run
保存します。
write memory
sonic-leaf01の設定
hostnameとLoopback0の設定(sonic-leaf01)
admin@sonic:~$
のシェルからコマンドを投入していきます。
sudo config hostname sonic-leaf01
sudo config interface ip add Loopback0 10.0.2.1/32
確認
show ip interface
ホスト名は、一度sshからexit
をして再度ログインするとプロンプトが変わっています。
保存
sudo config save -y
BGPの設定 (sonic-leaf01)
admin@sonic:~$
のシェルからvtysh
コマンドでFRRに入ります。
vtysh
設定を投入します。最初にprefix-listとroute-mapを投入します。
conf t
ip prefix-list Loopback0 seq 5 permit 10.0.2.1/32
ip prefix-list Loopback_LIST seq 5 permit 10.0.1.1/32
ip prefix-list Loopback_LIST seq 10 permit 10.0.2.1/32
ip prefix-list Loopback_LIST seq 15 permit 10.0.2.2/32
!
route-map Redistribute_Loopback permit 10
match interface Loopback0
exit
end
BGPを設定します。
conf t
router bgp 65201
bgp router-id 10.0.2.1
bgp log-neighbor-changes
bgp bestpath as-path multipath-relax
neighbor SPINE peer-group
neighbor SPINE remote-as external
neighbor SPINE advertisement-interval 0
neighbor SPINE timers 1 3
neighbor SPINE timers connect 5
neighbor SPINE capability extended-nexthop
neighbor Ethernet0 interface peer-group SPINE
neighbor Ethernet4 interface peer-group SPINE
!
address-family ipv4 unicast
redistribute connected route-map Redistribute_Loopback
neighbor SPINE soft-reconfiguration inbound
neighbor SPINE prefix-list Loopback_LIST in
neighbor SPINE prefix-list Loopback0 out
exit-address-family
exit
設定を確認します。
show run
保存します。
write memory
sonic-leaf02の設定
hostnameとLoopback0の設定(sonic-leaf02)
admin@sonic:~$
のシェルからコマンドを投入していきます。
sudo config hostname sonic-leaf02
sudo config interface ip add Loopback0 10.0.2.2/32
確認
show ip interface
ホスト名は、一度sshからexit
をして再度ログインするとプロンプトが変わっています。
保存
sudo config save -y
BGPの設定 (sonic-leaf02)
admin@sonic:~$
のシェルからvtysh
コマンドでFRRに入ります。
vtysh
設定を投入します。最初にprefix-listとroute-mapを投入します。
conf t
ip prefix-list Loopback0 seq 5 permit 10.0.2.2/32
ip prefix-list Loopback_LIST seq 5 permit 10.0.1.1/32
ip prefix-list Loopback_LIST seq 10 permit 10.0.2.1/32
ip prefix-list Loopback_LIST seq 15 permit 10.0.2.2/32
!
route-map Redistribute_Loopback permit 10
match interface Loopback0
exit
end
BGPを設定します。
conf t
router bgp 65202
bgp router-id 10.0.2.2
bgp log-neighbor-changes
bgp bestpath as-path multipath-relax
neighbor SPINE peer-group
neighbor SPINE remote-as external
neighbor SPINE advertisement-interval 0
neighbor SPINE timers 1 3
neighbor SPINE timers connect 5
neighbor SPINE capability extended-nexthop
neighbor Ethernet0 interface peer-group SPINE
neighbor Ethernet4 interface peer-group SPINE
!
address-family ipv4 unicast
redistribute connected route-map Redistribute_Loopback
neighbor SPINE soft-reconfiguration inbound
neighbor SPINE prefix-list Loopback_LIST in
neighbor SPINE prefix-list Loopback0 out
exit-address-family
exit
設定を確認します。
show run
保存します。
write memory
BGP 設定内容の解説
spineの場合
特徴は、BGP Unnumbered なのでBGP peerの設定は、interfaceの名前を定義するだけです。対向のAS番号やIPv4アドレスの定義は不要です。
以下は、BGP設定の詳細を解説した表です。(by ChatGTP)
コマンド | 解説 |
---|---|
router bgp 65101 | AS番号65101でBGPを有効化。 |
bgp router-id 10.0.1.1 | BGPルーターIDとして 10.0.1.1 を設定。BGPピアとの識別用。 |
bgp log-neighbor-changes | 隣接ルーターとの接続状態の変更をログに記録する。 |
bgp bestpath as-path multipath-relax | BGPの複数パス選択をASパスの制約を緩和して許可する。 |
neighbor LEAF peer-group | “LEAF” というピアグループを作成。共通設定を適用するために使用。 |
neighbor LEAF remote-as external | LEAFピアグループは外部BGP(eBGP)を示し、異なるASとの接続。 |
neighbor LEAF advertisement-interval 0 | ルート広報間隔を0秒に設定し、即時にルート広報を行う。 |
neighbor LEAF timers 1 3 | Keepaliveタイマーを1秒、Holdタイマーを3秒に設定。接続確認の間隔を短く設定。 |
neighbor LEAF timers connect 5 | 接続再試行間隔を5秒に設定。 |
neighbor LEAF capability extended-nexthop | 拡張ネクストホップ機能を有効化し、異なるアドレスファミリーをサポート。 |
neighbor Ethernet0 interface peer-group LEAF | インターフェースEthernet0にLEAFピアグループを適用。 |
neighbor Ethernet4 interface peer-group LEAF | インターフェースEthernet4にもLEAFピアグループを適用。 |
address-family ipv4 unicast | IPv4ユニキャストアドレスファミリーの設定を開始。 |
redistribute connected route-map Redistribute_Loopback | 接続されたルートをBGP経由で再配布し、Redistribute_Loopback ルートマップを適用。 |
neighbor LEAF soft-reconfiguration inbound | 隣接ルーターから受信したルート情報のソフト再構成を有効化。ルーター再起動なしでポリシー変更を適用可能。 |
neighbor LEAF prefix-list Loopback_LIST in | 隣接ルーターから受信するルートに対して、Loopback_LIST プレフィックスリストを適用。 |
neighbor LEAF prefix-list Private_IP_Addresses out | 隣接ルーターに送信する際に、プライベートIPアドレス範囲のルートを制限する Private_IP_Addresses プレフィックスリストを適用。 |
ip prefix-list Loopback_LIST seq 5 permit 10.0.1.1/32 | ループバックアドレス 10.0.1.1/32 を許可する受信用プレフィックスリスト。 |
ip prefix-list Loopback_LIST seq 10 permit 10.0.2.1/32 | ループバックアドレス 10.0.2.1/32 を許可する受信用プレフィックスリスト。 |
ip prefix-list Loopback_LIST seq 15 permit 10.0.2.2/32 | ループバックアドレス 10.0.2.2/32 を許可する受信用プレフィックスリスト。 |
ip prefix-list Private_IP_Addresses seq 5 permit 10.0.0.0/8 le 32 | プライベートIP範囲 10.0.0.0/8 のアドレスを許可。 |
ip prefix-list Private_IP_Addresses seq 10 permit 172.16.0.0/12 le 32 | プライベートIP範囲 172.16.0.0/12 のアドレスを許可。 |
ip prefix-list Private_IP_Addresses seq 15 permit 192.168.0.0/16 le 32 | プライベートIP範囲 192.168.0.0/16 のアドレスを許可。 |
route-map Redistribute_Loopback permit 10 | ループバックインターフェース Loopback0 をルート再配布の対象とするルートマップ。 |
match interface Loopback0 | Loopback0 インターフェースに一致するルートをルートマップで指定。 |
route-map RM_SET_SRC permit 10 | ルートマップ RM_SET_SRC を定義し、ソースIPアドレスを設定。 |
set src 10.0.1.1 | ルート送信時にソースアドレスを 10.0.1.1 に設定。 |
ip protocol bgp route-map RM_SET_SRC | BGPプロトコルで、ルート送信時に RM_SET_SRC ルートマップを適用。 |
解説
この設定は、BGP(AS 65101)の基本的な構成に加えて、特定のループバックインターフェースを経由するルートの再配布と、特定のプレフィックス(プライベートIPアドレス)に対して送受信時のフィルタリングを行います。また、送信ルートに対してソースIPアドレスを設定するルートマップも導入されています。
leafの場合
spineとの大きな違いは、prefix-listです。spineは、10.0.0.0/8などのプライベートIPアドレスを広報するのに対して、leafは自分のloopback だけ広報するように設定しています。
以下は、指定されたBGP設定の詳細を解説した表です。(by ChatGTP)
コマンド | 解説 |
---|---|
router bgp 65201 | AS番号65201でBGPを有効化。 |
bgp router-id 10.0.2.1 | BGPのルーターIDを 10.0.2.1 に設定。ピアとの識別に使用。 |
bgp log-neighbor-changes | 隣接ルーターの接続状態変更をログに記録。 |
bgp bestpath as-path multipath-relax | ASパスの制限を緩和し、複数経路を許可する設定。 |
neighbor SPINE peer-group | “SPINE” というピアグループを作成。共通設定を複数隣接ルーターに適用するために使用。 |
neighbor SPINE remote-as external | SPINEピアグループは外部BGP(eBGP)で、異なるAS(外部ネットワーク)と接続。 |
neighbor SPINE advertisement-interval 0 | ルート広報の間隔を0秒に設定し、即時広報を行う。 |
neighbor SPINE timers 1 3 | Keepaliveタイマーを1秒、Holdタイマーを3秒に設定。短い間隔で接続の確認を行う。 |
neighbor SPINE timers connect 5 | 接続再試行のタイマーを5秒に設定。 |
neighbor SPINE capability extended-nexthop | 拡張ネクストホップ機能を有効にし、異なるアドレスファミリーでのネクストホップ情報をサポート。 |
neighbor Ethernet0 interface peer-group SPINE | Ethernet0インターフェースにSPINEピアグループを適用。 |
address-family ipv4 unicast | IPv4ユニキャストのアドレスファミリーの設定を開始。 |
redistribute connected route-map Redistribute_Loopback | 接続されたルートをBGP経由で再配布し、Redistribute_Loopback ルートマップを適用。 |
neighbor SPINE soft-reconfiguration inbound | 隣接ルーターから受信したルート情報を、ソフト再構成によって再適用できる設定。ルーターの再起動なしでフィルタやポリシー変更が可能。 |
neighbor SPINE prefix-list Loopback_LIST in | 隣接ルーターからのルート受信時に、 Loopback_LIST プレフィックスリストを適用。 |
neighbor SPINE prefix-list Loopback0 out | 隣接ルーターにルートを送信する際に、Loopback0 プレフィックスリストを適用。 |
exit-address-family | IPv4ユニキャストアドレスファミリーの設定を終了。 |
ip prefix-list Loopback0 seq 5 permit 10.0.2.1/32 | ループバックアドレス 10.0.2.1/32 を許可する送信用プレフィックスリスト。 |
ip prefix-list Loopback_LIST seq 5 permit 10.0.1.1/32 | ループバックアドレス 10.0.1.1/32 を許可する受信用プレフィックスリスト。 |
ip prefix-list Loopback_LIST seq 10 permit 10.0.2.1/32 | ループバックアドレス 10.0.2.1/32 を許可する受信用プレフィックスリスト。 |
ip prefix-list Loopback_LIST seq 15 permit 10.0.2.2/32 | ループバックアドレス 10.0.2.2/32 を許可する受信用プレフィックスリスト。 |
route-map Redistribute_Loopback permit 10 | Loopback0 インターフェースにマッチするルートを再配布するルートマップ。 |
match interface Loopback0 | ループバックインターフェース Loopback0 を再配布の対象として指定。 |
解説
この設定は、AS 65201のBGPルーターでの構成です。ループバックアドレスを含むルートをBGP経由で再配布し、特定のプレフィックスリストを用いてルートの受信と送信を制御しています。再配布するルートには、特定のループバックインターフェース Loopback0
を使用し、柔軟なルートフィルタリングを行うために、プレフィックスリストが適用されています。また、BGPピアとの接続タイマーや広報間隔も調整されています。
状態を確認する。
sonic-spine01
lldpの状況 (sonic-spine01)
show lldp table
で確認できます。Ethernet0/4にそれぞれleaf01/leaf02がいます。
admin@sonic-spine01:~$ show lldp table
Capability codes: (R) Router, (B) Bridge, (O) Other
LocalPort RemoteDevice RemotePortID Capability RemotePortDescr
----------- -------------- ----------------- ------------ -----------------
Ethernet0 sonic-leaf01 08:00:27:ac:bf:89 BR Ethernet0
Ethernet4 sonic-leaf02 08:00:27:17:7e:7f BR Ethernet0
eth0 sonic-leaf01 eth0 BR eth0
--------------------------------------------------
BGPの状況 (sonic-spine01)
admin@sonic:~$
のシェルからvtysh
コマンドでFRRに入ります。
vtysh
■BGPの接続状態
show ip bgp summary
コマンドで確認できます。
sonic-spine01# show ip bgp summary
IPv4 Unicast Summary (VRF default):
BGP router identifier 10.0.1.1, local AS number 65101 vrf-id 0
BGP table version 3
RIB entries 5, using 1120 bytes of memory
Peers 2, using 1449 KiB of memory
Peer groups 1, using 64 bytes of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
Ethernet0 4 65201 70 75 0 0 0 00:01:08 1 3 N/A
Ethernet4 4 65202 19 24 0 0 0 00:00:17 1 3 N/A
※BGPが接続できていない時は、State/pfxRcdがActive
だったり connect
になっています。
■BGP広報経路の確認
show ip bgp neighbor Ethernet0 advertised-routes
show ip bgp neighbor Ethernet4 advertised-routes
コマンドで確認できます。
sonic-spine01# show ip bgp neighbors Ethernet0 advertised-routes
BGP table version is 3, local router ID is 10.0.1.1, vrf id 0
Default local pref 100, local AS 65101
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32 :: 0 32768 ?
*> 10.0.2.1/32 :: 0 65201 ?
*> 10.0.2.2/32 :: 0 65202 ?
Total number of prefixes 3
sonic-spine01# show ip bgp neighbors Ethernet4 advertised-routes
BGP table version is 3, local router ID is 10.0.1.1, vrf id 0
Default local pref 100, local AS 65101
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32 :: 0 32768 ?
*> 10.0.2.1/32 :: 0 65201 ?
*> 10.0.2.2/32 :: 0 65202 ?
Total number of prefixes 3
spine01とleaf01/leaf02のloopbackアドレスが表示されていれば、正常にBGP広報が出来ています。以下の部分です。
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32 :: 0 32768 ?
*> 10.0.2.1/32 :: 0 65201 ?
*> 10.0.2.2/32 :: 0 65202 ?
■BGP広報経路の確認
show ip bgp neighbor Ethernet0 routes
show ip bgp neighbor Ethernet4 routes
コマンドで確認できます。
sonic-spine01# show ip bgp neighbors Ethernet0 routes
BGP table version is 5, local router ID is 10.0.1.1, vrf id 0
Default local pref 100, local AS 65101
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.1/32 Ethernet0 0 0 65201 ?
Displayed 1 routes and 3 total paths
sonic-spine01# show ip bgp neighbors Ethernet4 routes
BGP table version is 5, local router ID is 10.0.1.1, vrf id 0
Default local pref 100, local AS 65101
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.2/32 Ethernet4 0 0 65202 ?
Displayed 1 routes and 3 total paths
leaf01(10.0.2.1/32)とleaf02(10.0.2.2/32)のloopbackのIPが受信できていれば、正常です。
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.1/32 Ethernet0 0 0 65201 ?
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.2/32 Ethernet4 0 0 65202 ?
■ルーティングテーブル
sonic-spine01# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
C>* 10.0.1.1/32 is directly connected, Loopback0, 04:16:44
B>* 10.0.2.1/32 [20/0] via fe80::a00:27ff:feac:bf89, Ethernet0, weight 1, 00:43:39
B>* 10.0.2.2/32 [20/0] via fe80::a00:27ff:fe17:7e7f, Ethernet4, weight 1, 00:04:50
C>* 192.168.56.0/24 is directly connected, eth0, 04:16:44
leaf01/leaf02のloopbackアドレスがBGPで学習出来ていれば、正常にBGP広報が出来ています。以下の部分です。B>*
sonic-leaf01
lldpの状況 (sonic-leaf01)
show lldp table
で確認できます。Ethernet0にsonic-spine01がいます。
admin@sonic-leaf01:~$ show lldp table
Capability codes: (R) Router, (B) Bridge, (O) Other
LocalPort RemoteDevice RemotePortID Capability RemotePortDescr
----------- -------------- -------------- ------------ -----------------
Ethernet0 sonic-spine01 fortyGigE0/0 BR Ethernet0
eth0 sonic-spine01 eth0 BR eth0
--------------------------------------------------
BGPの状況 (sonic-leaf01)
admin@sonic:~$
のシェルからvtysh
コマンドでFRRに入ります。
vtysh
■BGPの接続状態
show ip bgp summary
コマンドで確認できます。
sonic-leaf01# show ip bgp summary
IPv4 Unicast Summary (VRF default):
BGP router identifier 10.0.2.1, local AS number 65201 vrf-id 0
BGP table version 3
RIB entries 5, using 960 bytes of memory
Peers 1, using 725 KiB of memory
Peer groups 1, using 64 bytes of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
Ethernet0 4 65101 606 601 0 0 0 00:10:02 2 1 N/A
※BGPが接続できていない時は、State/pfxRcdがActive
だったり connect
になっています。
■BGP広報経路の確認
show ip bgp neighbor Ethernet0 advertised-routes
コマンドで確認できます。
sonic-leaf01# show ip bgp neighbors Ethernet0 advertised-routes
BGP table version is 3, local router ID is 10.0.2.1, vrf id 0
Default local pref 100, local AS 65201
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.1/32 :: 0 32768 ?
Total number of prefixes 1
leaf01のloopbackアドレスのみが表示されていれば、正常にBGP広報が出来ています。以下の部分です。
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.1/32 :: 0 32768 ?
■BGP広報経路の確認
show ip bgp neighbor Ethernet0 routes
show ip bgp neighbor Ethernet4 routes
コマンドで確認できます。
sonic-leaf01# show ip bgp neighbors Ethernet0 routes
BGP table version is 3, local router ID is 10.0.2.1, vrf id 0
Default local pref 100, local AS 65201
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32 Ethernet0 0 0 65101 ?
*> 10.0.2.2/32 Ethernet0 0 65101 65202 ?
Displayed 2 routes and 3 total paths
spine01(10.0.1.1/32)とleaf02(10.0.2.2/32)のloopbackのIPが受信できていれば、正常です。
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32 Ethernet0 0 0 65101 ?
*> 10.0.2.2/32 Ethernet0 0 65101 65202 ?
■ルーティングテーブル
sonic-leaf01# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
B>* 10.0.1.1/32 [20/0] via fe80::2099:c1ff:fefc:7b30, Ethernet0, weight 1, 00:13:18
C>* 10.0.2.1/32 is directly connected, Loopback0, 00:14:25
B>* 10.0.2.2/32 [20/0] via fe80::2099:c1ff:fefc:7b30, Ethernet0, weight 1, 00:12:27
C>* 192.168.56.0/24 is directly connected, eth0, 00:14:25
spine01/leaf02のloopbackアドレスがBGPで学習出来ていれば、正常にBGP広報が出来ています。以下の部分です。B>*
sonic-leaf02
lldpの状況 (sonic-leaf02)
show lldp table
で確認できます。Ethernet0にsonic-spine01がいます。
admin@sonic-leaf02:~$ show lldp table
Capability codes: (R) Router, (B) Bridge, (O) Other
LocalPort RemoteDevice RemotePortID Capability RemotePortDescr
----------- -------------- -------------- ------------ -----------------
Ethernet0 sonic-spine01 fortyGigE0/4 BR Ethernet4
eth0 sonic-spine01 eth0 BR eth0
--------------------------------------------------
Total entries displayed: 2
BGPの状況 (sonic-leaf02)
admin@sonic:~$
のシェルからvtysh
コマンドでFRRに入ります。
vtysh
■BGPの接続状態
show ip bgp summary
コマンドで確認できます。
sonic-leaf02# show ip bgp summary
IPv4 Unicast Summary (VRF default):
BGP router identifier 10.0.2.2, local AS number 65202 vrf-id 0
BGP table version 3
RIB entries 5, using 960 bytes of memory
Peers 1, using 725 KiB of memory
Peer groups 1, using 64 bytes of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
Ethernet0 4 65101 1022 1015 0 0 0 00:16:58 2 1 N/A
※BGPが接続できていない時は、State/pfxRcdがActive
だったり connect
になっています。
■BGP広報経路の確認
show ip bgp neighbor Ethernet0 advertised-routes
コマンドで確認できます。
sonic-leaf02# show ip bgp neighbors Ethernet0 advertised-routes
BGP table version is 3, local router ID is 10.0.2.2, vrf id 0
Default local pref 100, local AS 65202
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.2/32 :: 0 32768 ?
leaf02のloopbackアドレスのみが表示されていれば、正常にBGP広報が出来ています。以下の部分です。
Network Next Hop Metric LocPrf Weight Path
*> 10.0.2.1/32 :: 0 32768 ?
■BGP広報経路の確認
show ip bgp neighbor Ethernet0 routes
show ip bgp neighbor Ethernet4 routes
コマンドで確認できます。
sonic-leaf02# show ip bgp neighbors Ethernet0 routes
BGP table version is 3, local router ID is 10.0.2.2, vrf id 0
Default local pref 100, local AS 65202
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32 Ethernet0 0 0 65101 ?
*> 10.0.2.1/32 Ethernet0 0 65101 65201 ?
Displayed 2 routes and 3 total paths
spine01(10.0.1.1/32)とleaf01(10.0.2.1/32)のloopbackのIPが受信できていれば、正常です。
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.1/32 Ethernet0 0 0 65101 ?
*> 10.0.2.1/32 Ethernet0 0 65101 65201 ?
■ルーティングテーブル
sonic-leaf02# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
B>* 10.0.1.1/32 [20/0] via fe80::2099:c1ff:fefc:7b30, Ethernet0, weight 1, 00:19:11
B>* 10.0.2.1/32 [20/0] via fe80::2099:c1ff:fefc:7b30, Ethernet0, weight 1, 00:19:11
C>* 10.0.2.2/32 is directly connected, Loopback0, 00:21:07
C>* 192.168.56.0/24 is directly connected, eth0, 00:21:07
spine01/leaf01のloopbackアドレスがBGPで学習出来ていれば、正常にBGP広報が出来ています。以下の部分です。B>*
次回
次回はサーバのFRRでSONiCとBGP Unnumberedで接続するか、もしくは自動化 ansibleの設定も紹介できればと思っています。
参考ページ
大変参考になりました。ありがとうございました。
[Enterprise SONiC] FRRouting and config initialization – Edgecore Help Center (edge-core.com)
SONiC と FRR — sonic-bgpcfgd 編 #Linux – Qiita
“Windows 11 Home環境 Virtual BoxでSONiC Community版でBGP Unnumberedをしてみた Part2” に対して2件のコメントがあります。