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

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

VMware PlayerにCisco IOS XRvを導入する

仮想ルータであるCisco IOS XRvをVMware Playerに入れてみた時のメモ。


Cisco IOS-XRvとは
Cisco IOS XRvとは、ASR9000やCRS-1など通信キャリアに導入されているルータのOSであるCisco IOS XRからハードウェア依存な機能を省き、VMware ESXiなど仮想化プラットフォームをサポートするx86なサーバ上で動作するよう設計されたソフトウェアルータである。
Cisco IOS XRvのOSは、QNX NeutrinoというUNIXベース(32bit)のOSが採用されている(※1)。QNX Neutrinoは組み込み系のOSにつきカーネル自体のサイズは非常に小さい。
シスコ社が開発した、汎用CPU用パケット転送処理高速化機能であるVPP(Vector Packet Processing)により、受信パケットの並列読み出しによるパケット転送処理の高速化が図られている。VPPはHypervisor非依存である上、QNXカーネルではなくユーザスペースのプロセスで動作する為、パケット転送処理時にデータプレーンに与える負荷を最小限に抑える事が出来る。
 
通信キャリア勤務時代に触れていたCisco XR12010ルータのOSも、IOS XRが動作していた。
CRSや12000シリーズルータ含め、通信事業者のバックボーンネットワークで稼働しているCisco CRSシリーズルータやCisco XR12000シリーズルータ等のようなIOS XRなルータをVMware Player内で動かしてみようという事で、Cisco IOS XRvをデプロイしてみた。
尚、今回導入するIOS XRvはファイル名が示すとおりデモ版である。
使用可能な帯域が2Mbpsに抑えられているものの使用可能期間に制限は無い為、学習用途としては最適である。
 
2020/12/31追記 QNX NeutrinoベースのIOS XRの開発は終了しており、今ダウンロード可能なIOS XRvはLinuxベースの64bitなOSが採用されている。
しかしIOS XRコマンド自体はほぼ同じである為、あのコマンド何だっけレベルの確認であれば、QNX NeutrinoなIOS XR(バージョン〜5.x)で充分だろう。
http://www.qnx.com/news/pr_1329_3.html IOS XRリリース当初はカーネル部分はQNX Neutrinoが採用されている。
https://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/ios-xr-software/datasheet-c78-736154.html バージョン6.0以降はカーネル部分にWind River Linuxが採用されている。


動作環境
DELL INSPIRON 1545改
CPU: Intel Core2 Duo P9700 2.8GHz
OS: Windows7 Home Edition 64bit版
RAM: 4GB RAM / HDD: 160GB
NIC: Marvell Yukon 88e8040 PCI-E Fast Ethernet Controlle
VMware Player: version 7.1.0 (英語版)
IOS XRv: iosxrv-k9-demo-5.3.1.ova


デプロイ手順
1.CiscoのSupport Forumの"Running IOS XRv on VMware Fusion/Workstation"スレッド内にある以下のリンク先から、IOS-XRvの.ovaファイルをPCにダウンロード。
Cisco.comのLogin IDとPasswordが必要。
自分の場合、iosxrv-k9-demo-5.3.1.ovaを選択。時々別バージョンのファイルが置かれていて自分は運良くVRR版に遭遇出来た為、VRR版もダウンロード出来た。
https://supportforums.cisco.com/document/12088696/running-ios-xrv-vmware-fusionworkstation
 
2020/12/31追記現在は上記のサポートフォーラムに書かれていたダウンロードサイトは閉じられ、QNX NeutrinoベースのIOS XRの入手は困難となった。
Ciscoのダウンロードサイトにて入手可能なIOS XRはLinuxベースになっている。
 
2.PCにダウンロードした.ovaファイルを右クリックから"Open with VMware Player"を選択。
VMware Playerが起動しインストールが始まる。
 
3.仮想マシン名は任意の文字列でOK。
自分の場合Hostnameを入力し、Importをクリック。
日本語版のVMware Playerの場合は表記がImportではないかも知れないが、それらしき意味のボタンをクリックしインストールを開始。
 
4.GRUBの画面で"IOS XRv"を選択し、Enterキーを叩く。
ここから先のIOS XRv起動プロセスのログは、"Booting 'IOS XRv'以外、VMware Playerのウインドウ内に全く出力されない。
IOS XRvは、デフォルト状態ではコンソール出力のみの対応である為。
作成されている.vmxファイルの内容を編集し、Tera TermやPuTTYで起動ログの出力とIOS XRvコマンド実行が可能になるようにする。

