Hi,

I have got a lot of requests for writing up a blog post on various Methods of emulating Juniper devices for practice.

Note : For 2/3 methods to work, you need to have official Junos software (vmx-vcp and vmx-vfp)

Method 1 – Gns3

Most popular and Familiar Method – Install via gns3

After installing Gns3, download the

Vmx-vfp Appliance – https://docs.gns3.com/appliances/juniper-vmx-vfp.html

Vmx-vcp Appliance – https://docs.gns3.com/appliances/juniper-vmx-vcp.html

Documentation is straight forward, all you need to do is double click on the appliance and upload the image when requested, as easy as it can get.

 

Method2 – Vagrant

Use Juniper uploaded Images via vagrant.

Most of Juniper Vqfx / JNCIE-DC practice came up from a vagrant, You don’t need to have any official images or access to Juniper software downloads. The downside is that it only supports VQFX and generic SRX, but for most of the Routing protocol and MPLS learning this should be good.

https://app.vagrantup.com/boxes/search?utf8=%E2%9C%93&sort=downloads&provider=&q=juniper

https://app.vagrantup.com/juniper/boxes/vqfx10k-re

https://app.vagrantup.com/juniper/boxes/vqfx10k-pfe

Again, following Github link, will auto setup the topology without you worrying about much details to vagrant.

https://github.com/Juniper/vqfx10k-vagrant -> Go into a specific folder and say vagrant up, that should take care of installing and bringing up the boxes

 

Method3- My personal favorite as of now – Advanced Method.

Via Docker

A good blog post on how to do it

Deploy Juniper vMX via Docker Compose

but am following the method from VRNET lab package from Github, it took a while to figure out the specific way to set up this after reading instructions but its really worth it.

https://github.com/plajjan/vrnetlab

You need to have some understanding of Docker and need to read up how to set up connectivity between containers, but once you get to know it most of it can be scripted and automated.

There are some other paid and free emulated tools but most of it I wanted to reduce the scope which is supported by a global group of people via Git and it will have a future scope of development when compared to Tools which are closed source.

 

-Rakesh