From 81ca9f44a8eb4f2d4bc9b0369814b0c65fb4cd79 Mon Sep 17 00:00:00 2001 From: Kelvin Tran Date: Mon, 15 Dec 2025 20:11:10 -0600 Subject: [PATCH 1/4] Add vJunos-Evolved node definition --- .../juniper/vJunos-Evolved/README.md | 32 ++++++++ .../juniper/vJunos-Evolved/vjunos-evolved.yml | 74 +++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 node-definitions/juniper/vJunos-Evolved/README.md create mode 100644 node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml diff --git a/node-definitions/juniper/vJunos-Evolved/README.md b/node-definitions/juniper/vJunos-Evolved/README.md new file mode 100644 index 0000000..e301d67 --- /dev/null +++ b/node-definitions/juniper/vJunos-Evolved/README.md @@ -0,0 +1,32 @@ +# vJunos-Evolved + +This directory contains the following node definition: +* `vjunos-evolved.yml` - vJunos-Evolved virtual router (virtualized PTX10001=36MR router running Junos OS Evolved) + +## Image Availability + +The image for the vJunos-Evolved router is available as a free download directly from HPE/Juniper's website. The link is included below: + +https://support.juniper.net/support/downloads/?p=vjunos-evolved + +## Notes + +Tested with vJunos-Evolved running Junos OS Evolved 25.2R1.8-EVO. It may take a few minutes after the login prompt is initially available for all of the nested VMs (i.e., the forwarding plane) to start. Until everything is ready, you won't see any of the interfaces available in `show interfaces terse`. + +You **MUST** be running a version of CML that supports EFI boot. (Tested on version 2.9.1). It is recommended that you run the image on a bare metal instance of CML (i.e., without nested virtualization). Otherwise, the image may fail to boot. + +### VERY IMPORTANT!!! MUST READ!!! + +The vJunos-Evolved **requires** EFI/UEFI boot to be enabled in order to properly start up. The node definition has the `efi_boot: true` option set. Additionally, CML comes with the correct OVMF EFI firmware files required to boot the vJunos-Evolved node using UEFI. However, by default, CML is not configured to use these firmware files when booting the node. As such, prior to booting the node, you must configure CML according to the following steps: + +1. Ensure that the SSH service for the underlying Linux platform of the CML controller is enabled. This is **NOT** the same as the terminal server/SCP service available on the standard SSH port (tcp/22). The CML server should be listening for SSH requests on TCP port 1122 +2. Use SSH to connect to the Linux CLI of the CML server +3. Run the following commands to define the appropriate EFI firmware files for the vJunos-Evolved node type in the CML configuration. The folder name is *VERY* important - it must match the ID of the node definition + +``` +cd /usr/share/edk2/ovmf +mkdir vjunos-evolved +cp OVMF-pure-efi.fd vjunos-evolved/efi_code.fd +cp win11/efi_vars.fd vjunos-evolved/efi_vars.fd +``` +4. If you haven't already, import the node definition. Additionally, import the vJunos-Evolved qcow2 image downloaded from Juniper's website and create the associated image definition. You're good to start the node, at this point! \ No newline at end of file diff --git a/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml b/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml new file mode 100644 index 0000000..c062d08 --- /dev/null +++ b/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml @@ -0,0 +1,74 @@ +id: vjunos-evolved +boot: + timeout: 60 + completed: + - 'login:' + uses_regex: false +sim: + linux_native: + libvirt_domain_driver: kvm + driver: nxosv9000 + disk_driver: virtio + efi_boot: true + ram: 8192 + cpus: 4 + cpu_limit: 100 + nic_driver: virtio + enable_rng: true + enable_tpm: false + parameters: + smbios.bios.vendor: Bochs + smbios.bios.version: Bochs + smbios.chassis.manufacturer: Bochs + smbios.system.manufacturer: Bochs + smbios.system.product: Bochs + smbios.system.serial: chassis_no=0:slot=0:type=1:assembly_id=0x0D20:platform=251:master=0:channelized=no +general: + nature: router + description: vJunos-Evolved (vPTX) + read_only: false +configuration: + generator: + driver: null +device: + interfaces: + serial_ports: 1 + physical: + - re0:mgmt-0 + - et-0/0/0 + - et-0/0/1 + - et-0/0/2 + - et-0/0/3 + - et-0/0/4 + - et-0/0/5 + - et-0/0/6 + - et-0/0/7 + - et-0/0/8 + - et-0/0/9 + - et-0/0/10 + - et-0/0/11 + - et-0/0/12 + has_loopback_zero: true + min_count: 3 + default_count: 13 + loopback: + - lo +ui: + label_prefix: vjunosevo- + icon: router + label: vJunosEvolved + visible: true +inherited: + image: + ram: true + cpus: true + data_volume: true + boot_disk_size: true + cpu_limit: true + node: + ram: true + cpus: true + data_volume: true + boot_disk_size: true + cpu_limit: true +schema_version: 0.0.1 From eac03c70a2c1cf0539bf52e68e7e058dccc009f1 Mon Sep 17 00:00:00 2001 From: Kelvin Tran Date: Mon, 15 Dec 2025 20:18:01 -0600 Subject: [PATCH 2/4] Fix simulation driver in node definition for vJunos-Evo --- node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml b/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml index c062d08..7d8ab4d 100644 --- a/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml +++ b/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml @@ -7,7 +7,7 @@ boot: sim: linux_native: libvirt_domain_driver: kvm - driver: nxosv9000 + driver: server disk_driver: virtio efi_boot: true ram: 8192 From 289792df923ae1033619d4ebabcc9bdb51e921d1 Mon Sep 17 00:00:00 2001 From: Kelvin Tran Date: Mon, 15 Dec 2025 21:48:54 -0600 Subject: [PATCH 3/4] Add instruction to launch into root CLI --- node-definitions/juniper/vJunos-Evolved/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/node-definitions/juniper/vJunos-Evolved/README.md b/node-definitions/juniper/vJunos-Evolved/README.md index e301d67..ef6fe0d 100644 --- a/node-definitions/juniper/vJunos-Evolved/README.md +++ b/node-definitions/juniper/vJunos-Evolved/README.md @@ -21,7 +21,8 @@ The vJunos-Evolved **requires** EFI/UEFI boot to be enabled in order to properly 1. Ensure that the SSH service for the underlying Linux platform of the CML controller is enabled. This is **NOT** the same as the terminal server/SCP service available on the standard SSH port (tcp/22). The CML server should be listening for SSH requests on TCP port 1122 2. Use SSH to connect to the Linux CLI of the CML server -3. Run the following commands to define the appropriate EFI firmware files for the vJunos-Evolved node type in the CML configuration. The folder name is *VERY* important - it must match the ID of the node definition +3. Run the `sudo -s` command and type in the password of the `sysadmin` user to launch into the root CLI +4. Run the following commands to define the appropriate EFI firmware files for the vJunos-Evolved node type in the CML configuration. The folder name is *VERY* important - it must match the ID of the node definition ``` cd /usr/share/edk2/ovmf From e14822b6d55a02b03444ab090b9d27a0000546a4 Mon Sep 17 00:00:00 2001 From: Kelvin Tran Date: Fri, 16 Jan 2026 22:04:46 -0600 Subject: [PATCH 4/4] Add Ariadne fixes --- node-definitions/juniper/vJunos-Evolved/README.md | 14 ++++++++++++-- .../{vjunos-evolved.yml => vjunos-evolved.yaml} | 0 2 files changed, 12 insertions(+), 2 deletions(-) rename node-definitions/juniper/vJunos-Evolved/{vjunos-evolved.yml => vjunos-evolved.yaml} (100%) diff --git a/node-definitions/juniper/vJunos-Evolved/README.md b/node-definitions/juniper/vJunos-Evolved/README.md index ef6fe0d..299ca98 100644 --- a/node-definitions/juniper/vJunos-Evolved/README.md +++ b/node-definitions/juniper/vJunos-Evolved/README.md @@ -9,6 +9,8 @@ The image for the vJunos-Evolved router is available as a free download directly https://support.juniper.net/support/downloads/?p=vjunos-evolved +Download the "vJunosEvolved KVM image" (qcow2 format) image. + ## Notes Tested with vJunos-Evolved running Junos OS Evolved 25.2R1.8-EVO. It may take a few minutes after the login prompt is initially available for all of the nested VMs (i.e., the forwarding plane) to start. Until everything is ready, you won't see any of the interfaces available in `show interfaces terse`. @@ -19,7 +21,7 @@ You **MUST** be running a version of CML that supports EFI boot. (Tested on vers The vJunos-Evolved **requires** EFI/UEFI boot to be enabled in order to properly start up. The node definition has the `efi_boot: true` option set. Additionally, CML comes with the correct OVMF EFI firmware files required to boot the vJunos-Evolved node using UEFI. However, by default, CML is not configured to use these firmware files when booting the node. As such, prior to booting the node, you must configure CML according to the following steps: -1. Ensure that the SSH service for the underlying Linux platform of the CML controller is enabled. This is **NOT** the same as the terminal server/SCP service available on the standard SSH port (tcp/22). The CML server should be listening for SSH requests on TCP port 1122 +1. Ensure that the [rescue shell](https://developer.cisco.com/docs/modeling-labs/enabling-ssh-service/) (i.e., the SSH service for the underlying Linux platform) of the CML controller is enabled. This is **NOT** the same as the terminal server/SCP service available on the standard SSH port (tcp/22). The CML server should be listening for SSH requests on TCP port 1122 2. Use SSH to connect to the Linux CLI of the CML server 3. Run the `sudo -s` command and type in the password of the `sysadmin` user to launch into the root CLI 4. Run the following commands to define the appropriate EFI firmware files for the vJunos-Evolved node type in the CML configuration. The folder name is *VERY* important - it must match the ID of the node definition @@ -30,4 +32,12 @@ mkdir vjunos-evolved cp OVMF-pure-efi.fd vjunos-evolved/efi_code.fd cp win11/efi_vars.fd vjunos-evolved/efi_vars.fd ``` -4. If you haven't already, import the node definition. Additionally, import the vJunos-Evolved qcow2 image downloaded from Juniper's website and create the associated image definition. You're good to start the node, at this point! \ No newline at end of file + +> NOTE: If you have a multi-node CML setup (i.e., you're using a cluster setup), make sure you've executed the commands described in step 4 on each of your compute nodes. + +5. If you haven't already, import the node definition. Additionally, import the vJunos-Evolved qcow2 image downloaded from Juniper's website and create the associated image definition. You're good to start the node, at this point! +6. After the node starts up, the login is `root`. As part of the initial configuration, you do NOT need to provide a password. After you log in, you'll need to [set the root password](https://www.juniper.net/documentation/us/en/software/junos/user-access-evo/user-access/topics/topic-map/user-access-root-password.html) before any additional configuration can be committed, in classic Juniper fashion. + +--- + +Contributed by: [Kelvin Tran](https://www.linkedin.com/in/tran-kelvin) (kelvin.tran1234@gmail.com) \ No newline at end of file diff --git a/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml b/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yaml similarity index 100% rename from node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yml rename to node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yaml