Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions node-definitions/juniper/vJunos-Evolved/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# 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

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`.

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 [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

```
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
```

> 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)
74 changes: 74 additions & 0 deletions node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
id: vjunos-evolved
boot:
timeout: 60
completed:
- 'login:'
uses_regex: false
sim:
linux_native:
libvirt_domain_driver: kvm
driver: server
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
Loading