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

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

VirtualboxでCisco IOS-XRvを動かす

Cisco Systemsの仮想アプライアンスIOS XRvをVMWare Playerに入れる事が出来たのだから、VirtualBoxに入れる事も出来るだろう...という事で、今回はVirtualBoxに入れてみた。


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が採用されている。QNX Neutrinoは組み込み系のOSにつきカーネル自体のサイズは非常に小さい。
シスコ社が開発した、汎用CPU用パケット転送処理高速化機能であるVPP(Vector Packet Processing)により、受信パケットの並列読み出しによるパケット転送処理の高速化が図られている。VPPはHypervisor非依存である上、QNXカーネルではなくユーザスペースのプロセスで動作する為、パケット転送処理時にデータプレーンに与える負荷を最小限に抑える事が出来る。

通信キャリア勤務時代に触れていたCisco XR12010ルータも、IOS XRが動作していた。
CRSや12000シリーズルータ含め、通信事業者のバックボーンネットワークで稼働しているCisco CRSシリーズルータやCisco XR12000シリーズルータ等のようなIOS XRなルータをVMware Player内で動かしてみようという事で、Cisco IOS XRvをデプロイしてみた。

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が採用されている。


動作環境
HP Probook 4230s
CPU: Intel Core i3-2350M 2.3GHz
OS: Windows7 Professional 32bit版
RAM: 4GB RAM / HDD: 160GB
VirtualBox: version 5.1.28 (英語版)
IOS XRv: xrvr-fullk9-4.3.2.ova


VirtualBoxの設定
[General]
Operating System
Type:Other
Version:QNX
IOS XRvのバージョン5.xまでは上記の内容に設定。バージョン6.x以降はType:Linux、Version:Other Linux (64bit)に設定。

[System]
Base Memory:2048MB
Processors:2
Boot Order:Hard Disk
Acceleration:VT-x/AMD-V, Nested Paging, PAE/NX, KVM Paravirtualization
Base Memoryの設定は、IOS XRvのバージョン4.xの場合は2048MB、バージョン5.xの場合は4096MB、現行バージョンの場合は8GB以上を設定。

[Display]
Video Memory:6MB
Graphics Controller:VBoxVGA
Remote Desktop Server:Disabled
Recording:Disabled

[Storage]
Controller:IDE
IDE Primary Device 0:Cisco IOS XRvの.vmdkファイルを選択。

[Audio]
Disabled

[Network]
Adapter 1:Paravirtualized Network (Bridged Adapter, en0: Wi-Fi *AirPort))
Adapter 2:Paravirtualized Network (Internal Network, 'intnet01')
Adapter 3:Paravirtualized Network (Internal Network, 'intnet02')
Adapter 4:Paravirtualized Network (Internal Network, 'intnet02')
アダプタはvirtio(Paravirtualized)を選択する。それ以外を選択するとホストOS側とCisco IOS XRvとの間で通信が出来ない。

VirtualBoxにてCisco IOS XRvを動かすにあたり、VirtualBox側にてシリアルポートの設定が必要となる。
加えて、Named Pipe TCP Proxy Utilityのインストールも必要となる。


シリアルポートの設定
Virtualboxウインドウ内左側のIOS XRvゲストOSにて右クリックし、Settingsを選択しSerial Portsに入る。
Port 1タブ内にてEnable Serial Portにチェックを入れ、Port NumberはCOM1、Port ModeはHost Pipeを選択。
Connect to existing pipe/socketにはチェックを入れず、Path/Address欄には \\.\pipe\iosxrv を入力。


Named Pipe TCP Proxy Utilityの導入
PuTTYやTera TermとVirtualboxの橋渡し的なツールとして、Named Pipe TCP Proxy Utility(NPTP)をインストール。
ダウンロードしたnptp_setup.zipを適当なフォルダにて解凍し、rptp.exeファイルを叩いてインストール。
インストール後、NPTPを管理者権限で立ち上げる。
NPTPのウインドウ内のメニューEditからNewに入り、Pipe nameはVirtualboxにて設定した\\.\pipe\iosxrvをそのまま入力、Portは任意の値(自分の場合は9001)を入力。Addをクリックして設定を反映させる。