5.IOS XRvの起動途中だが、VMware PlayerのウインドウをXボタンをクリックし一旦Power Off。
下記にてSerial Portの追加設定をする為だ。
自分の環境では、起動開始後5分後にPower Offを実施している。起動開始直後にPower Offを実施するとNICを認識しない事があった為だ。
 
6.VMware Playerを立ち上げ、上記3.で作成した仮想マシンを選択し"Edit virtual machine setting"をクリック。
Network Adapter2の設定変更。Network Adapter2をBridged(Automatic)からHost-onlyに変更。
続いて、Serial Portの追加。Addをクリックし、Serial Portを選択しNextをクリック。"Output to named pipe"を選択しNextをクリック。
後に.vmxファイルを直接編集して設定変更する為、"Named pipe"の設定項目内はそのまま変更せずFinishをクリック。
その後、VMware Playerを一旦落とす。
 
7.VMware Playerを再度立ち上げる前に、.vmxファイルをNote Padなどテキストエディタで開く。
Windows7の場合は、マイドキュメント\Virtual Machines\[上記3で入力した仮想マシン名]のフォルダ内にある。

.vmxファイルを開き、ethernet0.virtualDevが以下である事を確認。

ethernet0.virtualDev = "e1000"


serial0.presentをTRUEに、serial0.fileTypeをnetworkに変更。

serial0.present = "TRUE"
serial0.fileType = "network"


serial0.fileNameを"telnet://127.0.0.1:9001"に修正。
Tera Termで開く際、127.0.0.1:9001を入力する事になる。

serial0.fileName = "telnet://127.0.0.1:9001"


以下の2行は、記載が無かったら追記。

serial0.startConnected = "TRUE"
serial0.yieldOnMsrRead = "TRUE"


編集完了。.vmxファイルを上書保存しテキストエディタを閉じる。
 
8.VMware Playerを再度立ち上げ、上記3で作成した仮想マシンを起動させる。
GRUBの画面でIOS XRvを選択後、VMware Playerのウインドウから一旦抜ける。VMware Playerのウインドウは落とさない。
 
9.Tera Termを立ち上げ、Host欄に127.0.0.1:9001を入力、ServiceはTelnetを選択しOKをクリック。
IOS XRvの起動ログがTera Term上に出力される。
 
途中で以下が出力される。
下記にてExec ModeおよびAdmin Modeの設定初期化用の仮アカウントを作成する。
(初期化用に特化したアカウントではない。このまま使い続けてもよし、後で削除してもよし。)

!!!!!! NO root-system username is configured. Need to configure root-system username. !!!!!!

         --- Administrative User Dialog ---

  Enter root-system username:
  Enter secret:

 
10.起動が完了すると、ログインプロンプトが出力される。
上記にて設定したUsernameとPasswordでログインする。

ログイン後、以下のシステムログが出力されるまでの間は何もせず待機する。

SYSTEM CONFIGURATION COMPLETED

 
11.SYSTEM CONFIGURATION COMPLETEDのログが出力された後、以下の流れで、Exec Mode (Config Mode)のConfigとコマンド履歴を初期化する。
"Do you wish to proceed? [no]: "の出力では、yesを入力し次に進む。
"[Confirm]"の出力では、Enterキーを叩いて次に進む。

RP/0/0/CPU0:ios#conf t
RP/0/0/CPU0:ios(config)#commit replace

This commit will replace or remove the entire running configuration. This
operation can be service affecting.
Do you wish to proceed? [no]: yes
RP/0/0/CPU0:ios(config)#
RP/0/0/CPU0:ios(config)#exit
RP/0/0/CPU0:ios#clear configuration commits diskspace 100000
Tue May 26 22:20:38.506 UTC
Deleting 1 rollback points '1000000001' to '1000000001'
1 KB of disk space will be freed. Continue with deletion?[confirm]

RP/0/0/CPU0:ios#delete disk0:config/lr/history/config_history
Tue May 26 22:21:09.994 UTC
Delete disk0:/config/lr/history/config_history[confirm]

RP/0/0/CPU0:ios#clear configuration inconsistency 
Tue May 26 22:21:23.293 UTC

Creating any missing directories in Configuration File system...OK
Initializing Configuration Version Manager...OK
Syncing commit database with running configuration...OK
RP/0/0/CPU0:ios#

 
12.続けて、Admin ModeのConfigとコマンド履歴を初期化する。
Execモードと同様に、"Do you wish to proceed? [no]: "の出力では、yesを入力し次に進む。
"[Confirm]"の出力では、Enterキーを叩いて次に進む。

RP/0/0/CPU0:ios#admin
RP/0/0/CPU0:ios(admin)#conf t
Tue May 26 22:21:51.181 UTC
RP/0/0/CPU0:ios(admin-config)#commit replace
Tue May 26 22:21:57.321 UTC

