メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

6WIND VSRを試用してみた

qiitaで色々なソフトウェアルータを紹介している記事を拝見。その記事の中に記載されているソフトウェアルータの提供元の各リンクを踏みまくった結果、6WIND社のVSRに興味を持った為、評価版のアカウントを作成し6WIND VSRを試用してみた。
尚、HPEもVSR1000というソフトウェアルータを提供しているが、当記事で触れているVSRは6WIND社が開発および販売している物で、HPEのVSRとは全く別物である。
https://qiita.com/masru0714/items/407a0ccf1cc701d52164 仮想ルータ探してみた2023.Spring
https://debslink.hatenadiary.jp/entry/20200607/1591511849 HPE VSR1000をかじってみた

2023/4/23追記
BGPおよびOSPFのざっくりとした設定は以下を参照。
https://debslink.hatenadiary.jp/entry/20230404/1680606122 6WIND VSRでOSPFとBGPの設定
6WIND VSRのアーキテクチャに関するざっくりとした説明は以下を参照。
https://debslink.hatenadiary.jp/entry/20230423/1682258109 6WIND VSRのアーキテクチャおよびカスタマイズ
6WIND VSRの評価版のレビューは以下を参照。
https://debslink.hatenadiary.jp/entry/20230427/1682597891 6WIND VSR評価版レビュー


6WIND社とは
6WIND社は、航空宇宙や防衛や輸送等の各分野に向けた電子機器やシステムを設計・開発・製造しているThales社からのスピンアウトとして2000年に設立。Juniper Networks社設立の4年後、Fortigate社と同じ2000年の設立なので、新興勢力というわけでは無い。
フランスのパリに本社を置き、アメリカとイギリスとシンガポールに事務所を構える。
6WIND社は、ベアメタルまたはパブリッククラウドとプライベートクラウドのCOTS(Commercial Off-The-Shelf)サーバ上で動作する仮想化ネットワークのソフトウェアや開発環境を提供している。


6WIND VSRとは
同社の製品6WIND VSR(Virtual Service Router)は、CSP(Cloud Solution Provider)やMNO(Mobile Network Operator)やエンタープライズ等を対象とした、高性能でスケーラブルなソフトウェアルータ製品である。 6WIND VSRはプライベートクラウドやパブリッククラウドのCOTSサーバにベアメタル、仮想化、コンテナ等の手法でデプロイされる。

6WIND VSRは用途により以下のソフトウェアルータとして利用する。
以下のそれぞれの機能を利用するには、各機能に向けたライセンスが必要である。例えばVSRをvPEとして利用したい場合は、vPEとして利用する為のライセンスを適用させる必要が有る。

・vPE (Virtual Provider Edge) Router:サービスプロバイダにIP/MPLSネットワークエッジサービスを提供する。
・vCSR (Cell Site) Router:無線ネットワークの通信を集約し通信事業者のネットワークに渡す機能を提供する。
・Virtual Security Gateway:サービスプロバイダに高パフォーマンスなセキュリティ機能を提供する。
・Virtual CGNAT (Carrier-Grade NAT):サービスプロバイダにIPアドレス変換機能を提供する。
・vBR (Virtual Border Router):サービスプロバイダに提供する高性能なソフトウェアルーター。
・vCPE (Customer Premises Equipment) Router:仮想化ネットワーク機能(VNF)として、効率的なルーティング、セキュリティ、および仮想プライベート ネットワーク接続サービスを提供する。

評価版ライセンスの場合、ライセンスの適用後はvBRとして動作する。
6WIND VSRを他社製品に例えると、Cisco IOS XRvやJuniper vMXのようなものである。


導入実績
欧州を中心に、アメリカや中国等の通信事業者やクラウド事業者に導入されている。
日本の企業に限定すると、6WINDのサイトの情報および自分が知る範囲内ではNECさんとNTT Communicationsさんがサービスの中で利用している。
NTTデータ先端技術さんが扱っているCloudify(Cloudify Limited社製品)も6WINDの製品が絡んでいる。
また、INTEROP Tokyo 2017のSDI/NFV Showcaseにて、6WIND Virtual Security GatewayとvBRとVirtual Acceleratorがデモンストレーションとして稼働していた。


