VIRL に RouterOS を登録してシミュレーション環境を作るには
VIRL に RouterOS を追加するとルーティングの挙動確認等、論理的な検証は非常に楽になります。そこで今回は VIRL 上で動作する RouterOS の動作イメージを作成し、それを VIRL へ登録してみます。VIRL をお持ちで無い方は GNS3 でも近い手順で似たような検証環境を作れると思います(未検証)。
一点だけ、注意点があります。RouterOS の仕様でライセンス未登録状態だと 24 時間しか利用出来ないそうです。ですが、少なくても私は「短時間で作る・壊すを繰り返す」為、ライセンス未登録状態でも全く困っていません。
環境¶
以下の環境で作業します。VIRL と Ubuntu のいずれも ESXi 上で動作しています。
- vSphere 6 ESXi
- Cisco VIRL 0.9.242
- Ubuntu 14.04.2 LTS(x86_64)
Ubuntu はイメージの作成に利用します。X はインストールしておらず、CLI のみ利用しています。
ゲスト OS 上で仮想化支援機能を有効化する¶
今回は「ESXi 上の Ubuntu で更に QEMU を利用するという」ネスト環境になっています。こういった場合は /vmfs/volumes/datastore1/[ゲスト OS 名]/[ゲスト OS 名].vmx ファイルに以下を追記し、ゲスト OS でも仮想化支援機能を利用出来るようにします。ファイルの編集はゲスト OS がシャットダウンされた状態で実施し、修正が完了したらゲスト OS を起動します。
1 |
|
起動しなおした Ubuntu で kvm-ok を実行し、以下の表示になれば仮想化支援機能が有効になっており、QEMU が利用可能なはずです。
1 2 3 |
|
QEMU のインストール¶
ここからは Ubuntu 上で作業します。RouterOS のイメージを作成する為に QEMU をインストールします。
1 |
|
関連するライブラリが多数、インストールされますが QEMU 関連では以下がインストールされました。
1 2 3 4 5 6 |
|
イメージの作成¶
Mikrotik のダウンロードサイトから RouterOS をダウンロードします。今回は 6.30.1 をダウンロードしました。
1 |
|
チェックサムは以下の通りでした。
1 2 3 4 5 |
|
QEMU で先程ダウンロードした .iso イメージをマウントした仮想マシンを作成します。
1 |
|
仮想マシンを起動します。
1 |
|
起動した仮想マシンへ VNC 接続します。VNC クライアントには TigerVNC を利用しました。接続先は「Ubuntu のアドレス」「5901/TCP」を指定します。仮に Ubuntu のアドレスが 192.168.1.1 だとすると「192.168.1.1:5901」を指定し、Connect ボタンを押します。
RouterOS のインストーラが起動しています。矢印キーとスペースキーを使って以下のパッケージを選択(「X」マークが入った状態)にします。パッケージの選択が完了したら「i」キーを押してインストーラを進めます。
- system
- ppp
- dhcp
- advanced-tools
- ipv6
- mpls
- multicast
- ntp
- routing
- security
- user-manager
「Do you want to keep old configuration? [y/n]:」と聞かれます。ここは「n」と入力して進めます。
「Warning: all data on the disk will be erased! Continue? [y/n]:」と聞かれます。ここは「y」と入力して進めます。
ディスクのフォーマットに続き、パッケージのインストールが進行しますが、然程時間はかからずに完了するはずです。「Software installed. Press ENTER to reboot」と表示されますが、何も入力せずにおきます。
Ubuntu のシェルに戻ります。乱暴ですが、Ctrl + c を入力して QEMU を停止します。
1 2 |
|
イメージは約 37MB になっていました。これで RouterOS イメージの作成は完了です。
1 2 |
|
完成したイメージは SCP 等でローカルに回収しておくと後々、便利です。
VIRL への登録¶
ブラウザで VIRL の UWM(User Workspace Management)へログインします。RouterOS 用の Subtype を登録すべく、メニューから「Subtypes」を選択し、「server」の右側にあるボタンから「Specialize」を選択します。
以下のように表示されるはずです。
RouterOS 用に幾つかの項目を以下のようにカスタマイズします。
項目 | デフォルト値 | 変更後の値 |
---|---|---|
Name of new subtype | server | RouterOS |
Name of management interface | eth0 | eth1 |
First dat interface number | 1 | 2 |
Name of icon for GUI | app_server | iosv |
Virtual interface model | virtio | e1000 |
Main disk bus model | virtio | ide |
RAM (MB) allocated per node | 2048 | 1024 |
Name of default image | server | RouterOS |
Name of default flavor | server | RouterOS |
具体的には以下のように変更しました。赤枠はデフォルト値から変更した箇所です。
RouterOS 用の Subtype 作成が正常に完了すると、以下のように表示されるはずです。
次はイメージの登録を行います。UWM の「Images」メニューから「Add」を押します。
以下のように表示されるはずです。
RouterOS 用に幾つかの項目を以下のようにカスタマイズします。
項目 | デフォルト値 | 変更後の値 |
---|---|---|
Subtype | ASAv | RouterOS |
Release | (N/A) | 6.30.1 |
Source | File on server | Local Image file |
具体的には以下のように変更しました。赤枠はデフォルト値から変更した箇所です。「Source」から「Local Image file」を選択するとローカル PC からイメージファイルをアップロードする為の「Image File」ボタンが表示されますので、これをクリックして作成済みの RouterOS イメージ(今回は「RouterOS-6.30.1.img」)をアップロードします。
これで UWM 側の設定は完了です。
VMMaestro の設定¶
ここからは VMMaestro で作業します。設定画面の「Node Subtypes」を選択すると概ね、以下のようになっているはずです。
「Fetch from Server」ボタンをクリックすると「Update the local subtype data based on the currently-configured simulation engine? Your local subtype definitions may be modified, but none will be removed.」と表示されるので「OK」をクリックします。
これで RouterOS 用に作成した Subtype が表示されるはずです。
あとは IOSv 等と同様に、Design ビューから RouterOS を配置して利用すれば OK です。
RouterOS の状態確認¶
/system routerboard print や /system resource print の出力結果は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|