Running netlab in a Public Cloud

You can run netlab on a Ubuntu instance in any public cloud if you want to run containerized versions of network devices (available for Arista EOS, Cumulus Linux, FRR, and Nokia SR Linux). Follow the public cloud installation documentation to create and start an Ubuntu instance, and the Ubuntu Server Installation instructions to install netlab and other system software.

If you want to run network devices as virtual machines, the public cloud has to support nested virtualization. Create a Ubuntu instance, verify that it has virtualization capabilities (kvm-ok is usually a good way to find that out), and follow Ubuntu Server Installation instructions.

Nested virtualization seems to be supported on AWS bare-metal instances (they tend to be expensive), Oracle Cloud bare-metal instances, some Azure instances, in Google Cloud, by Packet (bare-metal provider), and by Digital Ocean.

Google Cloud

Google Cloud supports nested virtualization that can be enabled with either Google Cloud CLI or REST API. Google Cloud documentation recommends using the Google Cloud CLI to create a VM with enabled nested virtualization[1].

The enable_nested_virtualization parameter is also supported by the Terraform Google provider.

Alternatively, you could use the following (now obsolete) procedure to create a custom image with enabled nested virtualization (found by Oswaldo Lamothe in the EVE-NG documentation).


GCP does not provide nested virtualization by default. You must begin by setting up a custom image for that purpose from the genuine Ubuntu image.

I have used the following command for doing so (from the Google Cloud CLI):

gcloud compute images create nested-ubuntu-focal \
  --source-image-family=ubuntu-2004-lts \
  --source-image-project=ubuntu-os-cloud \
  --licenses https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx

Then, create a new VM with the image you’ve just created (name nested-ubuntu-focal).