ユーザ登録およびダウンロード
まずは手を動かそうという事で、6WIND VSRの試用を始める。試用の前に6WINDのユーザ登録が必要である。
6WINDのサイトにアクセスし、画面内右上に有る「Evaluate us」をクリック。
https://www.6wind.com/


再度、遷移先のページ内に有る「Evaluate us」をクリック。
アカウント作成のページに遷移する。名前や会社名やメールアドレスを記入し「Register account」をクリック。


6WINDからの返信を待つ。自分の場合は約5時間後に6WIND社からインバイトのメールを受信した。
受信したメール「6WIND Evaluations Portal」に記載されているURLをクリックし、評価版用のポータルサイト(6WIND Evaluation Portal)にログインする。


Evaluation License Agreementで記載内容を承諾すると、評価版用のポータルサイト内に有る他のページ(DocumentationやView my files)へのアクセスが可能になる。
Documentationのページでは、Product DocumentationやDeployment Guides等のドキュメントにアクセス出来るが、現行バージョン版の6WIND Virtual Service Router 3.xのPDF版は開けないので注意。


View my filesのページでは、リリースノートのPDFファイルやVSRのインストーラのダウンロードが可能。
以下の4種類が用意されている。
・USBスティック(.img.gz)を使用したベアメタル
・CDROMまたはPXE(.iso)を使用したベアメタル
・KVMハイパーバイザ(.qcow2)でのVMの展開
・VMWare(.ova)でのVMの展開

同ページ内の下部にはライセンスキーの記載がある。ライセンスキーはVSRのデプロイ後に使用する。


VSRのデプロイ
当環境では、Virtualboxにデプロイする。以下のページ「6WIND - Virtual Service Router」の「1. Overview」内の下部に有る「1.2 System Requirements」に、VSRをデプロイする為の要件が記載されている。
https://doc.6wind.com/turbo-router-3/latest/turbo-router/index.html

NICの要件
ベアメタルおよびVM(KVM, VMware, AWS, Azure)の場合
・Virtio vNIC, VMXNET3, ENA, PCI Passthrough and SR-IOV
コンテナ環境の場合
・Virtio vNIC, PCI Passthrough and SR-IOV

RAMその他の要件
ベアメタルおよびVNFの場合
・RAM:2GB以上 ※デフォルトの機能は使用可能なRAMの容量に合わせて自動的に調整される
CNFの場合
・RAM:2GB以上 ※最小1GB
CPU:少なくとも2コア
ストレージ:8GB推奨 ※最小1GB

VirtualBoxの設定
上記の要件を踏まえ、Virtualboxの設定は自分の環境では以下の内容となった。

[General]
Name:6WIND VSR v3.4.10-x86_64 (任意の文字列)
Type:Linux
Version:Ubuntu (64-bit)

[System]
Base Memory:2048MB
Processors:2
Boot Order:Hard Disk

[Display]
Video Memory:16MB
Graphics Controller:VMSVGA
Remote Desktop Server:Disabled
Recording:Disabled

[Storage]
Controller:IDE
IDE Primary Device 0:vsr_3.4.10-disk1.vdi

[Audio]
Disabled

[Network]
Adapter 1:Paravirtualised Network (Bridged Adapter, en0: Wi-Fi (AirPort))
Adapter 2:Paravirtualised Network (Bridged Adapter, en0: Wi-Fi (AirPort))
Adapter 3:Paravirtualised Network (Bridged Adapter, en0: Wi-Fi (AirPort))

尚、当方の環境は以下のとおり。
ホスト機: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

Virtualboxにて上記の設定を終えたらOKをクリックし、VSRのデプロイを開始。
起動開始直後にどこかで見たような画面が表示される。どうやらUbuntu Linuxがベースとなっているようである。
自分の環境では、1分もしないうちにデプロイが完了し、ログインプロンプトが出力された。


