前回は6WIND VSRの評価版ユーザの登録とVSRのVirtualboxへのデプロイを行い、初期設定とインターネットへの疎通確認、評価版ライセンスのアクティベートまで終えた。
評価版ライセンスを適用させた事により、ライセンス有効期間の30日間はVSRはvBR(Virtual Border Router)として動作する為、ISPのエッジルータ(ボーダールータ)として機能を試す事が可能である。今回はCisco CSR1000vやIOS XRvやVyOSを別途デプロイし各機器をVirtualbox内で接続させ、BGPネイバ関係を確立させてみた。
前回は評価版ライセンスの適用に関連するトラブル解消の為に、6WIND社の評価版のサポートのご助言を頂いた。この場を借りて感謝を申し上げる。
https://debslink.hatenadiary.jp/entry/20230329/1680017202 前回の記事(6WIND VSRを試用してみた)
当方の環境
ホスト機:macOS 13.2.1 / MacBook Pro 2020 / RAM: 16GB / CPU: Intel Core i5 2.0GHz
仮想化環境:Oracle VirtualBox 7.0.6
ゲストOS①:6WIND VSR 3.4.10
ゲストOS②:Cisco CSR1000v 3.13.2
ゲストOS③:VyOS 1.4-rolling-202104111334
ゲストOS④:Cisco IOS-XRv 4.3.2
6WIND VSR以外のゲストOS(ソフトウェアルータ)の設定は既に完了している状態。
ざっくりとした要件
以下の内容で構成を組む。4台全てをVirtualboxにてデプロイする。Virtualboxのネットワークアダプタの設定は内部ネットワークを適用し、各ゲストOSを仮想的に接続する。構成図の中の赤い文字列は、Virtualboxのネットワークアダプタのタブ内で設定したネットワークアダプタ名である。
・VSRはISPのエッジルータとして使用。
・Cisco CSR1000vとVyOSは顧客環境のエッジルータとして使用
・Cisco IOS-XRvはISPのコアルータとして使用
・VSRとCisco CSR1000v、VSRとVyOSとの間でeBGPでピア、VSRとCisco IOS-XRvとの間でiBGPピアを張る。
※図をクリックすると拡大表示します

