Installing Cisco Model Lab 2.0 on VMWare ESXi 6.7

July 7, 2020

Introduction: My notes on installing Cisco CML2.0 on ESXi 6.7


I have used Cisco Virtual Internet Routing Lab (VIRL) pretty extensively as a sandbox lab in my books and classes. I like the fact that it contains all the Cisco images as a bundle, from legacy IOSv to the newer NX-OSv, as well as IOS-XRv, IOS-XE on CSR100v, ASAv, as well as Linux hosts. I believe it is well worth the USD $199 /yr fee for what it offers, and if you are short on fund, Cisco DevNet (https://developer.cisco.com/) also offers free virtual labs based on VIRL (or now the new CML2).

The next iteration of VIRL, re-named to Cisco Modeling Lab 2.0, was officially released a few weeks ago, here is some information about the product:

https://learningnetworkstore.cisco.com/cisco-modeling-labs-personal/cisco-cml-personal

https://www.cisco.com/c/en/us/td/docs/cloud_services/cisco_modeling_labs/v200/configuration/guide/b_cml_user_guide_2-0.html

I have been hearing about it from various sources for a while since Cisco Live 2019 and finally found some time this week to give it a shot. There are many reasons for the upgrade, but the main reasons for me are:

  • CML 2.0 allows for easier external connection. This makes communication with other standalone tools such as Cacti, Ntop, and Elastic Stack easier, especially if the nodes need to use links outside of the management interface or if the Linux host needs to grab packages from interfaces outside of the default link.
  • Moving away from OpenStack for lower overhead. Nothing against OpenStack, but it is a bit of an overkill for labs and seems to drains the resources. With 16GB of RAM, I can barely launch more than a few CSR1000v devices, and IOSv or NX-OS devices generally start to become unstable between 9 - 11 nodes (like bouncing BGP peers).
  • API-First and Python client library (well, enough said).
  • Container-ready with CoreOS. I have some projects that can benefit from running in a container within the lab instead of a whole VM.

Here is a summary of the VIRL 1.0 to CML 2.0 changes:

https://developer.cisco.com/docs/modeling-labs/#!cisco-modeling-labs-2-0-summary-of-cml-2-0-changes

I plan to install it on my small NUC host running VMWare ESXi 6.7 Hypervisor. I mainly followed the Quick Start Guide:

https://developer.cisco.com/docs/modeling-labs/#!cml-quick-start-guide

David Bombal also has a few detailed installation videos on YouTube:

https://www.youtube.com/watch?v=H1N1x9kt-pY (VMWare Workstation)

https://www.youtube.com/watch?v=sW5-jHLygFg (Longer version covering BIOS Intel VT-x, Kali Linux, etc)

As far as I can see, I don't see other articles covering ESXi, even though it is listed as a supported Hypervisor platform on the product page. So here are some of my documented steps, along with a few mistakes I made that can perhaps help others.

Step 1. Download the necessary files and license. If you have purchased VIRL 1.0, the 2.0 license is already created for you:
CML_License.png
Step 1. The first thing you want to do is probably load the iso file to the datastore so you can attach it later:
CML_Step_0
Step 2. Creating the VM and choosing the OVA file is pretty straight forward:

CML_Step_1

CML_Step_2
Step 3. Make sure you uncheck the power on option, we need to do more work before we can boot it:

CML_Step_3
Step 4. Make sure the CPU hardware virtualization option is checked:

CML_Step_4
Step 5. Increase the RAM and HD size, attach the ISO image:

CML_Installation_Step_5

So far so good, below are some of the extra notes:

Mistake 1. DO NOT update the software. After installation, I went to port 9090 of the host and access the CentOS Linux management interface and updated the software. I was told later on that was why my registration was stuck in 'registering' status:

CML_Software_Update.png

CML_stuck_in_Registering.png

After contacting Cisco (thank you Karlo and Stu!) and revoke the registration token in the system. I deleted the VM, re-install, and tried to register again. It keeps on showing registering so I thought it was failing again:

CML_keep_registering.png

However, when I open another link, I was surprised to find the product was registered:

CML_Software_Licensing.png

At this point, it was good to do. However, the L2 bridging was not working for me, a bit of a search turns out that I need to enable promiscuous mode for the VM Network the CML 2 was attached to:

CML_for_L2_Bridge.png

I still have not tried the API, Python client, breakout, containers, or running third-party VMs. But so far I verified the two biggest factors for me, which was lower resource overhead and easier connectivity to external devices, so I am happy.

I hope this article is helpful for people wanting to run CML 2.0 on ESXi. Leave me a note on your experiences.

Happy Coding!

Eric

Return to blog