VSRの初期設定
VSRの起動が完了しログインが促されたら、ユーザ名とパスワードを入力する。
デフォルトのユーザ名およびパスワードは、admin/adminである。

vsr login: admin
Password:
Last login: Mar Wed 26 22:04:47 UTC 2023 on tty1
#######################################################################
# Welcome to 3.4.10                                                   #
#                                                                     #
# Most useful commands at that step:                                  #
#                                                                     #
# edit running      # to edit the running configuration               #
# show interface    # for interface names, state and IP addresses     #
# show summary      # for the vRouter state summary                   #
# ?                 # for the list of available commands              #
# help <cmd>        # for detailed help on the <cmd> command          #
#                                                                     #
# Feel free to customize this banner using                            #
# cmd banner post-login message                                       #
#######################################################################
vsr>

ログイン完了。これより初期設定を実施する。
6WIND VSRのコマンドはAlcatel-Lucent(現Nokia)の7500シリーズルータのような感じである。
通信事業者にてAlcatel 7750SR(Nokia 7750SR)等のルータに触れた事が有る人であれば、難無く設定を進める事が出来るだろう。
Cisco IOSやJunos OSやVyOS等とは異なるCLIにつき、AlcatelやNokiaのルータに触れた事が無い人は、コマンドを打ちまくって慣れるしかない。

まずはホスト名を設定。edit runningコマンドを打って設定モードに入り、system hostnameコマンドでホスト名を設定。自分の場合、jpmtkvmrt99とした。
設定内容の保存はcommitコマンドで実行する。

vsr> edit running
vsr running config# system hostname jpmtkvmrt99
vsr running config# commit
vsr running config# (Enterキー)
jpmtkvmrt99 running config#
jpmtkvmrt99 running config# exit
jpmtkvmrt99>

次に、VSRの管理用ポートにネットワークポートとIPアドレスをアサインする。
ネットワークポートとIPアドレスのアサインに先立ち、show interfaceコマンドを打ち、設定対象のインターフェース名を特定する。
CiscoやJuniper等のルータとは異なり、6WIND VSRには通信で使用するインターフェースは3種類有り、外部と通信したい場合はこれら3つのインターフェースが紐付けされている必要が有る。

・enp0sX:VSRのベースとなっているOS(Linux)のインターフェース
・pci-bXX:VSRのネットワークポート
・eth0:VSRが外部と通信する為のポート(任意で名称の設定可)

今の段階でやりたい事は、eth0とpci-bXXの紐付けである。

最初に、ベースとなっているLinux OSのインターフェースを確認。
自分の環境では、Linux OSのインターフェースenp0s3にIPアドレス192.168.3.19がアサインされている事が分かる。

jpmtkvmrt99> show interface
Name   State        IP Addresses
----   -----        ------------
lo     UNKNOWN      127.0.0.1/8
                                ::1/128
enp0s3 UP           192.168.3.19/24
                                2400:2410:d441:a900:a00:27ff:fe93:9d30/64
                                fe80:a00:27ff:fe93:9d30/64
enp0s8 DOWN
enp0s9 DOWN
jpmtkvmrt99>

続けて、show stateコマンドを打ち、インターフェースenp0s3にどのネットワークポートがアサインされているか確認。
自分の環境では、インターフェースenp0s3にネットワークポートpci-b03がアサインされている事が分かる。

jpmtkvmrt99> show state
vrf main
    routing
        rib
:
(省略)
:
    interface
        physical enp0s3
            mtu 1500
            promiscuous false
            enabled true
            port pci-b03
:
(省略)
:
        ipv4
            adderss 192.168.3.19/24
:
(省略)

そして、外部と接続する為のポートを作成する。
自分の環境では、eth0という名称でポートを作成。sshログイン等管理用のポートとして利用する事とする。
PC、Virtualbox、VSR、Linuxの各インターフェースおよびポートの関連性は、以下の図の内容のとおりである。


