Emulating Juniper Devices – Various options
Feb 02
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