LGTM

Looks Good To Me

Vagrant Box の Juniper vQFX を、VMWare ESXi で起動するメモ

Juniper の vQFX10000 トライアル版community supported project として Vagrant で利用可能です。ただ VirtualBox provider のみのサポートであり、他ベンダーの VM と組み合わせてテストすることを考えると、ネットワーク設定が簡単な VMWare ESXi などで起動できると便利です。

設定を忘れて何度か試行錯誤してしまったため、メモしておきます。

本来はイメージを Juniper から直接入手すべきなのですが、

  • 評価版をすんなりダウンロードできない。サポートに連絡しないといけない
  • 面倒なので、Vagrant Cloud にあるバージョンで OK な場合は流用する

というだけの話です。

.vmdk のダウンロード

RE / PFE イメージをダウンロードします。

$ vagrant box add juniper/vqfx10k-re
$ vagrant box add juniper/vqfx10k-pfe

少ないですがバージョン選択肢があって、

box version RE Junos version PFE Junos version
0.3.0 17.4R1.16 17.4R1.16
0.2.0 15.1X53-D63.9 revoked
0.1.0 15.1X53-D60.4 15.1X53-D60.4

から選べます。

~/.vagrant.d/boxes/juniper-VAGRANTSLASH-vqfx10k-{re,pfe}/0.3.0/virtualbox/ に .vmdk が展開されます。同じ場所に VirtualBox 向け .ovf があり、これを参考にしつつ ESXi に設定する流れになります。

vSwitch / Port Group の作成

RE -- PFE 間で使う、内部接続の準備をします。

標準仮想スイッチの作成。VM 側で Mac Address をアサインできるよう、セキュリティポリシーを設定します。

セキュリティ ポリシー
無差別モードを許可 はい
偽装転送を許可 はい
MAC 変更を許可 はい

イメージのアップロード

後ほど vqfx-re / vqfx-pfe という名前で VM を作るとしてディレクトリーを作っておき、各々アップロードしておきます。

f:id:codeout:20191006070955p:plain

ディスク上にあまりファイルを書かないため さほど意味ないかもしれませんが、 thin provisiong に変換しつつイメージを置き換えます。

# ESXi にssh して

[root@esxi:~] cd /vmfs/volumes/datastore1/vqfx-re
[root@esxi:/vmfs/volumes/5d34e31a-944e599a-5f49-94c691ae50a2/vqfx-re] vmkfstools -i packer-virtualbox-ovf-1520879272-disk001.vmdk vqfx-re.vmdk -d thin
[root@esxi:/vmfs/volumes/5d34e31a-944e599a-5f49-94c691ae50a2/vqfx-re] rm packer-virtualbox-ovf-1520879272-disk001.vmdk

[root@esxi:/vmfs/volumes/5d34e31a-944e599a-5f49-94c691ae50a2/vqfx-re] cd ../vqfx-pfe/
[root@esxi:/vmfs/volumes/5d34e31a-944e599a-5f49-94c691ae50a2/vqfx-pfe] vmkfstools -i packer-virtualbox-ovf-1520878605-disk001.vmdk vqfx-pfe.vmdk -d thin
[root@esxi:/vmfs/volumes/5d34e31a-944e599a-5f49-94c691ae50a2/vqfx-pfe] rm packer-virtualbox-ovf-1520878605-disk001.vmdk

VM の作成

RE VM

「新規仮想マシンの作成」を行います。

ESXi 5.5 仮想マシン ( virtualHW.version = "10" ) にする必要があることに注意してください。

設定
互換性 ESXi 5.5 仮想マシン
ゲスト OS ファミリ その他
ゲスト OS のバージョン FreeBSD 11 より前のバージョン (64 ビット)

一旦ストレージを追加しておいて…

後から削除、さきほどアップロードした .vmdk を新規追加します。
( 追加直後はシックプロビジョニングと表示されますが、一度起動すればシンプロビジョニングとして認識されます )

CPU やメモリ設定は .ovf のものを転記。

設定
CPU 1
メモリ 1024MB
新規ハードディスク コントローラの場所 IDE コントローラ 0 マスター

後からの NIC 追加が非常に面倒なため、必要分を先に作成します。

設定
アダプタタイプ E1000

それぞれの NIC は、Junos 上からは上から順に 👇 のような対応になります。

  • 上から 1つめ、3つめがマネージメントインターフェイス
  • 上から 2つめが先ほど作成した RE--PFE 接続
  • xe-0/0/x は上から4 つめ以降

なことに注意してください。

NIC # Junos から見たInterface メモ
1 em0 マネージメント
2 em1 RE--PFE間接続
3 em2 マネージメント
4 em3, xe-0/0/0 10GE インターフェイス
5 em4, xe-0/0/1 10GE インターフェイス
... ... ...

( RE 起動直後は em3 として認識した NIC が、PFE 接続後 xe-0/0/0マッピングされる )

PFE VM

こちらも「新規仮想マシンの作成」

設定
互換性 ESXi 5.5 仮想マシン
ゲスト OS ファミリ LInux
ゲスト OS のバージョン Ubuntu Linux (64 ビット)

同じくディスクを追加しておいて削除、アップロードした .vmdk を新規追加します。

CPU やメモリ設定は .ovf のものを転記。

設定
CPU 1
メモリ 2048MB
新規ハードディスク コントローラの場所 IDE コントローラ 0 マスター

NIC は👇 のとおり。

設定
アダプタタイプ E1000

それぞれの NIC は、Junos 上からは上から順に 👇 のような対応になります。

NIC # Junos から見たInterface メモ
1 em0 マネージメント
2 em1 RE--PFE間接続

起動

RE へのログイン情報: root / Juniper

ライセンスについて

"community supported project" とは何か調べてませんが、

  1. vQFX イメージ自体は Juniper がライセンスし、 Vagrant Cloud に公開している
  2. Vagrantfile は Apache License 2 として github にホストされ、 コミュニティでメンテしている

というふうに見えます。

1 の EULA には

k . Other Use Restrictions and Prohibitions. You > shall not, directly or indirectly: i. Decompile, disassemble or reverse engineer the Software or modify, change, unbundle, or create derivative works based on the Software, except as expressly permitted by applicable law without the possibility of contractual waiver.

のような条項がありますが、 .vmdk をそのまま使うぶんにはおそらく大丈夫だろうと思っています。