6WIND VSRの設定
これよりVSRのOSPFとBGPの設定に着手する。
前回は評価版ライセンスの適用の為にインターネット環境と接続する必要が有った為、1つのインターフェースとデフォルトルートの設定のみ投入した。
今回はOSPFやBGPの設定に入る前に、他に必要なインターフェースやスタティックルートの設定追加を行う。
インターフェースの設定
前回と同様に、外部と通信する為に以下の3つのインターフェースをそれぞれ紐付けし、IPアドレスをアサインする。
・enp0sX:VSRのベースとなっているOS(Linux)のインターフェース
・pci-bXX:VSRのネットワークポート
・ethX:VSRが外部と通信する為のポート(任意で名称の設定可)
公式ドキュメントによると、紐付けが必要なのは物理インターフェースのみでループバックインターフェースやVLANインターフェースは紐付けが不要なようである。
設定を終えたらcommitコマンドを打ち、設定内容をシステムに反映させる。
ちなみに「..」を打つと一つ下の階層に移動する。
jpmtkvmrt99> edit running jpmtkvmrt99 running config# jpmtkvmrt99 running config# vrf main jpmtkvmrt99 running vrf main# interface physical eth1 jpmtkvmrt99 running physical eth1# port pci-b0s8 jpmtkvmrt99 running physical eth1# ipv4 address 192.168.1.1/30 jpmtkvmrt99 running physical eth1# jpmtkvmrt99 running physical eth1# .. jpmtkvmrt99 running interface# .. jpmtkvmrt99 running vrf main# interface physical eth2 jpmtkvmrt99 running physical eth2# port pci-b0s9 jpmtkvmrt99 running physical eth2# ipv4 address 192.168.1.5/30 jpmtkvmrt99 running physical eth2# jpmtkvmrt99 running physical eth2# .. jpmtkvmrt99 running interface# .. jpmtkvmrt99 running vrf main# jpmtkvmrt99 running vrf main# interface loopback lo0 jpmtkvmrt99 running loopback lo0# ipv4 address 10.1.1.99/32 jpmtkvmrt99 running loopback lo0# .. jpmtkvmrt99 running interface# jpmtkvmrt99 running interface# commit Configuration committed. jpmtkvmrt99 running interface# .. jpmtkvmrt99 running vrf main#
外部向けルーティング(Static Route)の設定
次に、他のソフトウェアルータへの通信の到達性確保の為、スタティックルートの設定を投入する。
Next Hopが192.168.1.6のスタティックルートは、従系の経路につきディスタンス値を150に設定した。
設定を終えたらcommitコマンドを打ち、設定内容をシステムに反映させる。
jpmtkvmrt99 running vrf main# / vrf main routing static jpmtkvmrt99 running static# ipv4-route 192.168.101.0/24 next-hop 192.168.1.2 jpmtkvmrt99 running static# ipv4-route 192.168.111.0/24 next-hop 192.168.1.2 jpmtkvmrt99 running static# ipv4-route 192.168.121.0/24 next-hop 192.168.1.2 jpmtkvmrt99 running static# ipv4-route 192.168.102.0/24 next-hop 192.168.1.6 distance 150 jpmtkvmrt99 running static# ipv4-route 192.168.112.0/24 next-hop 192.168.1.6 distance 150 jpmtkvmrt99 running static# ipv4-route 192.168.122.0/24 next-hop 192.168.1.6 distance 150 jpmtkvmrt99 running static# jpmtkvmrt99 running static# commit Configuration committed. jpmtkvmrt99 running static#
ISP内部向けルーティング(OSPF)の設定
次に、ISP内部のルーティング設定としてOSPFの設定を投入する。
ISP内部のネットワークを外部にアドバタイズする為のPrefix Listおよびルートマップも設定する。
設定を終えたらcommitコマンドを打ち、設定内容をシステムに反映させる。ついでにcopy running startupというどこかで見たようなコマンドを打ち、設定内容を保存する。
ちなみに、8行目のseq 1の頭に有る「!」は自動で出力される為、当記事の内容をコピペで設定投入する際は「!」は不要である。
jpmtkvmrt99 running static# / vrf main routing ospf jpmtkvmrt99 running ospf# router-id 10.1.1.99 jpmtkvmrt99 running ospf# network 192.168.3.0/24 area 0.0.0.0 jpmtkvmrt99 running ospf# log-adjacency-changes detail jpmtkvmrt99 running ospf# jpmtkvmrt99 running ospf# / routing jpmtkvmrt99 running routing# ipv4-prefix-list BGP-ENDPOINTS jpmtkvmrt99 running ipv4-prefix-list BGP-ENDPOINTS#! seq 1 address 10.1.1.0/24 policy permit le 32 jpmtkvmrt99 running ipv4-prefix-list BGP-ENDPOINTS# seq 2 address 192.168.30.0/24 policy permit le 32 jpmtkvmrt99 running ipv4-prefix-list BGP-ENDPOINTS# seq 3 address 192.168.3.0/24 policy permit le 32 jpmtkvmrt99 running ipv4-prefix-list BGP-ENDPOINTS# .. jpmtkvmrt99 running routing# route-map FILTER-OSPF-ROUTE jpmtkvmrt99 running route-map FILTER-OSPF-ROUTE#! seq 1 jpmtkvmrt99 running seq 1#! policy permit jpmtkvmrt99 running seq 1# match ip address prefix-list BGP-ENDPOINTS jpmtkvmrt99 running seq 1# / vrf main routing ospf jpmtkvmrt99 running ospf# redistribute connected route-map FILTER-OSPF-ROUTE jpmtkvmrt99 running ospf# jpmtkvmrt99 running ospf# commit Configuration committed. jpmtkvmrt99 running ospf# jpmtkvmrt99 running ospf# copy running startup Overwrite startup configuration? [y/N] y jpmtkvmrt99 running ospf#
iBGPの設定
次に、iBGPの設定を投入する。
先程設定したルートマップといい、BGPの設定もコマンド1つ1つを見るとCisco IOSを意識したものになっている事が分かる。
階層の移動は面倒だが、Cisco IOSの利用者は難無く6WIND VSRのコマンドを打てるのではないかと思う。
soft-reconfiguration-inbound trueの設定は、指定したBGPピアから受信した、フィルタリング前のオリジナルの経路情報を保持する為の設定である。
オプションをtrueにする事で、BGPピアに対し経路情報の再送信を要求する事が可能になる。
neighbor-descriptionの設定は、iBGPピアを張っている相手を記載した。
設定を終えたらcommitコマンドを打ち、設定内容をシステムに反映させる。
jpmtkvmrt99 running ospf# / vrf main routing bgp jpmtkvmrt99 running bgp#! as 65535 jpmtkvmrt99 running bgp# router-id 10.1.1.99 jpmtkvmrt99 running bgp# address-family ipv4-unicast redistribute connected jpmtkvmrt99 running bgp# neighbor 10.1.1.98 jpmtkvmrt99 running neighbor 10.1.1.98#! remote-as 65535 jpmtkvmrt99 running neighbor 10.1.1.98# neighbor-description mtkVMRT98_Lo0 jpmtkvmrt99 running neighbor 10.1.1.98# address-family ipv4-unicast soft-reconfiguration-inbound true jpmtkvmrt99 running neighbor 10.1.1.98# jpmtkvmrt99 running neighbor 10.1.1.98# commit Configuration committed. jpmtkvmrt99 running neighbor 10.1.1.98# .. jpmtkvmrt99 running bgp#
eBGPの設定
次に、eBGPの設定を投入する。
上記と同様に、ピアの設定とフィルタリング前のオリジナルの経路情報を保持する為の設定とdescriptionの設定に留めている。
BGPの設定を一通り終えたらcommitコマンドを打ち、設定内容をシステムに反映させる。ついでにcopy running startupコマンドを打ち設定内容を保存。
jpmtkvmrt99 running bgp# / vrf main routing bgp jpmtkvmrt99 running bgp# neighbor 192.168.1.2 jpmtkvmrt99 running neighbor 192.168.1.2#! remote-as 65501 jpmtkvmrt99 running neighbor 192.168.1.2# neighbor-description Customer-Transit-Route#1 jpmtkvmrt99 running neighbor 192.168.1.2# address-family ipv4-unicast soft-reconfiguration-inbound true jpmtkvmrt99 running neighbor 192.168.1.2# .. jpmtkvmrt99 running bgp# jpmtkvmrt99 running bgp# neighbor 192.168.1.6 jpmtkvmrt99 running neighbor 192.168.1.6#! remote-as 65502 jpmtkvmrt99 running neighbor 192.168.1.6# neighbor-description Customer-Transit-Route#3 jpmtkvmrt99 running neighbor 192.168.1.6# address-family ipv4-unicast soft-reconfiguration-inbound true jpmtkvmrt99 running neighbor 192.168.1.6# jpmtkvmrt99 running neighbor 192.168.1.6# commit Configuration committed. jpmtkvmrt99 running neighbor 192.168.1.6# copy running startup Overwrite startup configuration? [y/N] y jpmtkvmrt99 running neighbor 192.168.1.6# .. jpmtkvmrt99 running bgp#
ルートフィルタリングの設定
bogonな経路情報をルーティングテーブルに載せない為の設定を行う。
ただし、Loopbackインターフェースや物理インターフェースにアサインしているIPアドレスやルータIDとして使用しているIPアドレスは、フィルタリングの対象から除外する。
設定を終えたらcommitコマンドを打ち設定内容をシステムに反映させ、copy running startupコマンドを打ち設定内容を保存。
jpmtkvmrt99 running bgp# / routing ipv4-prefix-list Filter-Bogon-Routes jpmtkvmrt99 running ipv4-prefix-list Filter-Bogon-Routes#! seq 1 address 127.0.0.0/8 policy deny le 32 jpmtkvmrt99 running ipv4-prefix-list Filter-Bogon-Routes# seq 2 address 169.254.0.0/16 policy deny le 32 jpmtkvmrt99 running ipv4-prefix-list Filter-Bogon-Routes# seq 3 address 172.16.0.0/12 policy deny le 32 jpmtkvmrt99 running ipv4-prefix-list Filter-Bogon-Routes# seq 4 address 224.0.0.0/3 policy deny le 32 jpmtkvmrt99 running ipv4-prefix-list Filter-Bogon-Routes# seq 5 address 0.0.0.0/0 policy permit le 32 jpmtkvmrt99 running ipv4-prefix-list Filter-Bogon-Routes# jpmtkvmrt99 running ipv4-prefix-list Filter-Bogon-Routes# / vrf main routing bgp jpmtkvmrt99 running bgp# neighbor 192.168.1.2 address-family ipv4-unicast prefix-list in prefix-list-name Filter-Bogon-R outes jpmtkvmrt99 running bgp# neighbor 192.168.1.6 address-family ipv4-unicast prefix-list in prefix-list-name Filter-Bogon-R outes jpmtkvmrt99 running bgp# jpmtkvmrt99 running bgp# commit Configuration committed. jpmtkvmrt99 running bgp# jpmtkvmrt99 running bgp# copy running startup Overwrite startup configuration? [y/N] y jpmtkvmrt99 running bgp# jpmtkvmrt99 running bgp# exit jpmtkvmrt99>
設定後の確認
設定が一通り完了した為、これよりステータスの確認に入る。
以下は、前回と今回で作成したインターフェースの情報である。
IPv4のアドレスは手動で設定したものだが、IPv6のアドレスは自動でアサインされたものである。
jpmtkvmrt99> show interface
Name State IP Addresses
---- ----- ------------
lo UNKNOWN 127.0.0.1/8
::1/128
eth0 UP 192.168.3.254/24
fe80::a00:27ff:fe93:9d30/64
eth1 UP 192.168.1.1/30
fe80::a00:27ff:fe6c:ff7d/64
eth2 UP 192.168.1.5/30
fe80::a00:27ff:feb8:8903/64
lo0 UNKNOWN 10.1.1.99/32
fe80::44e:73ff:fe7e:a258/64
jpmtkvmrt99> 以下は、VSRのルーティングテーブルの内容。
出力フォーマットはCisco IOSとほぼ同じである。
ISP内部のネットワークだけでなく、Customer環境のネットワークも学習出来ている事が分かる。
jpmtkvmrt99> show ipv4-routes
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, A - Babel, D - SHARP, F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
S>* 0.0.0.0/0 [1/0] via 192.168.3.1, eth0, weight 1, 05:10:13
O>* 10.1.1.98/32 [110/20] via 192.168.3.253, eth0, weight 1, 00:10:53
C>* 10.1.1.99/32 is directly connected, lo0, 05:03:24
B>* 100.1.1.1/32 [20/0] via 192.168.1.2, eth1, weight 1, 00:00:33
B>* 100.1.1.2/32 [20/0] via 192.168.1.6, eth2, weight 1, 00:00:33
C>* 192.168.1.0/30 is directly connected, eth1, 05:10:16
C>* 192.168.1.4/30 is directly connected, eth2, 05:10:16
O 192.168.3.0/24 [110/10] is directly connected, eth0, weight 1, 00:11:04
C>* 192.168.3.0/24 is directly connected, eth0, 05:10:13
B 192.168.30.0/24 [200/0] via 10.1.1.98 (recursive), weight 1, 00:08:32
via 192.168.3.253, eth0, weight 1, 00:08:32
O>* 192.168.30.0/24 [110/20] via 192.168.3.253, eth0, weight 1, 00:10:53
B 192.168.101.0/24 [20/0] via 192.168.1.2, eth1, weight 1, 00:00:33
S>* 192.168.101.0/24 [1/0] via 192.168.1.2, eth1, weight 1, 04:43:45
B 192.168.102.0/24 [150/0] via 192.168.1.6, eth2, weight 1, 00:00:33
S>* 192.168.102.0/24 [1/0] via 192.168.1.6, eth2, weight 1, 04:43:45
S>* 192.168.111.0/24 [1/0] via 192.168.1.2, eth1, weight 1, 04:43:45
S>* 192.168.112.0/24 [150/0] via 192.168.1.6, eth2, weight 1, 04:43:45
S>* 192.168.121.0/24 [1/0] via 192.168.1.2, eth1, weight 1, 04:43:45
S>* 192.168.122.0/24 [150/0] via 192.168.1.6, eth2, weight 1, 04:43:45
jpmtkvmrt99> 以下は、VSRが認識しているOSPFネイバの一覧である。
ISP内部にて隣接するルータとの間でOSPFネイバの関係を確立し、OSPFネイバ関係の状態はFULLとなっている事が分かる。
ネイバ側がDRになっている事が分かる。
jpmtkvmrt99> show ospf neighbor Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 10.1.1.98 1 Full/DR 31.344s 192.168.3.253 eth0:192.168.3.254 0 0 0 jpmtkvmrt99>
以下は,、VSRが持つOSPFのリンクステートデータベースの情報である。
LSAタイプ1(Router Link States)、LSAタイプ2(Net Link States)、LSAタイプ5(AS External Link States)の要約情報が出力されている。
jpmtkvmrt99> show ospf database
OSPF Router with ID (10.1.1.99)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
10.1.1.98 10.1.1.98 717 0x8000000c 0x6133 1
10.1.1.99 10.1.1.99 716 0x80000004 0x127e 1
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
192.168.3.253 10.1.1.98 717 0x80000005 0x2976
AS External Link States
Link ID ADV Router Age Seq# CkSum Route
10.1.1.98 10.1.1.98 472 0x80000005 0x7a63 E2 10.1.1.98/32 [0x0]
10.1.1.99 10.1.1.99 721 0x80000001 0x726d E2 10.1.1.99/32 [0x0]
192.168.30.0 10.1.1.98 347 0x80000005 0xeed5 E2 192.168.30.0/24 [0x0]
jpmtkvmrt99> 以下は、VSRのBGPテーブルの情報である。
Customer環境内へのベストパス(iBGP)とISP内へのベストパス(eBGP)が出力されている事が分かる。
jpmtkvmrt99> show bgp ipv4
BGP table version is 9, local router ID is 10.1.1.99, vrf id 0
Default local pref 100, local AS 65535
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
i10.1.1.98/32 10.1.1.98 0 100 0 i
*> 10.1.1.99/32 0.0.0.0 0 32768 ?
*> 100.1.1.1/32 192.168.1.2 0 0 65501 i
*> 100.1.1.2/32 192.168.1.6 0 0 65502 i
* 192.168.1.0/30 192.168.1.2 0 0 65501 ?
*> 0.0.0.0 0 32768 ?
*> 192.168.1.4/30 0.0.0.0 0 32768 ?
* i192.168.3.0/24 10.1.1.98 0 100 0 i
*> 0.0.0.0 0 32768 ?
*>i192.168.30.0/24 10.1.1.98 0 100 0 i
*> 192.168.101.0/24 192.168.1.2 0 0 65501 i
*> 192.168.102.0/24 192.168.1.6 0 0 65502 i
Displayed 10 routes and 12 total paths
jpmtkvmrt99> 以下は、VSRが持つBGPピアに関するサマリー情報である。
iBGPによってBGPピアから3本の経路情報、eBGPによってBGPピアから5本の経路情報を受け取っている事が分かる。また、iBGPピアに対し8本の経路情報、eBGPピアに対し上記で設定したポリシーを介して経路情報を渡している事が分かる。
この辺もCisco IOSのような出力フォーマットになっており、Cisco IOSに慣れた方々でも内容の把握に決して難儀しないと思われる。
jpmtkvmrt99> show bgp summary IPv4 Unicast Summary (VRF default): BGP router identifier 10.1.1.99, local AS number 65535 vrf-id 0 BGP table version 9 RIB entries 19, using 3496 bytes of memory Peers 3, using 249 KiB of memory Neighbor V AS LocalAS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc 10.1.1.98 4 65535 65535 62 66 0 0 0 00:10:25 3 8 mtkVMRT98_Lo0 192.168.1.2 4 65501 65535 48 42 0 0 0 00:07:19 3 (Policy) Customer-Transit-Route#1 192.168.1.6 4 65502 65535 38 43 0 0 0 00:07:19 2 (Policy) Customer-Transit-Route#2 Total number of neighbors 3 jpmtkvmrt99>
show bgp neighborをBGPピア1台に対し打ってみた。
show bgp summaryコマンドの内容を詳細に出力したものとなっている。
jpmtkvmrt99> show bgp neighbor 192.168.1.2
BGP neighbor is 192.168.1.6, remote AS 65502, local AS 65535, external link
Description: Customer-Transit-Route#2
Hostname: csedrt02
BGP version 4, remote router ID 100.1.1.1, local router ID 10.1.1.99
BGP state = Established, up for 00:07:59
Last read 00:00:11, Last write 00:00:01
Hold time is 30, keepalive interval is 10 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
Extended Message: advertised
AddPath:
IPv4 Unicast: RX advertised IPv4 Unicast and received
Route refresh: advertised and received(old & new)
Enhanced Route Refresh: advertised
Address Family IPv4 Unicast: advertised and received
Hostname Capability: advertised (name: jpmtkvmrt99,domain name: n/a) received (name: csedrt02,domain name: n/a)
Graceful Restart Capability: advertised and received
Remote Restart timer is 120 seconds
Address families by peer:
none
Graceful restart information:
End-of-RIB send: IPv4 Unicast
End-of-RIB received: IPv4 Unicast
Local GR Mode: Helper*
Remote GR Mode: Helper
R bit: False
Timers:
Configured Restart Time(sec): 120
Received Restart Time(sec): 120
IPv4 Unicast:
F bit: False
End-of-RIB sent: Yes
End-of-RIB sent after update: Yes
End-of-RIB received: Yes
Timers:
Configured Stale Path Time(sec): 360
Message statistics:
Inq depth is 0
Outq depth is 0
Sent Rcvd
Opens: 1 1
Notifications: 0 0
Updates: 1 2
Keepalives: 51 44
Route Refresh: 0 0
Capability: 0 0
Total: 53 47
Minimum time between advertisement runs is 0 seconds
For address family: IPv4 Unicast
Update group 2, subgroup 2
Packet Queue length 0
Inbound soft reconfiguration allowed
Community attribute sent to this neighbor(all)
Inbound path policy configured
Incoming update prefix filter list is *Filter-Bogon-Routes
Outbound updates discarded due to missing policy
2 accepted prefixes
Connections established 1; dropped 0
Last reset 00:09:01, Waiting for peer OPEN
Local host: 192.168.1.5, Local port: 49194
Foreign host: 192.168.1.6, Foreign port: 179
Nexthop: 192.168.1.5
Nexthop global: fe80::a00:27ff:feb8:8903
Nexthop local: fe80::a00:27ff:feb8:8903
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 120
Estimated round trip time: 223 ms
Read thread: on Write thread: on FD used: 29
jpmtkvmrt99> 以下は、当記事の設定を完了した段階のコンフィグの内容である。
コンフィグのフォーマットはNokia(Alcatel-Lucent)の7750SRに何となく似ている。
jpmtkvmrt99> show config
vrf main
routing
static
ipv4-route 0.0.0.0/0
next-hop 192.168.3.1
..
ipv4-route 192.168.101.0/24
next-hop 192.168.1.2
..
ipv4-route 192.168.111.0/24
next-hop 192.168.1.2
..
ipv4-route 192.168.121.0/24
next-hop 192.168.1.2
..
ipv4-route 192.168.102.0/24
next-hop 192.168.1.6 distance 150
..
ipv4-route 192.168.112.0/24
next-hop 192.168.1.6 distance 150
..
ipv4-route 192.168.122.0/24
next-hop 192.168.1.6 distance 150
..
..
ospf
enabled true
router-id 10.1.1.99
abr-type cisco
write-multiplier 20
auto-cost 100000
log-adjacency-changes detail
network 192.168.3.0/24 area 0.0.0.0
refresh-timer 10
redistribute connected route-map FILTER-OSPF-ROUTE
..
bgp
enabled true
as 65535
always-compare-med false
bestpath
as-path
confederation false
ignore false
..
compare-routerid false
..
client-to-client
reflection true
..
deterministic-med false
ebgp-connected-route-check true
fast-external-failover true
graceful-shutdown false
listen
limit 100
..
log-neighbor-changes false
network-import-check true
route-reflector-allow-outbound-policy false
reject-as-sets false
packet-rw-quantum
read 10
write 64
..
router-id 10.1.1.99
ebgp-requires-policy true
address-family
ipv4-unicast
enabled true
redistribute connected
maximum-path
ebgp 16
ibgp 16
equal-cluster-length false
..
bgp-distance
external-routes 20
internal-routes 200
local-routes 200
..
..
..
neighbor 10.1.1.98
remote-as 65535
capability-negotiate true
enforce-first-as false
enforce-multihop false
neighbor-description mtkVMRT98_Lo0
override-capability false
passive false
solo false
strict-capability-match false
sender-as-path-loop-detection false
address-family
ipv4-unicast
enabled true
addpath
tx-all-paths false
tx-best-path-per-AS false
..
as-override false
send-community all
route-reflector-client false
route-server-client false
soft-reconfiguration-inbound true
..
..
..
neighbor 192.168.1.2
remote-as 65501
capability-negotiate true
enforce-first-as false
enforce-multihop false
neighbor-description Customer-Transit-Route#1
override-capability false
passive false
solo false
strict-capability-match false
sender-as-path-loop-detection false
address-family
ipv4-unicast
enabled true
addpath
tx-all-paths false
tx-best-path-per-AS false
..
as-override false
send-community all
prefix-list in prefix-list-name Filter-Bogon-Routes
route-reflector-client false
route-server-client false
soft-reconfiguration-inbound true
..
..
..
neighbor 192.168.1.6
remote-as 65502
capability-negotiate true
enforce-first-as false
enforce-multihop false
neighbor-description Customer-Transit-Route#2
override-capability false
passive false
solo false
strict-capability-match false
sender-as-path-loop-detection false
address-family
ipv4-unicast
enabled true
addpath
tx-all-paths false
tx-best-path-per-AS false
..
as-override false
send-community all
prefix-list in prefix-list-name Filter-Bogon-Routes
route-reflector-client false
route-server-client false
soft-reconfiguration-inbound true
..
..
..
..
..
interface
physical eth0
ipv4
address 192.168.3.254/24
enabled true
..
enabled true
port pci-b0s3
ipv6
enabled true
..
..
physical eth1
ipv4
address 192.168.1.1/30
enabled true
..
description Transit_Route#1
enabled true
port pci-b0s8
ipv6
enabled true
..
..
physical eth2
ipv4
address 192.168.1.5/30
enabled true
..
description Transit_Route#2
enabled true
port pci-b0s9
ipv6
enabled true
..
..
loopback lo0
ipv4
address 10.1.1.99/32
enabled true
..
enabled true
ipv6
enabled true
..
..
..
dns
server 8.8.8.8
..
ntp
enabled true
time-sources
server 210.173.160.27
version 4
association-type SERVER
iburst false
prefer true
..
..
..
ssh-server
enabled true
port 22
permit-root-login yes
..
..
system
hostname jpmtkvmrt99
cp-mask default
network-stack
bridge
call-ipv4-filtering false
call-ipv6-filtering false
..
icmp
ignore-icmp-echo-broadcast false
rate-limit-icmp 1000
rate-mask-icmp destination-unreachable source-quench time-exceeded parameter-problem
..
ipv4
forwarding true
send-redirects true
accept-redirects false
accept-source-route false
arp-announce any
arp-filter false
arp-ignore any
arp-proxy false
log-invalid-addresses false
..
ipv6
forwarding true
autoconfiguration true
accept-router-advert never
accept-redirects false
accept-source-route false
router-solicitations -1
use-temporary-addresses never
..
..
timezone Asia/Tokyo
license
enabled true
online
serial 6WIND-EVALS-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
vrf main
export-analytics true
use-ipv6-dns false
..
snmp false
..
..
routing
logging
enabled true
level error
..
ipv4-prefix-list BGP-ENDPOINTS
seq 1 address 10.1.1.0/24 policy permit le 32
seq 2 address 192.168.30.0/24 policy permit le 32
seq 3 address 192.168.3.0/24 policy permit le 32
..
ipv4-prefix-list Filter-Bogon-Routes
seq 1 address 127.0.0.0/8 policy deny le 32
seq 2 address 169.254.0.0/16 policy deny le 32
seq 3 address 172.16.0.0/12 policy deny le 32
seq 4 address 224.0.0.0/3 policy deny le 32
seq 5 address 0.0.0.0/0 policy permit le 32
..
route-map FILTER-OSPF-ROUTE
seq 1
policy permit
match
ip
address
prefix-list BGP-ENDPOINTS
..
..
..
..
..
bfd
detection-multiplier 3
desired-transmission-interval 300000
required-receive-interval 300000
..
..
jpmtkvmrt99>
今回はここまで。
Virtualbox内にVSRを含め4つのソフトウェアルータでBGPのネットワークを構成した。
BGPピアの相手のうちの2台がCiscoのソフトウェアルータでホスト機に負荷がかかった為か、VSRの動作はやや重ためになってしまったが、想定どおりの出力結果となった。
今回はほんのお触り程度の設定しか入れてないものの、Cisco IOS XRvで当記事の内容と同じような事をやらせた場合、6WIND VSRはホスト機への要求スペックはCisco IOS XRvよりやや低めで済んだ。サービスプロバイダにおける仮想エッジルータとしてCisco IOS XRvやJuniper vMXが定番かもしれないが、6WIND VSRが新たな選択肢に加わって良いかもしれない。
評価版ライセンスの期限はまだ20日以上も先なので、IPsecやもう少し掘り下げた内容の設定などを試してみたい。
ところで、前回はNokia(旧Alcatel-Lucent)の7750SRというルータのようなCLIという認識を持ったが、各設定コマンドのオプションをよくよく見てみるとCisco IOSを意識しているように感じられる。欧州だけでなくアメリカやアジアでの導入実績を増やしたいという意図なのだろうか。
参照サイトなど
6WIND公式サイト
https://www.6wind.com/ 6WIND
https://www.6wind.com/vrouter-vsr-solutions/ 6WIND VSR
https://doc.6wind.com/new/vsr-3/3.4/vsr-guide/user-guide/index.html 6WIND VSRドキュメント
過去の関連記事
https://debslink.hatenadiary.jp/entry/20230329/1680017202 6WIND VSRを試用してみた
https://debslink.hatenadiary.jp/entry/20230423/1682258109 6WIND VSRのアーキテクチャおよびカスタマイズ
https://debslink.hatenadiary.jp/entry/20230427/1682597891 6WIND VSR評価版レビュー
https://debslink.hatenadiary.jp/entry/20201217/1608182777 VirtualboxのゲストOS間を仮想ケーブルで接続する