Cisco VIRL (Virtual Internet Routing Labo) を VMware Workstation 12.5 にインストールする

これから CCIE 取得を目指しています。
まだ CCENT 認定ですが。。。

Don’t complicate things.

とあるように、自分が何やってんのかわかっている場合を除いて余計なことはすんなよと書いてある。

2016-09-25_19h01_37

Step 1:  Get Started

ちなみに VirtualBox には対応していない。
Vt-x/AMDv が有効になっていることを確認すること。
つまり Vt-x/AMDv の仮想化が有効になっていることが必須です。

2016-09-25_19h25_23

Step 3:  Create and Configure Virtual Networks

5 つネットワークを作成する。

VMnet8 は NAT で VIRL 仮想マシンにホスト PC を通じたインターネット接続を提供する。
その他 4 つのネットワークは VIRL に外部 L2, および L3 のコネクティビティを提供する。
これらは

Flat
Flat1
SNAT
クラスタリング INT

すでに VMnet1 が存在していたらナンバリングを1つずつずらす。
いずれも ホストオンリーネットワーク とする。

VMnet1
172.16.1.0
255.255.255.0
ローカル DHCP サービスを使用して IP アドレスを VM に配布するのチェックが外れていることを確認する。

VMnet2 172.16.2.0/24
VMnet3 172.16.3.0/24
VMnet4 172.16.10.0/24

2016-09-25_19h02_43

2016-09-25_19h03_20

2016-09-25_19h03_44

2016-09-25_19h13_39

2016-09-25_19h15_30

最終的に以下のような感じになればいい。

2016-09-25_19h17_33

Step 4:  Deploy the VIRL OVA

いよいよ Cisco VIRL の OVA (Open Virtualization Format Archive) をインポートする。
事前に VIRL の OVA ファイルとライセンスファイル *.pem ファイルをダウンロードしておくこと。

https://virl.mediuscorp.com/my-account/

ちなみに OVA はアニメの Original Video Animation のことではないので注意。
OVA といいつつハイパーバイザーによってインポートできないことが多々にしてあり、ぜんぜんオープンな気がしないんだよなあ。

virl.1.2.64.pc.ova

2016-09-25_19h34_21

2016-09-25_19h36_58

VIRL 自身の起動やらなんやらの読み込みは速いことに越したことはないので、新しい仮想マシンのストレージパスには
容量が許すなら SSD 領域自身を指定することを強くおすすめする。

2016-09-25_19h40_38

インポートが終わるまで適当に時間を潰す。

2016-09-25_19h42_04

インポート完了、やったね。

2016-09-25_19h44_29

VIRL を起動したい気持ちを抑えて設定を確認・調整する。

2016-09-25_19h45_07

2016-09-25_19h51_00

最初のネットワークアダプタは NAT になっているのを確認したらそのままそっとしておく。
ネットワークアダプタ2~5はインポート直後はブリッジになっているので、さっき作った VMnet1~4 にそれぞれ対応付ける。

2016-09-25_19h59_56

次に Intel VT-x/EPT の仮想化が有効になっていることを確認する。

2016-09-25_20h26_40

そして最後はCPUとメモリ。
潤沢にあればあるほどいい。

最低限のスペックは 2 vCPU、 4GB だが、4 vCPU, 8GB かそれ以上のリソースを割り当てることが要求されている。
VMware Workstation の推奨メモリ容量は無視しろと書いてある。
特に他に立ち上げる VM も今のところ考えていないので私は 8vCPU, 16GB の割当てをおこなった。

2016-09-25_20h30_38

Step 5:  Prepare VIRL for Activation

VM を起動して ID: virl PASS: VIRL でログイン。

2016-09-25_20h34_28

ログイン後に表示される画面。バイオハザードマークが禍々しい。
おもむろに xterm を立ち上げる。

2016-09-25_20h35_27

以下のコマンドを入力して出力が以下のように出ればひとまずここまでの手順は OK 。
KVM (Kernel Based Virtual Machine) のアクセラレーション利用可能の表示が出なければ何かがおかしいので手順に沿ってやったか見直せと書いてある。

