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 を起動します。
vhv.enable = "TRUE"
起動しなおした Ubuntu で kvm-ok を実行し、以下の表示になれば仮想化支援機能が有効になっており、QEMU が利用可能なはずです。
# kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
QEMU のインストール
ここからは Ubuntu 上で作業します。RouterOS のイメージを作成する為に QEMU をインストールします。
apt-get -y install qemu-system-x86
関連するライブラリが多数、インストールされますが QEMU 関連では以下がインストールされました。
# dpkg -l | grep qemu
ii ipxe-qemu 1.0.0+git-20131111.c3d1e78-2ubuntu1.1 all PXE boot firmware - ROM images for qemu
ii qemu-keymaps 2.0.0+dfsg-2ubuntu1.14 all QEMU keyboard maps
ii qemu-system-common 2.0.0+dfsg-2ubuntu1.14 amd64 QEMU full system emulation binaries (common files)
ii qemu-system-x86 2.0.0+dfsg-2ubuntu1.14 amd64 QEMU full system emulation binaries (x86)
ii qemu-utils 2.0.0+dfsg-2ubuntu1.14 amd64 QEMU utilities
イメージの作成
Mikrotik のダウンロードサイトから RouterOS をダウンロードします。今回は 6.30.1 をダウンロードしました。
curl -O http://download2.mikrotik.com/routeros/6.30.1/mikrotik-6.30.1.iso
チェックサムは以下の通りでした。
# md5sum mikrotik-6.30.1.iso
e7491cc0e8d17ba87cc71d3c96958c2f mikrotik-6.30.1.iso
# openssl sha1 mikrotik-6.30.1.iso
SHA1(mikrotik-6.30.1.iso)= e74a0ff498d0d8e4109a5a72179cb0772bbfc40a
QEMU で先程ダウンロードした .iso イメージをマウントした仮想マシンを作成します。
qemu-img create -f qcow2 RouterOS-6.30.1.img 200M
仮想マシンを起動します。
qemu-system-i386 -m 512 -enable-kvm -boot d -cdrom mikrotik-6.30.1.iso RouterOS-6.30.1.img -vnc :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 を停止します。
# qemu-system-i386 -m 512 -enable-kvm -boot d -cdrom mikrotik-6.30.1.iso RouterOS-6.30.1.img -vnc :1
^Cqemu: terminating on signal 2
イメージは約 37MB になっていました。これで RouterOS イメージの作成は完了です。
# ls -hl RouterOS-6.30.1.img
-rw-r--r-- 1 root root 37M Jul 20 16:41 RouterOS-6.30.1.img
完成したイメージは 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 の出力結果は以下の通りです。
[admin@MikroTik] > /system routerboard print
routerboard: no
[admin@MikroTik] > /system resource print
uptime: 35s
version: 6.30.1
build-time: Jul/14/2015 11:22:46
free-memory: 1876.8MiB
total-memory: 1894.2MiB
cpu: QEMU
cpu-count: 1
cpu-frequency: 0MHz
cpu-load: 2%
free-hdd-space: 135.8MiB
total-hdd-space: 166.7MiB
write-sect-since-reboot: 8208
write-sect-total: 8208
architecture-name: x86
board-name: x86
platform: MikroTik
コメント