- In previous videos in this series, which I've linked here and below, I showed you how to download
and install the GNS3 GUI, I showed you how to download
and install the GNS3 VM, how to integrate the
GUI and the VM together. In this video I'm gonna
show you how to download Cisco IOS images, so in other words get images such as Cisco
IOSv, Cisco IOSv layer two, so that you can build topologies with both routers and switchers, as well as Docker
containers, so let's bolt a proper network topology
with router switches and PCs, in other words Docker
containers to make it easier, and see if we can test Cisco
IOS directly within GNS3. (electronic music) Now please, if you enjoy this video, consider subscribing
to my YouTube channel, like this video, as well
as click on the bell to get notifications when
I upload a new video. Okay, without further
ado, let's get started. In this example, I'm
using GNS3 version 2.2. What I'm gonna do is create a new blank project, and I'll
call this ciscoios. So I've created a new topology. Notice that I'm using a local server as well as the GNS3 VM, in other words I've already got the GNS3
VM integrated with GNS3. This is really important, a
lot of people have asked me, David, why do we need the GNS3 VM? The simple answer is,
appliances such as IOSv, IOSv layer two, ASAv, Nexus V, Juniper, Cumulus Linux, other appliances,
require the GNS3 VM to run. Now there've been some
recent enhancements, which may allow us to run QEMU on Windows, but it's still experimental,
doesn't necessarily work. QEMU is the way that we virtualize some of these appliances,
and it requires Linux. So we need the GNS3 VM, which is running the Ubuntu operating system,
to allow us to use QEMU and virtualize Cisco IOS images and other appliances
in our GNS3 topologies. So the short answer is,
you need the GNS3 VM if you wanna run Cisco VIRL
images in your GNS3 topologies. Okay, so I'll open up a web browser, and go to virl.cisco.com. I need to warn you, I'm gonna show you how to get images legally,
you can find images on the Internet, and neither I nor GNS3 recommend that you do
that, so I've gone to virl.cisco.com, I'm
gonna click on get VIRL, if you don't have a VIRL account, you'll need to buy this
for $199 dollars a year. Unfortunately that's
the way Cisco do things. I can't change that, Cisco require that you buy images to
be able to use them. Other vendors such as Cumulus or Arista allow you to download
images from their website without any cost, and
use them in topologies such as GNS3, but with Cisco
you have to pay to get images. That's just the way that Cisco do it. I'm gonna click login
to log in to my account, I'll log in with my username,
log in with my password, click my account, and now I have this option to download a VIRL. Now to download the images,
click on all releases, select one here, and
then choose the images that you wanna download, so in my example I wanna download IOSv layer two. So I'm gonna select
that, and click download, I'm gonna accept the license agreement, and as you can see here, VIOS layer two QCOW file is being downloaded. I'm going to select IOSv,
I'm gonna click here because I wanna download
the latest release, click accept license agreement, and unfortunately at this time, it's not allowing me to download, there's some problem
with the Cisco website, I'll try again, okay,
so it worked this time, I can now download VIOS
advanced enterprise. Okay so once they've downloaded, I'll be able to import them into GNS3, so I'll speed up the video at this point so we don't have to wait
for the files to download. Okay, so the images have downloaded, here's IOSv layer two,
here's VIOS, so IOSv, so in GNS3, I'm gonna go to routers. Click new template, I'm gonna install an appliance from the GNS3 server. Click next, in this example
I'm gonna select routers. Cisco IOSv, notice the emulator's QEMU, which means we wanna
run this on the GNS3 VM. I'm gonna click install, I
wanna install the appliance on the GNS3 VM, this is recommended, notice remote server is grayed out, that's because I don't have
a remote server configured, I can't run this on the local computer, so I'm gonna click next. QEMU settings I'm gonna leave at the defaults and click next. GNS3 scans the local directory for files that are required, it's
found the VIOS image, which I've got in my downloads directory, it doesn't have the startup config file, so I'm gonna select that and
click download to download the config file, that takes
me to SourceForge.net. I'm not gonna accept their tracking, I'm gonna save the file
to my local computer, back in GNS3, click refresh,
the file has been found, I've got my operating
system, so I can click next. I'm asked would I like
to install IOSv, yes, the image is uploaded to the GNS3 VM, I'm also told that there's no default password and enable password, I'm gonna click finish,
and then click okay. So IOSv has now been
successfully installed, I'm gonna go to switches,
click new template, I'm gonna install an appliance
from the GNS3 server, click next, in this
example I wanna install Cisco IOSv layer two, also QEMU appliance, click install, I'm also gonna install the appliance on the
GNS3 VM and click next. I'll leave the QEMU settings
at defaults, click next. I can see that this appliance
is ready to be installed, click next, say yes to install it, there's no default password
and enable password, operating system has been copied to the GNS3 VM, click finish, click okay, I now have an IOSv layer two switch, which I'll drag to the GNS3 workspace, I'll do the same with a router, and actually I'll add two
routers to my topology, so I've got router one,
switch one, and router two, I'll connect the router to the switch, and the switch to the second router. Now these take a while to boot up, so what I'll do is start them up while I'm busy fixing my topology. I'll also open up a
console to the devices, so my first IOSv device is displayed, my switch is displayed,
but my second router isn't, so I'll right click and click console, that's now displayed in Solar-PuTTY, so there's my first
router, here's my switch, here's my second router, so
while those are booting up, I'll change the symbols
here, you can change it through the templates if you want to, so I'll show you that in
a moment, but for now, I'll simply change the router symbols and switch symbol directly
through the GNS3 workspace. So I wanna change the
symbol of the switch, in this case I wanna set it to square, I'll use a multi-layer switch here, so there's my switch and my two routers, to make the topology look good, I'll snap them to the
grid and show the grid, so I'll snap them like
that so they look better, I'll also show interface
labels, so that looks better, and then I'll remove the grid,
and remove the snap to grid, so there's my topology, I could
also fit in view that way, to make them bigger, so they fit nicely, back in Solar-PuTTY,
devices are booting up, now this GNS3 VM doesn't
have a lot of RAM and CPU, all I allocated to it was
two gig and one virtual CPU. So not much has been allocated, you probably wanna allocate more than that if you're gonna be running IOSv layer two switches and IOSv routers. So as you can see, they're not running that quickly in this topology, but okay, my first router has booted, so let's give it a name, router one. I'll give the gigabit interface
an IP address of 10.1.1.1, slash 24 mask, I'll configure a loopback on the router as well, of let's say that, so show IP interface brief, shows me the IP address on the gigabit interface, and IP address on the loopback interface. I'll save the router configuration. That's now been saved, on router two, do something similar, post router two, interface gigabit zero zero, no shut it, IP address 10.1.1.2, slash 24 mask, I'll create a loopback,
of let's say 2.2.2.2, and hopefully I'll be
able to ping router one from router two, so actually router one, and there you go, so router
two can ping router one, and router one can hopefully
ping router two, which it can. What I'll do on router two as well is enable OSPF, so let's
enable a routing protocol on this router, I'll put all interfaces in area zero, do the same on router one, so router OSPF one, put all
interfaces in area zero, so hopefully, we'll form
a neighbor relationship from router one to router two, so at the moment it's two way. Might take it a while,
because I once again don't have a lot of RAM and
CPU enabled on the GNS3 VM. While we're waiting, I'll save
the router configurations. So show IP OSPF neighbor, still two way, I haven't configured the switch, so I'm gonna give the switch a host name, and then I could on VLAN one
give it an IP address as well, to make it part of the topology. So something like that,
and it should hopefully be able to ping the
routers in the topology. So there's my ping, it can ping router one and it can ping router two, so I'll save the config of that switch as well, so show IP OSPF neighbor on router one, we can see that the
relationship went to full, see that there again, show IP route, routing table is displayed, and router one should be able to ping
the loopback of router two which it can, router two should be able to ping the loopback of
router one, which it can. Okay so there's a topology with a Cisco switch and two Cisco routers. I said I'd show you how
to add a Docker container to the network, so under end devices, I'm gonna add a new template,
I'm gonna install this from the GNS3 server, click next, I'm gonna use a guest, in this example I'll simply choose something like Ubuntu Docker guest container. This runs Docker, which
means it'll automatically download the operating system
and make it available to me. So I'll install the
appliance on the GNS3 VM, and click finish, appliance
has been installed, now again, you can change your templates, so that you don't have
to constantly change the symbols in the topology, so here, I'll choose client, so that my template is using the affinity
symbols, so when I drag it in to the topology, that symbol will be used. Now in this example GNS3 is doing a pull, so it's pulling the image and installing the Docker container automatically. And this is what I like about Docker, you don't have to download a VM, you don't have to do
some complicated setup, you can simply add it to your topologies, and then pull it into your topology. Okay so there's my Docker container, added to the topology, now
when you right click on this, you can go to edit config,
and you can statically configure the IP address
here, or use DHCP. So what I'll do is I'll manually configure the PC with that IP
address default gateway and DNS server, so basically
pointing it to router one. I'll click save, and
then I'll start this up. And then I'll right click
and open up a console. So hopefully now, my Docker container will have an IP address, so ifconfig, IP address is this, ping 10.1.1.1, I can ping router one, and router two, and the switch from my Docker container. Just to prove a point, on
the router, debug IP ICMP, on the Docker container, ping router one, notice in the output you can see the debug's showing us
that the ping was received successfully, so the Docker
container can ping the router, and the router can ping
the Docker container. Okay so that's how you get a topology up and running in GNS3 with Cisco devices. I've got a Cisco switch,
I've got two Cisco routers, I've also added a Docker
container to this topology, this is all running on the GNS3 VM, which in this example is hosted
in VMware Workstation Pro. Now don't forget as always,
when you've got devices such as Cisco devices, you should save your configurations once you've finished. In this example I don't have to change my Docker container's IP address, that was configured through the GNS3 GUI, I'm gonna stop my GNS3 topology, and I'm gonna close GNS3 down, that'll shut the GNS3 GUI,
but it'll also shut down VMware, so in other words, the
GNS3 VM has also been closed, I'll start up GNS3
again, just to make sure that everything works, once
again when you see this, wait. Wait until your servers have started. So don't try and open your topology yet, wait for the GNS3 VM to boot up, successfully show the GNS3 menu, and then you can open your GNS3 topology. So there you go, it's booted up, so I'm gonna select recent
projects, Cisco IOS, there are my Cisco devices,
and my Docker container, I'll click start to start this up, and I'll open up a
console to those devices. Okay so there's my
first router booting up, there's my second
router, here's my switch, and here's my Docker container. One of the advantages
of Docker is it boots up extremely quickly, so
it's almost instant boot on Docker containers, these devices will take a while to boot up. Now it's taken it a while, but the devices have booted up, you may hear that there's a lot of noise,
the fan on this laptop is going crazy because these devices are quite large, and quite
a bit of memory and CPU, but as you can see there,
show IP route on router one, we've learnt a route to
the loopback of router two, so I can ping the loopback of router two, on router two, I should be able to ping the loopback of router one, which I can, switch should be able to ping, both those routers, I haven't
enabled the routing protocol on the switch yet, but I
could do that if I wanted to get it to ping the loopbacks. Docker container should be able to ping the loopback of router one, which it can, and it should be able to ping the loopback of router two, which it can. It's got a default gateway
of router one, so it can successfully ping the
loopbacks of both the routers. Okay there you go, I've
successfully bolted topology with Cisco devices, and a
Docker PC in my topology, now if you don't mind, if
you enjoyed this video, please like it, please also subscribe to my YouTube channel, and
please click on the bell to get notifications
when I post a new video. I'm David Bombal, I want to
wish you all the very best. (electronic music)