diff --git a/node-definitions/juniper/vJunos-Evolved/README.md b/node-definitions/juniper/vJunos-Evolved/README.md new file mode 100644 index 0000000..299ca98 --- /dev/null +++ b/node-definitions/juniper/vJunos-Evolved/README.md @@ -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) \ No newline at end of file diff --git a/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yaml b/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yaml new file mode 100644 index 0000000..7d8ab4d --- /dev/null +++ b/node-definitions/juniper/vJunos-Evolved/vjunos-evolved.yaml @@ -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