You're reading the development documentation. Release version of the same page is here.

Building a Cisco CSR 1000v Vagrant Libvirt Box

Cisco CSR 1000v is supported by the netlab libvirt package command. To build a CSR 1000v box:

  • Create an empty directory on a Ubuntu machine with libvirt and Vagrant.

  • Download a CSR disk image (.qcow2 file) with -serial in the file name (example: csr1000v-universalk9.17.03.04a-serial.qcow2) into that directory

  • Execute netlab libvirt package csr virtual-disk-file-name and follow the instructions


  • You MUST have a CSR disk image that expects to be configured through the serial interface for this procedure to work. If all you have is an image that expects a graphics card, the original recipe on might still work for you.

  • The ‌netlab libvirt package csr command has been tested on Ubuntu 20.04 LTS and 22.04 LTS and might not work on other Linux distros.

  • On Ubuntu 22.04 LTS, libvirt-qemu user needs read and execute access to the VM disk file. It’s easiest if you create Vagrant boxes in a subdirectory of the /tmp directory.

Initial Device Configuration

During the box-building process (inspired by this solution) you’ll have to copy-paste initial device configuration. netlab libvirt config csr command displays the build recipe (based on the recipe published by Brad Searle):

Creating initial configuration for Cisco CSR 1000v

* Answer 'no' to the 'Would you like to enter the initial configuration dialog' prompt
* Answer 'yes' to the 'Would you like to terminate autoinstall' prompt
* Press ENTER to start a CLI session
* Go into enable mode, enter configuration mode
* Copy-paste the following configuration

hostname csr
no ip domain lookup
ip domain name lab.local
no service config
crypto key generate rsa modulus 2048
ip ssh version 2
aaa new-model
aaa authentication login default local
aaa authorization exec default local
username vagrant privilege 15 secret vagrant
ip ssh pubkey-chain
 username vagrant
  key-hash ssh-rsa DD3BB82E850406E9ABFFA80AC0046ED6
vrf definition MGMT
 description Management interface
 address-family ipv4
interface GigabitEthernet1
 vrf forwarding MGMT
 description vagrant-management
 ip address dhcp client-id GigabitEthernet1
 no shutdown
line vty 0 4
 transport input ssh

* Save the configuration with 'wr mem'
* Disconnect from console (ctrl-] usually works).

Notes on Using CSR Box

If you’re experiencing high CPU utilization with Cisco CSR, set halt_poll_ns to zero.