virl@virl:~$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

2016-09-25_20h40_54

次にインターネットへの接続性を確認する。
VIRL は定期的に Cisco の SaltStack サーバーと通信をしてアクティベーションの妥当性を確認する必要がある。

ping -c 4 www.cisco.com
curl http://curltools.com/get-ip
wget --spider --no-verbose http://www.google.com

2016-09-25_20h45_14

VIRL のインストラクションにはないが、ここでひとつチューニングをしておく。
VIRL の割当メモリを使い果たすまで Swap を使うなという設定を入れる。
別にすぐ VIRL を割当メモリ目いっぱいまで酷使するわけでなければこの手順はすっ飛ばしてかまわない。
公式の手順にも載ってないし。

virl@virl:~$ sudo -i
root@virl:~# cat /proc/sys/vm/swappiness 
60

キーボードが英字配列になっていることに注意をする。
イコールは日本語キーボードの場合チルダ ~ のキーを Shift 無しでタイプした時に出てくる。
また、保存するときのコロン : はセミコロン ; のキーを Shift キー押しながらタイプすると入力できる。
また、 vi は vim でないことに注意する。
とても使いづらい。

root@virl:~# vi /etc/sysctl.conf
vm.swappiness = 0
root@virl:~# sysctl -p
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.ip_forward = 1
vm.swappiness = 0
root@virl:~# cat /proc/sys/vm/swappiness 
0
root@virl:~# exit

中身をちょっと見るとわかるが、 Ubuntu Linux 14.04 LTS (Trusty) がベースとなっており、 OpenStack がインストールされているようだ。
なるほどなあ。

virl@virl:~$ cat /etc/debian_version 
jessie/sid
virl@virl:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"

Step 6:  Activate VIRL

VIRL の IP アドレスを調べてホスト側のブラウザからその IP にアクセスする。

2016-09-25_21h04_45

Web 管理画面が見えるはず。
圧倒的 Bootstrap 感。

2016-09-25_21h07_23

User Workspace Management を選択し、以下のログイン情報を入力する。

ID: uwmadmin
PASS: password

2016-09-25_21h10_05

2016-09-25_21h12_10

各フィールドを埋める。

Salt ID and domain には pem ファイルの拡張子抜きのファイル名を、
Customer email Address は読んで字のごとく、
List of Cisco salt masters は地理的に近いものを適当に選んで突っ込む。
正直日本の場合 us のほうでとくに問題はないと思われる。

us-1.virl.info, us-2.virl.info, us-3.virl.info, us-4.virl.info
eu-1.virl.info, eu-2.virl.info, eu-3.virl.info, eu-4.virl.info

Master sign public key はドントタッチミー。
Minion private RSA key in PEM format には pem ファイルの中身をまんまコピペする。

そして Reset ボタンクリック。

2016-09-25_21h21_42

どこか 1 つでも Salt サーバーとライセンスの検証ができていれば OK 。

2016-09-25_21h25_35

Step 7:  Customize the VIRL Configuration (Optional)

特筆して変更するところはないが、 16GB より多くのメモリを搭載しているなら RAMdisk オプションが使えるようだ。
インメモリディスクを使用することで、シミュレーションのスタートアップタイムを減らせるらしい。
速いに越したことはないのでここでさらにメモリを 16GB -> 24GB にして RAMdisk をオンにした。

24 * 1024 = 24576 MB

2016-09-25_21h38_20

まずメンテナンスモードを有効にしろとある。
メンテナンスモードを有効にする。
そして Apply 。

2016-09-25_21h40_59

オールグリーンになったらシステムリブートしろやと出てくるので、おとなしく再起動する。
WebUI 上の Reboot ボタンを押すだけで VIRL 仮想マシンをリブートできるみたい。
素晴らしいな・・・。

2016-09-25_21h44_07

リブート終わったら Disable maintenance mode にし、 OK ボタンをクリック

2016-09-25_21h46_21

