Cisco ASAv QEMU on Proxmox

In this guide I will be showing you how to create a QEMU virtual machine to work with Cisco ASAv. This is specific to Proxmox, but can be used on other platforms by following Cisco’s guide here. This will be limited to 100Kbps, but this will still work great for a lab environment and it will support all the features you would expect to see in a physical ASA.

Software Images

Download the QEMU images such as:

  • asav941.qcow2
  • asav983.qcow2

Create a new Virtual Machine

General: Specify the VM ID and the Name.
OS: Set the OS disk as Do not use any media and the Guest OS as Other.
System: Leave all as defaults
Disks: Set the BUS/Device to VirtIO Block. All other settings leave as default. This disk will be removed shortly.
CPU: Leave as defaults (1 Socket / 1 Core)
Memory: 2048MB is enough for an ASA
Network: Leave defaults. Note that the VirtIO model will use CPU cycles for the network traffic.
Verify settings and Finish.

Additional VM Hardware

Add 3x Network interfaces

Add 1x Serial port

Detatch the hard disk and remove Unused Disk 0

Upload the QCOW2 Image

Copy the image to proxmox using SCP/SFTP. I uploaded the image to:

/var/lib/vz/template/qemu

Import the image into the virtual machine

qm importdisk 300 asav983.qcow2 local-lvm

A new Unused Disk 0 will now be in the virtual machine Hardware list. Select the disk and click edit.

Change the Bus/Device to VirtIO Block

Update the boot order

Navigate to Options and select Boot Order and click Edit.

Move the virtio0 device to the top by drag and drop. Enable the device by ticking the box and press OK.

Start the Virtual Machine

Start the virtual machine and open the noVNC Console.

ASAv Bootlader
All up and running

Don’t be alarmed, at this point the machine will reboot. Once it has got back to this point, open a console session using xTerm.js

Connected to the ASA via serial port

The ASA is now up and running. When running a show interface ip brief you will be presented with the following interfaces:

GigabitEthernet0/0         unassigned      YES unset  administratively down up  
GigabitEthernet0/1         unassigned      YES unset  administratively down up  
GigabitEthernet0/2         unassigned      YES unset  administratively down up  
Management0/0              unassigned      YES unset  administratively down up

These translate the the following:

Physical NicInterface
net0Management0/0
net1GigabitEthernet0/0
net2GigabitEthernet0/1
net3GigabitEthernet0/2

Leave a comment