管理用インターフェースeth0にネットワークポートpci-b0s3を紐付けし、IPアドレスを192.168.3.254/24に設定する。

jpmtkvmrt99> edit running
jpmtkvmrt99 running config# vrf main interface physical eth0
jpmtkvmrt99 running physical eth0#! port pci-b0s3
jpmtkvmrt99 running physical eth0# ipv4 address 192.168.3.254/24
jpmtkvmrt99 running physical eth0# commit

外部向けの通信の為に、今回はデフォルトルートを1本設定する。

jpmtkvmrt99 running physical eth0# / vrf main routing static
jpmtkvmrt99 running static# ipv4-route 0.0.0.0/0 next-hop 192.168.3.1

DNSサーバはGoogle Public DNSを設定する。
設定を終えたらcommitコマンドを打って設定内容をシステムに反映させる。

jpmtkvmrt99 running static# / vrf main
jpmtkvmrt99 running vrf main# dns server 8.8.8.8
jpmtkvmrt99 running vrf main# commit

次は、起動時に上記で設定した内容が次回の起動後も反映されるよう、copy running startupコマンドを実行する。
ここはCisco IOSな感じのコマンドである。

jpmtkvmrt99 running vrf main# copy running startup
Overwrite startup configuration? [y/N] y
jpmtkvmrt99 running vrf main# 
jpmtkvmrt99 running vrf main# exit
jpmtkvmrt99>

次は疎通確認。
外部の適当な場所にpingを打ち、リプライが有るか確認する。

jpmtkvmrt99> cmd ping 8.8.8.8 count 3
PING 8.8.8.8 (8.8.8.8) 56(64) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=7.14 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=8.92 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=10.4 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 7.140/8.839/10.452/1.355 ms
jpmtkvmrt99>

リプライは100%。外部との間で通信は問題無い事が分かる。


評価版ライセンスのアクティベート
ネットワーク周りの最低限の設定を終えたら、評価版ライセンスのアクティベートを行う。
評価版ライセンスのキーは評価版用のポータルサイト内の下部に表示されている。
GWIND-EVALSから最後までコピーする。

system license online vrf mainコマンドを打ち、ライセンス設定の階層に移る。
system license online serialコマンドに続けてライセンスキーの文字列を貼り付け。
自分の場合、Virtualboxのコンソール画面につき文字列の貼り付けは出来ない為、1文字づつ手入力した。

jpmtk6wind99> edit running
jpmtk6wind99 running config# 
jpmtk6wind99 running config# system license online vrf main
jpmtk6wind99 running config#! system license online serial 6WIND-EVALS-xxxxxxxxxxxxxxxxx

License configuration has been changed. To take it into account in edit mode, type:
commit          # 1/ to commit your changes
exit            # 2/ to exit edit mode
show license    # 3/ to check the license has been successfully activated
edit running    # 4/ to come back to edit mod

commitコマンドを打ち、システムに反映させる。
その後show licenseコマンドを打ち、ライセンス期限日やライセンスキー(Serial number)が出力される事を確認。

jpmtkvmrt99 running config# commit
Configuration commited.
jpmtkvmrt99 running config# exit
jpmtkvmrt99>
jpmtkvmrt99> show license
Activate evaluation license for Virtual Service Router until 2023-04-25 12:55:36
Current activations 1/1
Connected to license server (last contact 2023-03-26 12:55:29)
Lease is valid until 2023-04-16 08:55:36
Serial number is 6WIND-EVALS-xxxxxxxxxxxxxxxxxxxxxxxxxx
Computer ID is xxxxxxxxxxxxx
License was activated online
Support is valid until 1970-01-01 00:00:00 (standard mode)
Max throughput 10.0G (moving average 0.0G)
jpmtkvmrt99>

再度評価版ポータルにアクセスし、Activation dateが表示される事を確認する。
Expiration dateは数時間後に表示されるようになる。

