- 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)