GNS3 1.3.1にIOS XRvを求めるのは間違っているだろうか

Ubuntu 14.04.2 DesktopにGNS3 1.3.1を入れてIOS XRvが起動するところまで書きます。

GNS3 1.3.1にIOS XRvを求めるのは間違っているだろうか

はじめに

GNS3は適当に検索すると、ダウンロードしたけりゃユーザ登録しな、と書かれているのだけど。
普通にGithubから手に入るからね。よろしくね。

https://github.com/GNS3/gns3-gui/releases

Cisco IOS XRvの準備

IOS XRvはこっちから: https://upload.cisco.com/cgi-bin/swc/fileexg/main.cgi?CONTYPES=Cisco-IOS-XRv&msg=Download+complete

IOS XRvの扱いについては記述と実態が今一つ合致していないのだけれど、CiscoフォーラムのCisco社員によるCisco Endorsedな発言によれば、

1
Note that the demo image is free to use and the download works. The production images require the correct PIDs (I'll post more on this later).

https://supportforums.cisco.com/discussion/11920201/ios-xr-xrv#comment-9457661

と言うことらしいので、パートナー契約や製品購入をしていない一般人でも、デモ版に関しては私的なダウンロードや使用が可能です。

XRvはCisco IOS XRv Overviewに記載がある通り、L2機能が動作しません。
厳密にどの機能が動作しないかははっきりしないものの、EoMPLSなどのL2VPNは動作しない可能性が高いです。(手元で確認した範囲では、EVPNなどはコンフィグは入るものの転送されませんでした)

Cisco IOS XRv routers do not support Layer 2 features.
Ref: http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html#concept_EF0049D9AD64467287CA43B4739AA9D3

また、デモ版は上記の制限を除けば、おおよその機能群を使用することが出来ますが、以下の制限を持ちます。

  • Available free for users
  • AAA hardcoded users
  • Rate Limit of 2 Mbps

Ref: http://www.cisco.com/c/en/us/td/docs/ios_xr_sw/ios_xrv/release/notes/xrv-rn.html#reference_85949B60A18940FF8501D384786850E9

インストールとイメージの配置作業

KVM、Wiresharkの導入

1
2
$ sudo apt install -y kvm libvirt-bin bridge-utils virt-manager
$ sudo apt install -y wireshark
  • KVMはXRvの起動に必須、Wiresharkはキャプチャが取れると便利なので推奨、くらいの立ち位置。

GNS3の一式取得

1
2
3
$ cd ~
$ wget https://github.com/GNS3/gns3-gui/releases/download/v1.3.1/GNS3-1.3.1.source.zip
$ unzip GNS3-1.3.1.source.zip -d GNS3-1.3.1

GNS3インストール(Dynamips)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ cd ~/GNS3-1.3.1
$ unzip dynamips-0.2.14.zip
$ sudo apt install -y libelf-dev uuid-dev libpcap0.8-dev cmake
$ cd dynamips-0.2.14
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ sudo setcap cap_net_admin,cap_net_raw=ep /usr/local/bin/dynamips

GNS3インストール(GNS3-Server)

1
2
3
4
5
$ cd ~/GNS3-1.3.1
$ unzip gns3-server-1.3.1.zip
$ cd gns3-server-1.3.1
$ sudo apt install -y python3-setuptools python3-netifaces
$ sudo python3 setup.py install

GNS3インストール(GNS3-GUI)

1
2
3
4
5
$ cd ~/GNS3-1.3.1
$ unzip gns3-gui-1.3.1.zip
$ cd gns3-gui-1.3.1
$ sudo apt install -y python3-pyqt4
$ sudo python3 setup.py install

IOS XRvのイメージ配置

1
2
3
$ qemu-img convert -O qcow2 iosxrv-k9-demo-5.3.0.vmdk iosxrv-k9-demo-5.3.0.qcow2
$ mkdir -p ~/GNS3-1.3.1/images
$ mv iosxrv-demo.qcow2 ~/GNS3-1.3.1/images

GNS3の起動

1
$ gns3
  • iouyap-0.95.zip と vpcs-0.6.zip は必要に応じて準備してください。XRvを使う上では特に必要ありません。

そうだ!ついでに多目的に使えるFreeBSDベースのルータディストリビューションであるところの BSDRP も是非置いておこうよ!(露骨な宣伝)

1
2
3
$ unxz BSDRP-1.55-full-amd64-serial.img.xz
$ qemu-img convert -O qcow2 BSDRP-1.55-full-amd64-serial.img BSDRP-1.55-full-amd64-serial.qcow2
$ mv BSDRP-1.55-full-amd64-serial.qcow2 ~/GNS3/images

あ、VyOSが欲しい人はそういうのを置いておいても良いですよ。(この落差)

Cisco IOS XRvを起動させてみる。

Edit -> Preference -> QEMU VMs -> New からXRvのイメージを登録します。

  • KVM(qemu)のインストールが終わっていない場合は、途中で Qemu binary が空っぽになって先に勧めないことでしょう。

System Requirements に記載されている通り、メモリは3GB、NICにはe1000を使用しましょう。

  • メモリは2GB程度でも一応動きますが、1GBだと起動後に初期化できなくて死ぬと思います。
  • また、メモリ3GBを前提にプロセスが動いている可能性があり、一部機能を有効にした場合に特定メモリ空間へのアクセスに失敗することがあるかもしれません。
  • 最近であればメモリオーバーコミット出来るはずなので、とりあえず3GB割り当てておくのが正解かと思います。

あとは画面にドラッグアンドドロップして1個配置したら、緑の三角ボタンで起動します。

  • 立ち上がってくるまでには割と時間がかかります。また、初期化等を含めた起動が完了するまでは更に時間がかかります。

起動後はコンソール画面が使えるので、アイコンを右クリック -> Console を使うか telnet 127.0.0.1 2001 でアクセス出来るハズです。

XRvは初回起動時にユーザ名とパスワードを聞かれるので、とりあえず適当に何か入れましょう。:

1
2
3
Enter root-system username: 
Enter secret: 
Enter secret atain: 

また、ログインできる状態になっていても起動が完了した保証があるわけではなく、ハードウェアやプロセスの初期化処理等がバックグランドで実行されています。

1
SYSTEM CONFIGURATION COMPLETED

と言う表示が出るまでは大人しく待ちましょう。

先走ってコマンドを叩いてもこうなります。

1
2
3
4
5
6
7
8
RP/0/0/CPU0:ios#show route
Tue Apr 20 13:36:10.222 UTC

% No matching routes found

RP/0/0/CPU0:ios#show interface
Tue Apr 20 13:36:18.491 UTC
No interfaces found (): Unable to connect to server

大体、このような画面が得られれば問題ないですね。

SYSTEM CONFIGURATION COMPLETEDしてるところ

ログイン画面

バージョン情報とか

インタフェース情報とか

おしまい

あとは黒い画面と好きなだけ模擬戦をしましょう。

わいわい

今夜は君を寝かさないぜ!(寝たい)

Built with Hugo
テーマ StackJimmy によって設計されています。