Wednesday, November 11, 2015

CSR1000v and GNS3, best thing?

Really quick post today about integrating the CSR1000v into GNS3. First up! Why would you want to do this?

  1.  Latest greatest IOS
  2.  Feature packed (supports VXLAN, OTV, MPLS, VPLS, and a ton more)
  3. What do you want from me? Those first two should be enough.

Video at the bottom for those too impatient to read (like me). First thing you're going to need, a fresh ISO of the CSR1000v, available from I'm using "csr1000v-universalk9.03.14.01.S.155-1.S1-std.iso", but depending when you read this your mileage my vary. After you have that, I think it goes without saying that you'll need GNS3 installed, and VirtualBox.

In virtualbox, create a new VM. Set the OS type to Linux and version to Other Linux (64-bit). Give it at least 2.5 GB of ram (2560 MB), but if you can spare it 4GB is better. All default values after that are totally fine, you won't need more than the standard 8GB hard drive.

Now open the settings for your new CSR virtual machine, on Serial Ports check port one's "Enable Serial Port". You leave it disconnected, GNS3 will handle the host pipe end (if that doesn't make sense to you, then just know that GNS3 will do some magic and you'll have a working console port).

Next up, go to storage and set the CD drive to point to the ISO you downloaded from Cisco (or from the wild wild internet). When all is said and done your VM should have settings similar to this

Alright, now we can boot it up. You'll see a dialog box asking if you want to (a) auto detect console type (b) use vga or (c) use serial. For now, auto detect is just fine. This process can take a few minutes, IOS-XE will do a nice and neat auto installation and reboot. After a reboot you'll come to a familiar IOS prompt. Last thing we want to do, go into global configuration and set the console port to be serial only "platform console serial". After that, exit global config, wr mem and shut the vm down.


Open up GNS3, go to File-->Preferences->VirtualBox VM templates. From here you're going to click "new". From drop down VM list, select your CSR1KV and check the box "Use as a linked back (experimental)". That last step is a huge, what it means is you can dynamically create CSRs without being limited to how many are available in VirtualBox. I.e., you create (1) CSR1KV in VBOX... and that's it. GNS3 will handle dynamically cloning routers for you, giving you a very dynamips-like experience. 

Now click "Finish". 

From here, I like to first right click on my newly added CSR1KV and select "change symbol". Then I select a nice router icon and set the category to "Routers". This will make it so your CSR1KV shows up with all your dynamips routers instead of as a vbox guest.

Finally add some additional network adapters to your new VM by clicking on "edit" and going to "Network". I run mine with 5 nics each. That's it! You're all set, final note is linked base guests can only be run in saved projects. That means you have to create a new project (can't just use a temporary work space) to add your VMs. No big deal really, but if you forget GNS3 will give you a friendly little error/reminder.

See my video on this process below for those of you who don't like reading!


  1. Hello, Thanks i have successfully install IOS-XE. Please also blog about IOS XR installation in GNS3.

    1. I know of a way to do it for sure with a KVM powered GNS3 server, I'll if I can't get IOS-XRv running in vbox.

  2. This comment has been removed by the author.