Step 8:  Validate the VIRL Installation

VIRL が正しくインストール・設定できたことを以下のコマンドで検証せよとある。

OpenStack の Neutron ネットワーキングモジュールの動作確認ですね。
xterm をおもむろに立ち上げる。
alive のところが全部スマイリーマーク :-) になっていれば OK 。

virl@virl:~$ neutron agent-list
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+
| id                                   | agent_type         | host | alive | admin_state_up | binary                    |
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+
| 73edf60e-2951-4dfb-8ce7-a2fa58f9199a | DHCP agent         | virl | :-)   | True           | neutron-dhcp-agent        |
| be125ca6-3381-4e8a-95d1-6de54bd99788 | Linux bridge agent | virl | :-)   | True           | neutron-linuxbridge-agent |
| c3195bd1-f054-4a0b-85ae-3935ecbe260f | Metadata agent     | virl | :-)   | True           | neutron-metadata-agent    |
| defeaa84-8b4c-4c5c-b101-b1555520a710 | L3 agent           | virl | :-)   | True           | neutron-l3-agent          |
+--------------------------------------+--------------------+------+-------+----------------+---------------------------+

2016-09-25_21h52_43

そして VIRL STD と UWM サービスがすべて listening ステートになっていることを確認する。
インメモリ KVS である Redis も内部で動いていることが見て取れる。

virl@virl:~$ sudo virl_health_status | grep listening
...
(snip)
virl-vis-webserver listening on port 19402
ank-cisco-webserver listening on port 19401
STD server on url http://localhost:19399 is listening, server version 0.10.27.8
UWM server on url http://localhost:19400 is listening, server version 0.10.27.8
Webmux server on url http://localhost:19403 is listening
Redis server on 127.0.0.1:6379 is listening

2016-09-25_21h56_55

Display the VIRL license configuration

以下の点を確認する。

‘hostid’ が pem ファイルのファイル名部分と同じになっていること
‘product-capacity’ がライセンス上で許可されているノード数(私の場合は 30 )になっていること
‘product-expires’ ‘7’ となっていること。(7 日で切れるということ。切れたらまたソルトサーバーにバリデートしにいく)

virl@virl:~$ sudo virl_health_status | grep -A 4 -e hostid -e product
...
(snip)
hostid : ********.virl***.info
product-license : [u'us-1.virl.info', u'us-2.virl.info', u'us-3.virl.info', u'us-4.virl.info']
product-capacity : 30
product-expires : 7
features : [u'Cariden.MATE.import', u'Cariden.MATE.export']
product-usage : 0
uwm-url : http://192.168.200.128:19400/admin/salt/

2016-09-25_22h06_04

Step 8:  Install and Configure VM Maestro

ネットワークのトポロジを作成、シミュレーションするツール、 VM Maestro をインストールする。
Maestro とは芸術家、専門家、音楽の指揮者等の意味があるようだ。

というか、 VM Maestro のスプラッシュに指揮者のシルエットが出るようになっている。 最近はスプラッシュが出なくなったようだ。

2016-09-25_22h38_53

ブラウザで VIRL Server の WebUI にアクセスして、 VM Maestro クライアントをインストールするプラットフォームに応じたバイナリをダウンロードする。
ここでは Windows x64 アーキテクチャと仮定する(たぶんそんなに変わらない)。

2016-09-25_22h09_41

2016-09-25_22h11_30

ダウンロードしたやつを普通にインストール。

これもベースは Eclipse となっている。
オープンソース活用しまくりだな。

VM Maestro を立ち上げてライセンスアグリーメントに同意して、匿名のレポート送るか聞かれるので、チェックを入れてやめろとしておく。
文字化けしてるし。

こいつはクライアントなので、先程 VMware Workstation 上にインストールした VIRL サーバーなしには生きていけない。
接続先を VIRL サーバーに変えてやる必要がある。

2016-09-25_22h14_41

ID, パスワードは以下でよい、 IP アドレスはさっき調べた VIRL サーバーの IP アドレスを入力。