尚、ライセンスが非アクティベートな状態では以下の制約が有る。
・L3ルーティングはStatic Routingのみ。
・BGP、OSPF、Access List、IPSecの設定は出来ない。
・Firewall、NAT、Logging、QoSの設定も出来ない。
・Loopbackインターフェースの新規作成は出来ない。
・設定内容の保存は可能。


リモートアクセス用の設定(SSH)
最後に、SSHログインの為の設定を入れる。
ssh-server enabled trueコマンドを打ち、commitコマンドで設定内容を保存する。
copy running startupコマンドを打ち、次回の起動時に設定が読み込まれるようにする。

jpmtkvmrt99> edit running
jpmtkvmrt99 running config# vrf main
jpmtkvmrt99 running vrf main# ssh-server enabled true
jpmtkvmrt99 running vrf main# commit
Configuration committed.
jpmtkvmrt99 running vrf main# exit
jpmtkvmrt99> 
jpmtkvmrt99> copy running startup
Overwrite startup configuration? [y/N] y
jpmtkvmrt99> 

 
 
設定可能なルーティングプロトコル
ちなみに、評価版ライセンスが適用された状態で喋れるはL3ルーティングは以下のとおり。
一通りは喋る事が出来るようだが、IGMPとPIMとセグメントルーティングは商用版ライセンス適用時のみ設定可能である。

jpmtkvmrt99 running routing# ?
:
(省略)
:
  ..                   Go to parent.
  /                    Go to root.
  bgp                  BGP router configuration.
  global               Global settings configuration.
  interface            Interface-specific routing configuration.
  isis                 Set IS-IS configuration.
  l3-vni               Deprecated.
                       VNI corresponding to tenant VRF.
  mpls                 MPLS configuration.
  nhrp                 NHRP configuration.
  ospf                 OSPF configuration.
  ospf6                OSPFv3 configuration.
  policy-based-routing Configure the policy-based routing.
  rip                  RIP router configuration.
  ripng                RIPng router configuration.
  route-map            Deprecated.
                       Configure a route map that will be applied to the routes
                       learnt from a protocol.
  static               Static routes.
jpmtkvmrt99 running routing#

 
...ちなみに、6WIND VSRを再起動させる際は、以下のコマンドを実行する。
デフォルトではコマンド実行後1分経ってから再起動する為、即座に再起動させたい場合はcmd reboot forceコマンドを打つ。

jpmtkvmrt99> cmd reboot
System will reboot on Tue 2023-03-26 12:59:57

6WIND VSRをシャットダウンさせる際は、以下のコマンドを実行する。

jpmtkvmrt99> cmd poweroff

 
 
今回はここまで。
初期設定として、外部への通信が出来るよう管理用のポートを作成しIPアドレスとSSHログインの為の設定を実施した。また、評価版用のアクティベーションキーをVSRに反映させ、評価版ライセンスを有効にした。

ほんの少しだけ設定を投入しただけの状態なのだが、起動の早さやコマンドを打った際のサクサクとした動作は非常に好印象であった。肥満化が止まらないCisco CSR1000Vよ見習え。
サイト内のドキュメントはあちこちのページに散らばってなくて見やすい。対応言語は英語のみ。しかし今のGoogle翻訳は表示しているページ全体の日本語訳が可能な為、心配には及ばない。コマンドや設定値まで日本語に訳されてしまう点はご愛嬌。
今回はこれで終わりだが、今後はL3ルーティングやVPN周りの簡単な設定をやってみたい。併せて、試用版ライセンスが切れた後の挙動に関しても調べてみたい。


2023/4/1追記
BGPやOSPFの設定を試みたところ、ライセンス適用済みであるにも関わらずコマンドが弾かれる。

jpmtkvmrt99> edit running
jpmtkvmrt99 running config#
jpmtkvmrt99 running config# vrf main routing ospf
ERROR: Failed to parse command
  vrf main routing ospf

                   ^
Expected:
  <return>             Validate command.
  |                    Add an output modifier.

  static               Static routes.
jpmtkvmrt99 running config#