This commit will replace or remove the entire admin running configuration. This
operation can be service affecting.
Do you wish to proceed? [no]: yes
RP/0/0/CPU0:ios(admin-config)#exit
RP/0/0/CPU0:ios(admin)#
RP/0/0/CPU0:ios(admin)#clear configuration commits diskspace 100000
Tue May 26 22:22:28.039 UTC
Deleting 1 rollback points '2000000001' to '2000000001'
1 KB of disk space will be freed. Continue with deletion?[confirm]
RP/0/0/CPU0:ios(admin)#delete disk0:config/ad/admin/history/config_history
Tue May 26 22:22:55.077 UTC
Delete disk0:/config/ad/admin/history/config_history[confirm]

RP/0/0/CPU0:ios(admin)#clear configuration inconsistency 
Tue May 26 22:23:04.036 UTC

Creating any missing directories in ADMIN Configuration File system...OK
Initializing ADMIN Configuration Version Manager...OK
Syncing ADMIN commit database with running configuration...OK
RP/0/0/CPU0:ios(admin)#

 
13.Adminモードのまま、以下のコマンドを実行しModuleの状態を確認する。
ただし、IOS XRvではLine CardやPSU等のModuleが挿入されていない為、RP(Routing Processor)分のみの出力となる。

RP/0/0/CPU0:ios(admin)#show platform
Tue May 26 22:23:25.015 UTC
Node         Type          PLIM          State           Config State
----------------------------------------------------------------------
0/0/CPU0     RP            N/A           IOS XR RUN      PWR,NSHUT,MON
RP/0/0/CPU0:ios(admin)#

 
14.以下のコマンドを実行し、メモリがVMware Playerにて設定された内容で認識している事を確認。
自分の環境では、総量は3GB(3071MB)となる。

RP/0/0/CPU0:ios(admin)#show memory sum
Tue May 26 22:23:35.324 UTC
Physical Memory: 3071M total (1658M available)
 Application Memory : 2870M (1658M available)
 Image: 73M (bootram: 73M)
 Reserved: 128M, IOMem: 0, flashfsys: 0
 Total shared window: 23M
RP/0/0/CPU0:ios(admin)#

 
15.exitコマンドを実行し、Adminモードから抜けて初期化完了。
これで、VMware PlayerへのIOS XRv導入作業も完了。ここから先はIOS XRのコマンドを打ち放題。

RP/0/0/CPU0:ios(admin)#exit
RP/0/0/CPU0:ios#



参考資料
https://supportforums.cisco.com/document/12068666/introduction-cisco-ios-xr-technical-workbook
http://www.cisco.com/en/US/docs/ios_xr_sw/ios_xrv/install_config/b_xrvr_432_chapter_01.html
https://www.amazon.co.jp/dp/1587052717/ Mobeen Tahir他, 2009, Cisco IOS XR Fundamentals (Cisco Press)
 
初学者用の教材としては上記の「Introduction to Cisco IOS-XR Technical Workbook」が良いだろう。
自分が業務でCisco XR12010に触れていた頃はYouTubeの解説動画やCisco Pressの参考書でCisco IOS XRを扱ったものは無く、当時は激重だったCiscoのサイトを眺めつつ、Configや勤務先の資料で勉強するしか無かった。
2021/12/31追記上記のサイトおよび参考書の記載内容は、QNX NeutrinoベースのIOS XRをベースとしている。


Cisco IOS XRv関連の記事
https://debslink.hatenadiary.jp/entry/20150530/1432990905 VMware Player上のCisco IOS XRvでiBGPの設定
https://debslink.hatenadiary.jp/entry/20150609/1433784645 VMware Player上のCisco IOS XRvでeBGPの設定
https://debslink.hatenadiary.jp/entry/20160715/1468554462 Cisco IMTXR(644-906)試験合格
https://debslink.hatenadiary.jp/entry/20171114/1510586589 VirtualboxでCisco IOS-XRvを動かす


VMware ESXi版
事前にVMware ESXiとvSphere Clientの導入が必要である。
http://d.hatena.ne.jp/debslink/20150807/1438943897 (Cisco IOS XRvをESXiに乗せてみる)
http://d.hatena.ne.jp/debslink/20150810/1439135650 (Cisco IOS XRvをESXiに乗せてみる その2)
http://d.hatena.ne.jp/debslink/20150815/1439630416 (Cisco IOS XRvをESXiに乗せてみる その3)
 
※1:QNX NeutrinoベースのCatalyst 6500用IOSが一時期出回っていた。
※2:QNX Neutrinoの試用は可能である。BlackBerry社のダウンロードサイトから.isoファイルを落とす事が出来る。
https://www.qnx.com/download/