Fundamentals

How to Install Cisco CML 2.10 on VMware ESXi (Step-by-Step with Screenshots)

A step-by-step, screenshot-by-screenshot walkthrough of installing Cisco Modeling Labs (CML) 2.10 on VMware ESXi: deploy the OVA, size the VM, attach the refplat ISO, run setup, and start your first node.
Install Cisco CML 2.10 on VMware ESXi
Table of Contents
In: Fundamentals, Labs

Cisco Modeling Labs (CML) is the official replacement for VIRL, and running it on a VMware ESXi host is the sweet spot for a home lab or team lab: you deploy it once, snapshot it, and reach the web UI from any browser on your network. This guide walks through a clean install of CML 2.10 (build 2.10.0+build.13) on ESXi, from uploading the OVA to logging into the workbench and starting your first node. Every step below is a real screenshot from the install, not a stock diagram.

If you would rather watch it happen end to end, the full screen capture is near the end of this guide. The written version here is the one you will want open on a second monitor while you click through the wizard.

What you need before you start

CML ships as two downloads from your Cisco account: a controller OVA and a reference platform (refplat) ISO. The OVA is the appliance itself (an Ubuntu 24.04 controller). The refplat ISO carries the node images (IOSv, IOL-XE, NX-OS, ASAv, and so on) that your labs actually run. You need both.

These are the exact files used in this build, so you know what you are looking for in the download portal:

FileWhat it is
cml2_p_2.10.0-13_amd64-17.ovaThe CML 2.10 controller appliance (Personal edition OVA)
refplat-20260409-fcs.isoReference platform images, first customer ship (the main node images)
refplat-20260409-supplemental.isoSupplemental reference platform images
refplat-20260326-ise.isoISE reference image (optional, only if you lab identity services)

On the host side, here are the minimum requirements Cisco publishes for the CML VM. Treat these as a floor, not a target: the more cores and RAM you give it, the more nodes you can run at once.

ResourceMinimum for the CML VM
HypervisorVMware ESXi 7.0 or later
Memory8 GB (idle CML uses ~1 GB; the rest is for your nodes)
CPU4+ physical cores, Intel, with VT-x and EPT enabled
Disk32 GB minimum, but plan for 100 GB or more
Network1 interface reachable from your browser

Two things bite people here. First, CML uses nested virtualization (every node is itself a VM), so your processor must support VT-x and EPT, and some reference images only run on Intel. Second, the OVA's virtual hardware version is 13 for backwards compatibility, so plan to upgrade VM compatibility to the newest version your ESXi host supports (more on that below). Cisco officially requires ESXi 7.0+, so if you are on an older build, that is the first thing to address.

Step 1: Upload the refplat ISO to your datastore

Before you deploy anything, get the refplat ISO onto a datastore that the ESXi host can see. In the ESXi Host Client, open the datastore browser, create a folder (this build uses data/CML-ISO/), and upload the refplat ISO files. You will attach one of them to the VM's CD/DVD drive in Step 3.

ESXi datastore browser showing the CML 2.10 OVA and refplat ISO files including refplat-20260409-fcs.iso and refplat-20260409-supplemental.iso
The CML-ISO folder on the datastore. Note the OVA (cml2_p_2.10.0-13_amd64-17.ova) sitting alongside the refplat ISOs.

Step 2: Deploy the CML OVA

In the ESXi Host Client, go to Virtual Machines and click Create / Register VM. Choose Deploy a virtual machine from an OVF or OVA file.

ESXi New virtual machine wizard, Select creation type, Deploy a virtual machine from an OVF or OVA file
Start the deployment wizard and pick the OVF/OVA option.

Give the VM a name (here it is Cisco-CML) and drop in the OVA file. The wizard accepts the single .ova directly, no need to unpack it.

Select OVF and VMDK files step with cml2_p_2.10.0-13_amd64-17.ova uploaded and VM named Cisco-CML
Name the VM and select cml2_p_2.10.0-13_amd64-17.ova.

Pick a datastore for the VM. An SSD-backed datastore makes a real difference here, because labs start faster and write-sensitive nodes (NX-OS in particular) boot more reliably on fast storage.