ID: guest
PASS: guest

そしてサービスへの接続チェックがオールグリーンになれば OK 。

2016-09-25_22h20_33

なんか Eclipse の Secure Storage にマスターパスワードが保存されたらしいので、リカバリ用の秘密の質問を入力するか聞かれるのでとりあえず Yes としておいた。

2016-09-25_22h21_49

2016-09-25_22h23_30

最後にやること

以下の手順で Node Subtype の一覧をデフォルトにリセットして、 VIRL ホストで利用可能な node sub-types をすべて再取得する必要がある。

File -> Preferences を開く。
まずは Restore Defaults でリセットする。

2016-09-25_22h30_49

そして VIRL サーバーからサブタイプの一覧を取得する。

2016-09-25_22h32_45

シミュレーションをちょっとやってみよう

RAMdisk を enable にした状態。
8 vCPU
24 GB

すべてのノードが起動するまでに要した時間はおよそ 1 分程度。

(INFO) [Sep/25/2016 13:43:37] simulation "topology-97p7fh": nodes can start
(INFO) [Sep/25/2016 13:43:43] Starting node "~mgmt-lxc"
(INFO) [Sep/25/2016 13:43:44] Starting node "iosv-1"
(INFO) [Sep/25/2016 13:43:49] Starting node "iosv-2"
(INFO) [Sep/25/2016 13:43:54] Starting node "iosv-3"
(INFO) [Sep/25/2016 13:44:00] Starting node "iosvl2-1"
(INFO) [Sep/25/2016 13:44:07] Starting node "server-1"
(INFO) [Sep/25/2016 13:44:07] Node "iosv-1" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:07] Node "iosv-2" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:07] Node "iosv-3" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:07] Node "iosvl2-1" state changed from ABSENT to BUILDING
(INFO) [Sep/25/2016 13:44:07] Node "~mgmt-lxc" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:12] Starting node "server-2"
(INFO) [Sep/25/2016 13:44:17] Starting node "server-3"
(INFO) [Sep/25/2016 13:44:36] Node "iosvl2-1" state changed from BUILDING to ACTIVE
(INFO) [Sep/25/2016 13:44:36] Node "server-1" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:36] Node "server-2" state changed from ABSENT to ACTIVE
(INFO) [Sep/25/2016 13:44:36] Node "server-3" state changed from ABSENT to ACTIVE

ルーター右クリックでコンソールポートに接続できる。

2016-09-25_22h57_16

10.1.0.0/24 のマルチアクセスネットワークを想定して IP アドレスをルーターに設定して ping を打ってみたところ。

2016-09-25_22h54_57

お疲れ様でした。

Tips

あとの普段のシミュレーション自体は VIRL の仮想マシンが立ち上がっていればよいので、とくに Linux にログインする必要もなければ、 WebUI にログインする必要もない。

参考サイト

  1. VIRL via VMware Workstation
  2. VIRL | CCIEおじさん日記

CCENT 合格した(ICND1 v3.0, 100-105J)

100-105 – Interconnecting Cisco Networking Devices Part 1

CCENT合格!新試験の下見で来たからあんまり期待してなかったけど、合格できてよかった。

いきなりCCNAはやっぱり無謀みがある。

ICND1は旧試験の知識(ICND1, ICND2両方)とシミュレーション3問ぐらい出るって知っていればなんとか解けた。
スコアは903程度。
今回はマーカーボードも活用した。
腹が減っていたので近くのすき家で牛丼大盛りをかきこんで満たされてからいざ試験会場へ。
試験センターで当日その場で予約して現金払いした。
RFCの規格番号答える問題は年表覚えるみたいでやっぱり苦手だな。
フレームリレーは無くなったけど、相変わらずシリアル接続は出てきたので注意が必要。
真新しい点としては無線の設問が出たくらいかな。
でも常識的な単語知ってれば解ける問題なので大丈夫だった。
それより2万近い受験料が痛い。。。
受かってよかったわ。

あと、RIPv2 がシミュレーション問題で出てきた。