サマリ
Ubuntu 14.04.2 DesktopにGNS3 1.3.1を入れてIOS XRvが起動するところまで書きます。
はじめに
GNS3は適当に検索すると、ダウンロードしたけりゃユーザ登録しな、と書かれているのだけど、普通にGithubから手に入るからね。よろしくね。
https://github.com/GNS3/gns3-gui/releases
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な発言によれば、
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
と言うことらしいので、パートナー契約や製品購入をしていない一般人でも、デモ版に関しては私的なダウンロードや使用が可能です。
Warning
当初の
ダウンロードURL では、ダウンロードには有効なサービス契約が必要だと言われます。
この辺 のフォーラムの文脈からすると、XRvのデモ版を一般公開するにあたって安定的に供給可能なスペースの準備が出来ていないから、
upload.cisco.com
に空間を作りました。という流れだと解釈しています。
「その致命的に都合のいい解釈は間違っているよ」と言うCisco公式見解を知っている場合は教えて頂けると助かります。
XRvはCisco IOS XRv Overviewに記載がある通り、L2機能が動作しません。
厳密にどの機能が動作しないかははっきりしないものの、EoMPLSなどのL2VPNは動作しない可能性が高いです。(手元で確認した範囲では、EVPNなどはコンフィグは入るものの転送されませんでした)
Cisco IOS XRv routers do not support Layer 2 features.
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
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
|
Warning
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の起動
Warning
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が欲しい人はそういうのを置いておいても良いですよ。(この落差)
XRvを起動させてみる。
Edit -> Preference -> QEMU VMs -> New
からXRvのイメージを登録します。
Warning
KVM(qemu)のインストールが終わっていない場合は、途中で Qemu binary
が空っぽになって先に勧めないことでしょう。
System Requirements に記載されている通り、メモリは3GB、NICにはe1000を使用しましょう。
Note
メモリは2GB程度でも一応動きますが、1GBだと起動後に初期化できなくて死ぬと思います。
また、メモリ3GBを前提にプロセスが動いている可能性があり、一部機能を有効にした場合に特定メモリ空間へのアクセスに失敗することがあるかもしれません。
最近であればメモリオーバーコミット出来るはずなので、とりあえず3GB割り当てておくのが正解かと思います。
あとは画面にドラッグアンドドロップして1個配置したら、緑の三角ボタンで起動します。
Warning
立ち上がってくるまでには割と時間がかかります。また、初期化等を含めた起動が完了するまでは更に時間がかかります。
起動後はコンソール画面が使えるので、アイコンを右クリック -> 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
|
大体、このような画面が得られれば問題ないですね。
おしまい
あとは黒い画面と好きなだけ模擬戦をしましょう。
今夜は君を寝かさないぜ!(寝たい)