EVE-NG BMS 環境
BMS に EVE-NG 5.x 以降をインストールしていない場合は、 ダウンロード リンク を確認して Professional または Community ISO にアクセスしてください。
ISO ファイルのみを使用し、BMS にインストールします。OVA VM イメージを使用すると、サポートされていない二重ネストの問題が発生するため、使用しないでください。
VM イメージを EVE-NG 環境にコピーする
- vJunosスイッチのダウンロード リンク https://support.juniper.net/support/downloads/?p=vjunos に移動し、下図のように最新のイメージを選択します。

- [ コピー ] をクリックして、10 分間有効な一時 URL をコピーします。
- SSH にアクセスして EVE-NG BMS に root として接続し、イメージをインストールします。以下のように、コピーしたURLを
wget "<download-url>"に埋め込みます。sudo -i # create a directoy with "vjunosswitch-version" pattern mkdir /opt/unetlab/addons/qemu/vjunosswitch-23.2 cd /opt/unetlab/addons/qemu/vjunosswitch-23.2 # download the image wget "https://cdn.juniper.net/software/vJunos-switch/23.2R1/vJunos-switch-23.2R1.14.qcow2?SM_USER=anon&__gda__=1697405150_8fa46e0fe03d658e6dd6280aef5aa151" # rename the image to hda.qcow2 NOT virtioa.qcow2 mv "vJunos-switch-23.2R1.14.qcow2?SM_USER=anon&__gda__=1697405150_8fa46e0fe03d658e6dd6280aef5aa151" hda.qcow2
VM イメージ名として hda.qcow2 を使用すると、virtio ドライバー環境ではなく統合開発環境 (IDE) になります。そうしないと、カスタムJunos OSが vJunosスイッチのJunos OSのデフォルト設定の章の説明どおりに動作しません。
VM のテンプレート ファイルを作成するCreate template files for the VM
引き続き、rootとしてEVE-NG BMS への SSH アクセスを行います。以下に示すように、サポートされている Intel バージョンとサポートされていない AMD バージョンの 2 つのテンプレート ファイルを作成します。イメージを開始するために必要な一意の Qemu パラメーターを、以下に太字で示します。UI の Stop-Command は、正常なシャットダウンを可能にするコミュニティバージョンに shutdown: 0 追加されます。そうしないと、 vJunosスイッチ仮想マシンの導入と機能の制限の章で説明されているような問題が発生する可能性があります。
cat <<EOF >/opt/unetlab/html/templates/intel/vjunosswitch.yml
---
type: qemu
description: Juniper vEX Switch
name: vEX
cpulimit: 4
icon: JunipervQFXpfe.png
cpu: 4
ram: 5120
eth_name:
- fxp0
eth_format: ge-0/0/{0-9}
ethernet: 11
console: telnet
shutdown: 0
qemu_arch: x86_64
qemu_version: 5.2.0
qemu_nic: virtio-net-pci
qemu_options: -machine type=pc,accel=kvm -serial mon:stdio -nographic -smbios type=1,product=VM-VEX -cpu IvyBridge,ibpb=on,md-clear=on,spec-ctrl=on,ssbd=on,vmx=on
...
EOF
cat <<EOF >/opt/unetlab/html/templates/amd/vjunosswitch.yml
---
type: qemu
description: Juniper vEX Switch
name: vEX
cpulimit: 4
icon: JunipervQFXpfe.png
cpu: 4
ram: 5120
eth_name:
- fxp0
eth_format: ge-0/0/{0-9}
ethernet: 11
console: telnet
shutdown: 0
qemu_arch: x86_64
qemu_version: 5.2.0
qemu_nic: virtio-net-pci
qemu_options: -machine type=pc,accel=kvm -serial mon:stdio -nographic -smbios type=1,product=VM-VEX -cpu IvyBridge,ibpb=on,spec-ctrl=on,ssbd=on,virt-ssbd=on,svm=on,erms=off
...
EOF
システム (および UI) に対して次のコマンドを実行して、テンプレートの変更を確認します。
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
オプション:カスタマイズした Junos OS 設定を添付する
vJunos-switchは、Juniper MXシリーズルーターに類似しており、デフォルトのJunos OS構成はほとんどありません。したがって、新しいVMを簡単に起動するには、以下に示すように、少なくとも最小Junos OS設定を使用してください。
次の例では、定義済みの Junos OS 設定で仮想設定イメージを作成します。
- パスワード「ABC123」を使用して、rootアカウントのSSHアクセスを有効にします。
- fxp0がDHCPリースを取得して、イメージへのSSHアクセスを許可できるようにします。
- 外部グローバル・ネーム・サーバーを設定します。
- LLDPがネットワーク内の他のノード上の各リンクを表示できるようにします。
cat <<EOF >juniper.conf system { host-name vjunos; root-authentication { encrypted-password "\$6\$DOvFAxW9\$HpxgOaGEe5L6MtDJqbWepS5NT6EW23rCuu69gwwGVFr7BpzY2MHS34mPrR0LKRqoGI19tRgpz3vFJkEueW9mQ1"; ## SECRET-DATA } services { ssh { root-login allow; protocol-version v2; } } name-server { 8.8.8.8; 9.9.9.9; } arp { aging-timer 5; } syslog { file interactive-commands { interactive-commands any; } file messages { any notice; authorization info; } } } interfaces { fxp0 { unit 0 { family inet { dhcp force-discover; } } } } protocols { lldp { interface all; } lldp-med { interface all; } } EOF
デフォルトの vJunos-switch イメージでは、最初の 10 個の ge-0/0/x インターフェイスのみがアクティブ化されます。これで十分です。しかし、Junos OS リリース 23.2 以降では、最大 96 個のインターフェイスをアクティブにできます。そのため、以下に示すようなコマンドを追加することで、より広い範囲を持ち、EVE-NGテンプレートを編集することができます。
set chassis fpc 0 pic 0 number-of-ports 96
この方法を使用して20を超えるインターフェイスを有効にした場合、Mist GUIで結果のvJunosスイッチを使用してキャンパスファブリック構成を構築することはできません。
次のステップでは、vJunosスイッチサポートサイトから make-config.sh されたオリジナルのbashスクリプトを使用できます。このスクリプトは、カスタム構成をロードするための IDE-HD イメージを作成します。
リンクから画像をダウンロードできます。次に例を示します。 https://webdownload.juniper.net/swdl/dl/anon/site/1/record/168885.html
スクリプトはvJunosスイッチのリリースごとに変わるわけではないため、base64でエンコードされたgzipファイルを使用し、以下の手順でスクリプトを作成できます。
cat <<EOF >make-config.sh.gz.uue H4sICG8BK2UAA21ha2UtY29uZmlnLnNoAI1T0W7TMBR9nr/iLO1DKy1pG97oOjRtMBWtHYKxF4So lzitaZ1ktpPC0P4dO3azMopEnqLre88599x7O8eDe54P7qlakQ7pQNA1C5Miz/gy8qGLovwp+XKl 0Uv6iIfxqxO8r3JeMok509tCrtUJpnkSmeTzzQZNsoJkismapZFDkYxqBgoHDsE0TblaI5OFMGFV leWGsxTfHXRk86ALUK1pYpQ0/6gNc6FwNwPPlaZ5wgx6peiS9fr4RY5YsioQfLYBvMaLdnDqwX3o DKfuJ7RKzgJT/oNrDMfkiSQbRvOqxD7shY3xfImqjKLIpFeiqHKNMEP4gO5sfns5/UiONoVi2pSG KbrXNzcfLt/ekSMpEMqsRvfT7fnVdH61F/F1T2RH+i2jfGOscNw+ON6riL3SkS3iGb6g28HxBDG+ jqFXLDfSrAVjknFCiKecLMRaM9EIC0sMaioHWpQL4gT881msUy5b4QNnGUlMopEy+uvhgYkq5GKJ xI3cuCPp1ojGaEa8H5NFa1KoVsXWJnXjhe/lje1l+NzLn7Y0TYl1pqI6oxpWRZgjqIUIU6pp8Gz6 YTQ3y3fOYrNUWSGFwWmWcVc6hvXXjDo4zO7GrtEo2BW1kzzIC/+9pHdY7Tn8jwIrwW+kuU27kJl5 6Km+xfP35cDigPSStB2RkUIlkvox22kdWNv8gejlI6L+bglbhn04P9M0IO5SCPkNKH2wR0EEAAA= EOF base64 -d make-config.sh.gz.uue make-config.sh.gz gunzip make-config.sh.gz cat make-config.sh
vJunosスイッチをMist Cloudにオンボードする場合:VMをMist Cloudに直接接続できます。次に、組み込みデバイス導入コマンドを使用して、VM をインベントリに追加します。「 vJunosスイッチのJunos OSデフォルト設定 」の章を確認し、次の例を実行してから、最終的な設定ディスクを作成します。
以下の 2 つの CLI コマンドを使用して、カスタム設定 hdb.qcow2 in と呼ばれるイメージを作成します。
chmod 777 make-config.sh ; ./make-config.sh juniper.conf hdb.qcow2 'juniper.conf' -> '/var/tmp/tmp.TYloe3JQtd/config/juniper.conf' Formatting 'hdb.qcow2', fmt=raw size=1048576 mkfs.fat 4.1 (2017-01-24) mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows /dev/loop4 has 64 heads and 32 sectors per track, hidden sectors 0x0000; logical sector size is 512, using 0xf8 media descriptor, with 2048 sectors; drive number 0x80; filesystem has 2 12-bit FATs and 4 sectors per cluster. FAT size is 2 sectors, and provides 502 clusters. There is 1 reserved sector. Root directory contains 512 slots and uses 32 sectors. Volume ID is f9fd5527, volume label vmm-data . Copying file(s) to config disk hdb.qcow2 ./ ./config/ ./config/juniper.conf Cleaning up... removed '/var/tmp/tmp.TYloe3JQtd/config/juniper.conf' removed directory '/var/tmp/tmp.TYloe3JQtd/config' removed directory '/var/tmp/tmp.TYloe3JQtd' removed directory '/var/tmp/tmp.SbTNcpocEl' Config disk hdb.qcow2 created ls -l *.qcow2 -rw-r--r-- 1 root root 4011065344 Oct 11 00:08 hda.qcow2 -rw-r--r-- 1 root root 1048576 Oct 14 21:20 hdb.qcow2 # again execute the permissions fix /opt/unetlab/wrappers/unl_wrapper -a fixpermissions