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 directoryExecute netlab libvirt package csr virtual-disk-file-name and follow the instructions
Warning
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 codingpackets.com 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
exit-address-family
!
interface GigabitEthernet1
vrf forwarding MGMT
description vagrant-management
ip address dhcp client-id GigabitEthernet1
no shutdown
!
line vty 0 4
transport input ssh
!
end
=============================================
* 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.