EVE-NG BMS 环境
如果您尚未在 BMS 上安装 EVE-NG 5.x 或更高版本,请查看 下载链接 以访问专业或社区 ISO。
仅使用 ISO 文件并安装在 BMS 上。避免使用 OVA VM 映像,因为它们会导致不受支持的双嵌套问题。
将 VM 映像复制到 EVE-NG 环境
- 进入 vJunos-switch 下载链接 https://support.juniper.net/support/downloads/?p=vjunos 并选择最新的镜像,如下所示。

- 单击 “复制 ”以复制临时 URL,有效期为 10 分钟。
- 访问 SSH,以 root 身份连接到 EVE-NG BMS,以安装映像。将复制的 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
用作 hda.qcow2 VM 映像名称,这会导致集成开发环境 (IDE) 而不是 virtio 驱动程序环境。否则,自定义 Junos OS 将无法按照 vJunos-switch 的默认 Junos OS 配置一章中的说明运行。
为 VM 创建模板文件Create Template files for the VM
以 root 身份继续对 EVE-NG BMS 进行 SSH 访问。为受支持的 Intel 和不支持的 AMD 版本创建两个模板文件,如下所示。启动映像所需的唯一 Qemu 参数如下以粗体显示。UI 中为启用平滑关机的社区版本添加了 shutdown: 0 Stop-Command。否则,您可能会遇到 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 与瞻博网络 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 个接口,则无法使用生成的 vJunos 交换机在 Mist GUI 中构建园区交换矩阵配置。
下一步,您可以使用 vJunos-switch 支持站点中的原始 bash 脚本 make-config.sh 。该脚本将创建一个 IDE-HD 映像来加载您的自定义配置。
您可以通过链接下载图像。例如: https://webdownload.juniper.net/swdl/dl/anon/site/1/record/168885.html
由于脚本不会随每个 vJunos-switch 版本而更改,因此可以使用 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-switch 载入 Mist 云: 您可以直接将虚拟机连接到 Mist 云。然后,使用嵌入式设备采用命令将 VM 添加到清单中。查看“ vJunos-switch 的默认 Junos OS 配置 ”一章,然后在创建最终配置磁盘之前运行以下示例。
使用以下两个 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