Select storage step in ESXi showing a 1TB-SSD datastore selected for the CML VM
Put the VM on your fastest datastore. SSD is strongly recommended.

On the deployment options screen, map the network to a port group your browser can reach, choose Thin provisioning to save space, and leave Power on automatically unchecked. This part matters: you must configure the VM hardware before its first boot.

Deployment options in ESXi with PublicNetwork mapped to VM Network, Thin disk provisioning, and Power on automatically unchecked
Map the network, choose Thin, and leave the VM powered off for now.

Review the summary and finish. The guest OS is Ubuntu Linux 64-bit, which is the CML controller's underlying OS.

Ready to complete step showing product cml2_2.10.0-13_amd64-17, thin provisioning, and Ubuntu Linux 64-bit guest OS
Confirm the deployment. Do not refresh the browser while the OVA imports.

Step 3: Configure the VM before first boot

This is the step most rushed installs skip, and it is the one that determines whether your lab is usable. With the VM still powered off, open Edit settings. The OVA's defaults (a handful of vCPUs, 8 GB RAM, a 32 GB disk) are the bare minimum and are not appropriate for a real ESXi deployment.

ESXi Edit settings for the Cisco-CML VM showing 4 vCPU, 8 GB memory, 32 GB hard disk, and CD/DVD drive
The OVA defaults. Bump CPU, memory, and especially disk before you boot.

Here is what to set, and why each one matters:

SettingRecommendation
VM hardware compatibilityUpgrade to the latest version your ESXi host supports. The OVA ships at version 13 for compatibility, but newer features depend on a newer version.
vCPUAs many physical cores as you can spare. Set cores per socket so the socket count matches your host's physical CPUs.
CPU sharesHigh. Also tick hardware virtualization (expose VT-x to the guest) and performance counters.
Memory16 GB or more if you have it. Reserve all guest memory (lock it) so ESXi does not swap or reclaim it out from under running nodes.
Hard diskGrow it to 100 GB or more before first boot. CML resizes its filesystem to the initial disk size on first boot, and 10 GB of the default 32 GB is reserved for the OS.
CD/DVD Drive 1Point it at the refplat ISO you uploaded in Step 1 and check Connect at power on.
Network adapterConnect at power on, and enable DirectPath I/O.
Latency SensitivityUnder VM Options, set to High.

There is one host-level change that catches almost everyone the first time they try to bridge a lab to the real network. For the CML VM's interface to pass lab traffic out to your LAN, the vSwitch and port group it uses must allow it. On each port group or vSwitch the CML VM touches, set Promiscuous Mode = Accept and Forged Transmits = Accept. On the host, set Net.ReversePathFwdCheckPromisc = 1 in Advanced System Settings. If you skip this, the controller UI still works, but bridged external connectors will silently drop traffic.

Step 4: First boot and the setup wizard

Now power on the VM. CML comes up through a GRUB menu and boots the CML2 entry automatically.

GNU GRUB boot menu for Cisco Modeling Labs CML2 GNU/Linux on first power on
The GRUB menu on first boot. It auto-selects CML2 in a few seconds.

On first boot CML drops you into a text setup wizard that walks through the controller's identity and networking. First, the hostname:

CML setup wizard prompting for the system hostname, set to cml-controller
Set a hostname. cml-controller is the conventional default.

Next, the primary interface addressing. DHCP is fine for a first install and the easiest path to a working UI. You can pin a static address later from the Cockpit system management UI on TCP/9090, or switch to static here if your lab network expects it.

CML setup wizard IPv4 configuration screen with DHCP selected for the primary network interface
Leave it on DHCP unless your network requires a static address.

Then you choose optional services. CML 2.10 exposes three: OpenSSH (SSH to the controller on port 1122), PATty (port forwarding straight to lab nodes), and the new MCP server, which lets LLM tooling drive CML programmatically. Enable what you need; they can all be toggled later in Cockpit.

CML optional services selection showing OpenSSH on port 1122, PATty lab node port forwarding, and MCP server for LLMs
Optional services in CML 2.10, including the new MCP server for LLMs.

The wizard also has you set two passwords: one for the sysadmin system account (OS and Cockpit) and one for the admin CML account (the web UI). Keep them distinct and write them down. Finally, you confirm the whole configuration before it commits.