ライセンスの状態を確認したところ、アクティベーションの台数の上限を超えているとの事。
MacBook Proで動作しているVirtualboxの中でVSRを1台だけのデプロイなのだが、上限を超えているとはどういう事なのだろう。

jpmtkvmrt99> show license
Number of Allowed Activations Exceeded.
jpmtkvmrt99>

show logコマンドを叩くと大量のComputer IDが出力される。これらのComputer IDを6WINDのサーバにて受け取り複数のホスト機でVSRを動作させているように見えているのだろう。

:
Apr 01 07:19:22 jpmtkvmrt99 vrld[1847]: Could not cache lease end date: Lookup of tag failed (-6003)
Apr 01 07:19:22 jpmtkvmrt99 vrld[1847]: healthcheck: Number of Allowed Activations Exceeded (-115)
Apr 01 07:19:22 jpmtkvmrt99 vrld[1847]: computer id: kys2HF1siiNRL1570x/K
Apr 01 07:19:29 jpmtkvmrt99 vrld[1847]: Could not cache lease end date: Lookup of tag failed (-6003)
Apr 01 07:19:29 jpmtkvmrt99 vrld[1847]: healthcheck: Number of Allowed Activations Exceeded (-115)
Apr 01 07:19:29 jpmtkvmrt99 vrld[1847]: computer id: VkuWgoYmKaHO6L0VaRib
Apr 01 07:19:35 jpmtkvmrt99 vrld[1847]: Could not cache lease end date: Lookup of tag failed (-6003)
Apr 01 07:19:35 jpmtkvmrt99 vrld[1847]: healthcheck: Number of Allowed Activations Exceeded (-115)
Apr 01 07:19:35 jpmtkvmrt99 vrld[1847]: computer id: 0PoB5BnjRWNDejdp+9Nj

今回の6WIND VSRだけでなく、VyOSやCisco CSR1000v等他のソフトウェアルータは用が済んだら落としているのだが、落とさなかったら今回のような事象は発生しなかった?
試用版ライセンスでもサポートへの連絡が可能につき、今回の事象についてエスカレーションしてみる。

2023/4/4追記
サポートにエスカレーションした結果、サポート側でライセンスを初期化してくださりBGPやOSPFの設定が可能になった。
対応の流れとしては、サポート側で初期化しサポート側から返信を頂いた後に cmd license refreshコマンドを叩きVSRのライセンスを更新というもの。(更新と言うものの文字列は同じなので再登録みたいな感じ)
ご対応してくださった6WINDサポートのDavidさんに感謝申し上げます。

2023/4/25追記
ついに評価版ライセンスが期限切れとなった。評価版ライセンスが期限切れた後の動作について確認した結果は以下のとおり。
・BGPやOSPF等の設定はConfigに残っているが機能しない。
・設定可能な機能は評価版ライセンスの適用前と同じ。
・BGPやOSPF等、Configに残っている設定内容の編集は出来ない。
・評価版ライセンスの適用前と同じく、show bgp summaryやshow ospf neighbor等のコマンドの実行は出来ない。


参照サイトなど
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://www.6wind.com/6wind-vrouters-cisco-asr-routers-software-performance-rivals-hardware/ 他社製品との比較
https://www.6wind.com/6wind-interop-tokyo-sdinfv-showcase-product-demos/ Interop, Tokyo: SDI/NFV Showcase, Product Demos
https://karneliuk.com/2021/10/infrastructure-3-deploying-high-performance-pure-virtual-linux-router-6wind/ Infrastructure 3. Deploying High Performance Pure Virtual Linux Router – 6WIND

6WIND VSR関連の記事
https://debslink.hatenadiary.jp/entry/20230404/1680606122 6WIND VSRでOSPFとBGPの設定
https://debslink.hatenadiary.jp/entry/20230423/1682258109 6WIND VSRのアーキテクチャおよびカスタマイズ
https://debslink.hatenadiary.jp/entry/20230427/1682597891 6WIND VSR評価版レビュー