Hi all,
Here is my experience installing Juniper vMX 14.1R5.4 in my VIRL.
This vMX version normally uses several VMs: one for the vCP (jinstall64-vmx-14.1R5.4-domestic.img) and one for the vPFE (vPFE-20150707.img or vPFE-lite-20150707.img). Both VM communicate via the em1 internal interface. This architecture is by design to allow packet forwarding at high throughput. However this 2 VM architecture is a challenge for us to install in a VIRL, there are 2 solutions:
build a nested VM (Ubuntu 14.04 containing both vCP and vPFE, then import this VM into VIRL)
use only the vCP VM, and try to use it for our simulation. I will describe this solution below.
With this reference: https://ivorde.com/juniper-vmx-virtual-mx-router-in-vmware-esxi-5-5/ I found a trick to avoid installing the vPFE and enable a local virtual PFE. (edit /boot/loader.conf and add vm_local_rpio="1". save and reload)
This should allow to use a vPIC and associated ge-0/0/x interfaces. However, I never managed to have a stable vMX platforrm (several traceback such i386_junos[2946]: fpc0 PANIC PANIC PANIC PANIC PANIC PANIC and i386_junos[2946]: fpc0 Watchdog fired). I also never managed to get connectivty with the ge-0/0/x interfaces, the virtual PIC disapears randomly.
I gave up and use the solution mentioned here: don't enable the local vPFE and use instead em interfaces. I share below the subtype I created:
{
"dynamic-subtypes": [
{
"plugin_name": "Juniper vMX",
"hw_disk_bus": "ide",
"plugin_base": "generic",
"interface_first": 1,
"interface_pattern": "em{0}",
"hw_vcpus": 4,
"baseline_flavor": "",
"plugin_desc": "Juniper vMX",
"gui_visible": true,
"config_file": "/config/juniper.conf.gz",
"gui_icon": "router",
"hw_ram": 3072,
"interface_management": "em0",
"config_disk_type": "cdrom",
"cli_serial": 3,
"hw_vm_extra": "",
"interface_range": 10,
"baseline_image": ""
}
]
}
Then I added the jinstall64-vmx-14.1R5.4-domestic.img VM image.
For this particular vMX version, it's important not to use em1 interface as data: remember em1 is used for internal communication (it's by default allocated a 172.16.0.1/16). The first usable interface is em2. Either plug em1 to something and don't use it, or set em1 as dummy interface.
With this setup, I managed to get IP connectivity between my em2 (and following) interfaces and configure OSPF and LDP.
Thanks
Fred