Building a Juniper vPTX (vJunos EVO) Libvirt Box

Juniper vPTX (known as vJunos EVO or vJunos Evolved) is supported by the netlab libvirt package command. To build it:

  • Create an empty directory on a Ubuntu machine with libvirt and Vagrant.

  • Download the Juniper vPTX QCOW image from here, and place into that directory

  • Execute netlab libvirt package vptx virtual-disk-file-name and follow the instructions


  • netlab release 1.7.0 supports only vJunosEvolved releases that do not require external PFE- and RPIO links. The first vJunosEvolved release implementing internal PFE- and RPIO links is the release 23.2R1-S1.8.

  • The ‌netlab libvirt package vptx command has been tested on Ubuntu 20.04 LTS and 22.04 LTS and might not work on other Linux distros.

  • On Ubuntu 22.04 LTS, libvirt-qemu user needs read- and execute access to the VM disk file. It’s easiest to create Vagrant boxes in a subdirectory of the /tmp directory.

  • Juniper vJunos EVO uses Linux instead of BSD as the underlying OS. The management interface name became re0:mgmt-0.

Initial Device Configuration

Initial device configuration is copied from a disk image created by the installation process. You’ll have to save it and shut down the VM. netlab libvirt config vptx command displays the build recipe:

Creating initial configuration for Juniper vPTX (vJunos EVO)

Initial configuration for the vPTX device is prepared in a bootstrap disk image (pre-install hook).
After the system boots and displays the 'login' prompt:

* Login with username 'vagrant' and password 'Vagrant'
  (it might take a while for the username to be recognized)
* Verify that the VM got a management IP address with 
  'show interfaces terse | match re0'
* Verify that the FPC 0 is online with 
  'show chassis fpc'
* Shut down the VM with 'request system power-off' (confirm with 'yes')

* The management traffic is isolated in a dedicated management VRF (mgmt_junos).