Tera Termの起動
Tera Termを立ち上げ、Host欄にはlocalhost、ServiceはTelnetを選択、TCP Port#はNamed Pipe TCP Proxy Utilityにて設定した値(自分の場合は9001)を入力。
その後、OKをクリック。Tera Termにて attaching console,wait ...connected! の文字列が出力される。

IOS XRvのデプロイ開始
ここでVirtualBoxにて起動ボタン(英語版ではStartボタン)をクリックしCisco IOS XRvを立ち上げる。NPTPとTera Termの後に立ち上げるのがポイント。
IOS XRvの起動が開始するとTera Termの画面内にてIOS XRの起動ログが出力される。

Cisco IOS-XRvのデプロイ完了
以下はデプロイ完了直後のshow versionの出力内容。
この後はAdmin ModeのConfigとコマンド履歴の初期化に進む。
Admin Modeとコマンド履歴の初期化については下記リンク先(VMware PlayerにCisco IOS XRvを導入する)を参照。

RP/0/0/CPU0:ios#show version
Mon Nov 13 22:19:49.281 JST

Cisco IOS XR Software, Version 4.3.2[Default]
Copyright (c) 2013 by Cisco Systems, Inc.

ROM: GRUB, Version 1.99(0), DEV RELEASE

uptime is 2 hours, 8 minutes
System image file is "bootflash:disk0/xrvr-os-mbi-4.3.2/mbixrvr-rp.vm"

cisco IOS XRv Series (Intel 686 F6M10S7) processor with 2211390K bytes of memory.
Intel 686 F6M10S7 processor at 2229MHz, Revision 2.174
IOS XRv Chassis

3 GigabitEthernet
1 Management Ethernet
9178k bytes of non-volatile configuration memory.
1794032k bytes of disk0: (Sector size 512 bytes).

Configuration register on node 0/0/CPU0 is 0x2102
Boot device on node 0/0/CPU0 is disk0:
Package active on node 0/0/CPU0:
iosxr-infra, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-infra-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-fwding, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-fwding-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-routing, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-routing-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-ce, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-ce-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

xrvr-os-mbi, V 4.3.2[Default], Cisco Systems, at disk0:xrvr-os-mbi-4.3.2
    Built on Mon Sep  2 13:11:20 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

xrvr-base, V 4.3.2[Default], Cisco Systems, at disk0:xrvr-base-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

xrvr-fwding, V 4.3.2[Default], Cisco Systems, at disk0:xrvr-fwding-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-mpls, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-mpls-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-mgbl, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-mgbl-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-mcast, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-mcast-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

xrvr-mcast-supp, V 4.3.2[Default], Cisco Systems, at disk0:xrvr-mcast-supp-4.3.2
    Built on Mon Sep  2 13:10:07 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-bng, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-bng-4.3.2
    Built on Mon Sep  2 13:10:05 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

xrvr-bng-supp, V 4.3.2[Default], Cisco Systems, at disk0:xrvr-bng-supp-4.3.2
    Built on Mon Sep  2 13:10:05 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

iosxr-security, V 4.3.2[Default], Cisco Systems, at disk0:iosxr-security-4.3.2
    Built on Mon Sep  2 13:10:01 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

xrvr-fullk9-x, V 4.3.2[Default], Cisco Systems, at disk0:xrvr-fullk9-x-4.3.2
    Built on Mon Sep  2 13:11:27 JST 2013
    By iox-bld2 in /auto/srcarchive7/production/4.3.2/all/workspace for pie

RP/0/0/CPU0:ios#



参考資料など
http://shvechkov.tripod.com/nptp.html Named Pipe TCP Proxy Utility
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/20150524/1432457008 VMware Playerに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)試験合格