GNS3 is a all-known tool for running IOS images and playing with network scenarios. It is fully free, but yet the most powerful tool for building network environments for testing and self-education. In the latest releases developers have done a great job in stabilizing Cisco ASA. And there are many instructions that guides you through installing GNS ASA 9.15 with ASDM. But they work not in all cases. Here are the solutions to the problems I have met when I used these popular instructions.

So, at the point zero, I have:

Image of ASA 5525: asa915-16-k8.bin

ASDM binary: asdm-742.bin

GNS3 ver. 1.3.11 and QEMU 2.4.0

So let`s follow instructions provided with GNS3 community and see how far we can get.

GNS ASA 9.15 with ASDM how to: Image preparation

First, you have to somehow get the image of ASA – download it from cisco.com, for example. In my case, I have an image file called asa915-16-k8.bin. We need to repack it, to transform it to images that QEMU will understand. There is a simple solution – repack script for our image version. If you are working on linux – you are lucky, if not – you have to install a virtual machine to run the script from bash.

Download the script to your home directory, and save it as a file with Linux line ending (by default, there are DOS line endings).

GNS ASA 9.15 with ASDM 1

Then we need to make it executable:

Next, download your ASA image file to this directory too. Run the repack script by using this command:

As a result, we will get two files needed to run a QEMU virtial machine in GNS3:

Asa915-16-initrd.gz

Asa915-16-vmlinuz

Copy them to your system with GNS3 installed and proceed to VM creation

GNS ASA 9.15 with ASDM how to: Configuring and starting VM

Run GNS3, and navigate to Edit-Preferences-QEMU-QEMU VMs and press New button. Choose the type – ASA 8.4(2), and click Next:

GNS ASA 9.15 with ASDM 2

Enter the name and click Next

GNS ASA 9.15 with ASDM - 3

Choose the QEMU binary to qemu-system-x86-64w.exe and set RAM to 512 M. Then click Next

GNS ASA 9.15 with ASDM - 4

In this final step you choose initial RAM disk file (initrd) and kernel image file (vmlinuz). Then click finish

GNS ASA 9.15 with ASDM - 5

Create a Flash HDD with the following command (Please note that your installation location may be in C:\Program Files\GNS3\qemu-x.x.x) :

Now go back  to QEMU settings, and choose the newly created Flash disk:

GNS ASA 9.15 with ASDM

Now we can save and apply settings, add ASA to the network layout and start working. But here comes the first problem.

GNS ASA 9.15 with ASDM how to: Can’t save the changes

So, at the first start, we see initial setup, and enter basic settings:

Now we save them and reload the config:

First error, that we can see – the ASA does not reboot correctly – it hangs on these messages:

And after we reboot in by pressing stop/start button we see this:

GNS ASA 9.15 with ASDM how to: The solution 1

I have tried nearly Everything. After dozens of experiments I have come to these conclusions:

  • The problem is not in the ASA virtual machine settings. There weremany experiments with them, but no success.
  • If you use copy run-start – that doesn’t solve the problem. Here we have the post on that, even aa video – no success.

Finally, I have figured out, that no matter what flash file you give to qemu – it uses hda_disk.qcow2 file from the directory like C:\Users\%Username%\GNS3\projects\ASA\project-files\qemu\38394e33-3298-4b9e-ae00-ef2ae1b564c3, that contains project files. And there are no ways to change this default behavior. So, the conclusion – QEMU creates its own corrupted file, that does not allow to save the changes.

But there is a simple trick, that helped me to solve the problem – Rename your FLASH file created with qemu-img to hda_disk.qcow2 and replace the original corrupted file with your created flash file!  Yes, your asa will not reload correctly, and you will continue to see the mistakes you have seen before. But, you will finally be able to save the settings!

GNS ASA 9.15 with ASDM how to: ASDM problem

But that is not all. As we can see from standart instructions, we must copy the ASDM binary to our ASA from TFTP server, and then finish the settings like that:

Then copy  ASDM binary to ASA with the following command:

But here comes the second problem – ASA just crashes on this action of downloading the binary!

GNS ASA 9.15 with ASDM how to: The solution 2

Now what? I thought – we have a tftp download progress – and then crash. May be there is another way to copy the ASDM binary to the disk? So, what is that disk? An image in QEMU format. Then came an idea – if this is an image – may be we can mount it locally and just copy that ASDM binary to it locally? And there is a way to do that. But again – you need a Linux VM to do this operation. I took the GNS3 Workbench for the simplicity – after all, I’ve tested the different ideas of solving my problems not only under the Windows OS!

To mount QEMU image locally, copy hda_disk.qcow2 to local disk and use these commands:

Now copy ASDM binary to /mnt/qemu and safely unmount the image:

Then copy the image back to GNS3 project folder, and start ASA. Now we can finalize the settings in ASA console:

Here are to not so simple tricks that help to get ASA 9.15 with ASDM running!

Reference:

GNS3 Workbench

GNS3 community post with the standart instructions