As we all know, GNS3 (Graphical Network Simulator) provides the emulation of Cisco hardware so we can run the Cisco IOS (Internetworking Operating System) and learn most of the networking concepts without buying an expensive Cisco equipment. This was a boon not only for guys preparing for certifications but also for seasoned professionals who want to test their network design and configuration before rolling on to the production network.
Over the years GNS3 has evolved in terms of its performance, flexibility and user interface. Originally designed to emulate Cisco router hardware through Dynamips, and through its VM support GNS3 can run Cisco ASA, NX-OS (Nexus), IOS-XE, IOS-XR, Juniper vSRX, Openvswitch, Quagga router and more.
Furthermore, GNS3 can also run Cisco IOU (IOS for Unix) operating system which will unlock boundless possibilities inside GNS3.
What is Cisco IOU ?
IOU stands for IOS for Unix, a special operating system developed by Cisco to run on Unix (and hence Linux). While IOS runs only on Cisco embedded hardware, IOU on the other hand runs on the generic PC architecture such as x86.
Cisco uses IOU to provide its engineers to develop, test and debug IOS which will then get ported (cross-compiled) on to the Cisco native hardware architecture. Here’s what differentiates IOU on GNS3 from the conventional IOS powered routers :
- With Dynamips, the GNS’s internal Cisco hardware emulator, actual IOS images that run on the real Cisco routers are executed. This approach is resource intensive. Only few routers can be added before your PC hangs since each router is equivalent to running a VM (Virtual Machine).
- By using Cisco IOU, the Linux virtualization, only one instance of VM servers several devices. The performance is great and fluid. You can add 100+ devices with very low memory utilization.
- Another imperative reason for using IOU is that you can run different L2 and L3 images on the IOU VM and gain access not only to routers (as with Dynamips) but also to switches. This is particularly important for CCNP-Switch exam aspirants.
Let’s jump in and bring IOU to GNS3. Since IOU images are used by Cisco for its internal research and not yet been released for public usage, I can’t give you the direct links to download it. Just Google it to get the download links.
Before we begin, I assume you have the following things:
- GNS3 IOU VM .ova file
- Cisco IOU L2 and L3 images (by Googling)
- Cisco IOU license file iourc (by Googling)
Plus I presume that you have downloaded and installed Oracle VM Virtualbox.
Step #1 : Import the GNS3 IOU VM into Virtualbox.
Open Virtualbox VM manager and select Import Appliance from File menu. Otherwise hit Ctrl+I .
Browse and select the IOU VM .ova file you’ve downloaded. Click Next.
The Virtual appliance configuration detected in the .ova file are listed. Click Import.
After the import you’ll see the “GNS3 IOU VM” being listed along with other VMs in Virtualbox.
Step #2 : Start the GNS3 IOU VM and Connect to it from host PC (Windows).
Once the IOU VM boots, you’ll see the login prompt. Login with Username – root and Password – cisco. Plus note down the URL path to onto which we will upload the IOU images. In my case it’s ” http://192.168.56.101:8000/upload “.
Step #3 : Connect to the web server running inside the GNS3 IOU VM.
Open your favorite browser (mine is Firefox) in the host Windows PC and enter the URL you’ve noted down in the previous step. You should be able to open the IOU upload image web page.
Step #4 : Upload the L2 and L3 IOU images.
You may have several L2 and L3 IOU images in your downloaded directory. Pick one L2 and one L3 image and upload them to the GNS3 server. I find this GNS3 discussion at jungle useful in selecting the IOU image to upload.
After uploading the IOU images, you’ll find them listed under “Files on x.x.x.x:8000” in the webpage.
Step #5 : Configure Server settings in GNS3.
Start GNS3 in your Windows PC and open its Preferences window from the Edit menu (Ctrl+Shift+P). The Server Host binding should be same as the IP address of the Virtualbox Host-only Ethernet Adapter. In my case it’s “192.168.56.1″. The default IP address of the Host binding would be 127.0.0.1. Change that to the right IP address from the list.
Next in the remote servers settings, add the right IP address (192.168.56.101) and port (8000) of the GNS3 VM server. By default, GNS3 shows you the right IP address and port number. Just click Add. And Apply.
Step #5 : Add the IOU license file iourc to GNS3.
Step #6 : Add IOU devices to GNS3
Click on IOU Devices under IOU on Unix. Click on New; You’ll see that the remote server is automatically connected. Click Next.
The first IOU image that we uploaded was an L2 IOU binary. Let’s name it L2 Device. The IOS image path is the path that the image is in inside the IOU VM, which can be obtained from the webpage of the IOU VM. Click Finish.
The same procedure should be followed to add the L3 Device.
In the IOU Device Templates window, you’ll now see the L2 and L3 Devices we just added. Click OK.
Step #7 : Verify the working of IOU devices.
From the devices pane in GNS3 drag and drop several L2 and L3 devices on to the workspace. And Start them all. They should all connect to the IOU VM without any error and with negligible increase in the utilization of system memory.
Note : The GNS3 version should match the version of GNS3 IOU VM server you are running in Virtualbox. Otherwise you would not be able to start the IOU devices that have their image files in IOU VM. I had to downgrade GNS3 to 1.3.3 to get this working!