CML configuration confirmation screen showing Standalone All-in-One deployment, cml-controller hostname, sysadmin and admin users, ISO attached, DHCP enabled
Confirm the build: Standalone All-in-One, ISO attached, DHCP, services enabled.

Once you confirm, CML copies the reference platform images off the ISO and onto its local disk. This is required from CML 2.3 onward; nodes run from local disk, not the mounted ISO. The wizard warns you it takes roughly ten minutes.

CML notice that reference platform images will be copied from the ISO to the VM disk, taking about 10 minutes
CML copies the node images from the ISO to local disk on first setup.
CML copying reference platform image objects from the CD-ROM ISO to the local filesystem during initial setup
The copy in progress. Let it finish before you do anything else.

What is actually on the reference platform ISO

Once the copy finishes, those node images become the building blocks for every lab. If you mount the refplat volume directly, you will see a virl-base-images directory with one folder per image, and people often search for these exact folder names when they are hunting for a specific version. Here is what shipped on the 2026 reference platform used in this build, and what each one is good for:

Image folderPlatformWhat you would lab with it
iol-xe-17-18-02IOS XE on Linux (IOL-XE)Lightweight IOS XE router, fast boot, ideal for large routing topologies
iol-xe-serial-4eth-17-18-02IOL-XE (serial, 4x Ethernet)IOL-XE variant with serial console and four Ethernet ports
ioll2-xe-17-18-02IOL Layer 2 (IOL-L2)Lightweight switch image for VLAN, STP, and trunking labs
iosv-159-3-m12IOSv (IOS 15.9(3)M)Classic IOS router for CCNA/CCNP routing
iosvl2-2020IOSvL2Classic IOS Layer 2 switch
csr1000v-17-03-08aCSR 1000vIOS XE virtual router for WAN and VPN labs
cat8000v-17-18-02Catalyst 8000VIOS XE routing and SD-WAN edge
cat9000v-uadp-17-18-02Catalyst 9000v (UADP)Catalyst 9000 switching with UADP ASIC simulation
cat9000v-q200-17-18-02Catalyst 9000v (Q200)Catalyst 9000 switching with Q200 ASIC simulation
nxosv9300-10-6-2-fNexus 9300v (NX-OS)Data center switching, VXLAN, vPC
iosxrv9000-26-1-1IOS XRv 9000Service provider routing, MPLS, segment routing
xrd-26-1-1XRdContainerized IOS XR, lighter than XRv 9000
asav-9-24-1ASAv 9.24Adaptive Security Appliance for firewall and NAT labs
wireless-ap-24-04-20260409Catalyst wireless APWireless labs with the Catalyst 9800 controller
wireless-client-24-04-20260409Wireless clientSimulated client to associate to the AP
alpine-wanem-3-23-3Alpine WAN emulatorInject latency, loss, and jitter between nodes
alpine-trex-3-23-3Alpine + TRexHigh-rate traffic generation
alpine-desktop-3-23-3Alpine desktopGUI host for testing reachability from an end user view
alpine-base-3-23-3Alpine baseTiny Linux host for pings, traceroutes, and DHCP clients
ubuntu-24-04-20260307Ubuntu 24.04Full Linux host for services, automation, and tooling
server-tcl-17-0TCL serverMinimal scriptable server utility node

Step 5: Log in and verify the install

When setup completes, the VM console shows a login banner with the version (here, CML 2.10.0+build.13 on Ubuntu 24.04) and, most importantly, the URLs to reach the web UI and the Cockpit system console on port 9090.

CML console login banner showing CML 2.10.0 build 13, Ubuntu 24.04, and the web UI access URL on the assigned IP address
The console banner tells you the version and the exact URL to browse to.

Browse to that address in Chrome or Firefox (CML's UI is HTML5 and is tested on the latest two versions of both) and you get the Cisco Modeling Labs login. Sign in with the admin account you created in the wizard.

Cisco Modeling Labs web UI login page in a browser
The CML web UI login. Use the admin credentials from setup.

The first time you log in, CML will prompt you to register a license. Personal, Personal Plus, Enterprise, and Education licenses all use a registration token from your Cisco Smart Account; paste it in and the node limits unlock. After that, drop a node onto the canvas, start it, and open its console. If you see the node boot and hand you a prompt, your install is done and working.

CML workbench with a running router node R1 and its console output confirming the node booted successfully
A running node in the workbench. That booting console is your confirmation.

Troubleshooting the common failures

SymptomLikely cause and fix
VM will not boot or panics earlyVT-x/EPT not exposed to the guest. Enable hardware virtualization on the VM's CPU settings and confirm VT-x is on in the host BIOS.
Nodes will not start (or hang at boot)Nested virtualization is missing, or you are on a non-Intel host with Intel-only images. Confirm VT-x/EPT and use Intel hardware for full support.
Can reach the UI, but bridged lab traffic diesPromiscuous Mode and Forged Transmits are not set to Accept on the vSwitch/port group. Fix both, then disable and re-enable promiscuous mode or reboot the host.
Disk fills up fastYou booted with the default 32 GB disk. Grow the disk (ideally you do this before first boot) and add a storage volume from Cockpit.
No node images availableThe refplat ISO was not attached at first boot, so the copy never ran. Attach the ISO and re-run the reference platform copy.

Build your first lab

With CML up, the fastest way to get value is to build something you are studying. A two-router IOSv or IOL-XE topology is all you need to work through our OSPF, BGP, or EIGRP guides hands on. Drop in a couple of IOSvL2 or IOL-L2 switches and you can follow the VLAN and spanning tree walkthroughs. The asav-9-24-1 image pairs perfectly with our Cisco ASA cluster, and the wireless images line up with the Catalyst 9800 wireless material. Every show-command output you see in those articles was captured on CML labs exactly like the one you just built.

Frequently asked questions

Is Cisco Modeling Labs free?

There is a free tier, CML-Free, which runs a small number of nodes at no cost. The Personal and Personal Plus tiers (a modest annual fee) raise the node limit and are what most home labbers buy. Enterprise and Education are the larger, clustered offerings. Whichever you have, the install process on ESXi is identical; only the license token and node limits differ.

What is the difference between the OVA and the refplat ISO?

The OVA is the CML controller appliance, the thing you deploy as a VM. The refplat ISO carries the node images (routers, switches, firewalls) that your labs run. You install the OVA once and attach the ISO so CML can copy those images to its local disk. You can later download newer refplat ISOs to add updated node versions without reinstalling CML.

Do I really need ESXi 7.0 or later?

That is Cisco's supported minimum for CML 2.10, and it is what you should target. The OVA's virtual hardware version is 13 for backwards compatibility, but you should upgrade the VM's hardware compatibility to the newest version your host supports so you do not lose features. Older ESXi builds may appear to work but are not supported.

Why must I set the disk size before the first boot?

CML automatically resizes its filesystem to match the initial disk size the first time it boots. If you boot with the 32 GB default and grow the disk afterward, the extra space is not automatically used by the root filesystem; you have to add a storage volume or expand it manually from Cockpit. Sizing it to 100 GB or more before the first boot avoids that entirely.

Can I run CML on AMD or Apple Silicon?

CML is only fully supported on Intel processors. The application services run fine on AMD, but several reference platform images are Intel-only, so AMD support is best effort. Apple Silicon (M-series) is not supported for the VMware Fusion path. For a dependable lab, use an Intel host with VT-x and EPT.

Key takeaways

If you take one thing away from this guide, it is to configure the VM before you power it on: upgrade the hardware compatibility, give it real CPU and memory with high shares and reserved RAM, grow the disk to 100 GB or more, attach the refplat ISO, and set promiscuous mode plus forged transmits on the vSwitch. Get those right and the rest of the install is a ten-minute wizard followed by a license token. From there you have a full Cisco lab (IOS, IOS XE, NX-OS, IOS XR, ASA, and wireless) running on a single ESXi host, ready for whatever you are studying next.

This walkthrough was based on a real CML 2.10 install; for Cisco's authoritative reference, see the CML 2.10 Installation Guide and the Deploying the OVA on ESXi Server page.

Written by
More from Ping Labz
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Ping Labz.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.