15
1 GNS3 1.2.X in the “Cloud” using CentOS 7.X Document Owner: Gian-Luca Casella (gcasella) Email: [email protected] Website: http://www.casellanetworks.ca (Under Construction) Version: 1.0

GNS3 on CentOS 7.X in the Cloud

Embed Size (px)

DESCRIPTION

ddd

Citation preview

Page 1: GNS3 on CentOS 7.X in the Cloud

1

GNS3 1.2.X in the “Cloud” using CentOS 7.X

Document Owner: Gian-Luca Casella (gcasella)

Email: [email protected]

Website: http://www.casellanetworks.ca (Under Construction)

Version: 1.0

Page 2: GNS3 on CentOS 7.X in the Cloud

2

This document in full will provide detailed instructions on how to have your GNS3 installation

accessible anywhere and everywhere without burdening your local machine with the resources

required to run multiple Cisco IOU devices. The main purpose of this document is to allow an end-user

running the GNS3 client on their Windows 7/8.X machine, and connect to their remote GNS3 Server

installation. This document does not go through the procedure of installing and configuring ESXi 5.5 or

OwnCloud services.

The hardware/software I have used to accomplish this is as follows;

- I have a dedicated ESXi 5.5 Server.

- 1 Virtual Machine configured as my OwnCloud server.

- 1 Virtual Machine configured as my GNS3 Server running CentOS 7.X.

- The OwnCloud Client installed on both my GNS3 Server Virtual Machine running CentOS 7.X

and my Windows 7/8.X Laptop.

Note: Using DropBox for this solution should work the same way. Also at the end of this document will

include items I still have yet to accomplish.

This document is broken up into 4 sections;

Section 1: Install and set up GNS3 Server on CentOS 7

Section 2: Install and setup GNS3 Client on Windows 8

Section 3: Test your new configuration

Section 4: Additional Information and Issues

Page 3: GNS3 on CentOS 7.X in the Cloud

3

Section 1: Install and set up GNS3 Server on CentOS 7

This section will provide detailed instructions on how to only install the GNS3 Server application on

your CentOS 7.X system. Note: this tutorial should work on any variant of Linux you prefer.

Pre-requisites Before beginning with the installation of GNS3 1.0, you will need necessary packages to be installed on the system. This section will go over what is needed. Note that all these commands will need to be used as root unless stated. Development tools will need to be installed (this can be done during the initial installation of CentOS 7.x, or you can use the following command as root to install the necessary packages;

yum groupinstall “Development Tools” Next, you’ll need to install some additional packages in order to begin the process of building your GNS3 environment on CentOS, also it’s recommended to perform a system update, issue the following two commands. yum update –y

yum install telnet openssl-devel cmake elfutils-devel uuid-devel libuuid-devel libpcap-devel iniparser iniparser-devel wireshark wireshark-devel wireshark-gnome pyqt4-devel If running 64-bit centos you need to install 32-bit openssl libraries use; yum install openssl-devel.i686 openssl-libs.i686 then run the command “ln -s /usr/lib/libcrypto.so.1.0.1e /usr/lib/i686/libcrypto.so.4

Next it’s recommended to disable SELinux to do so edit the /etc/sysconfig/selinux file and replace “enforced” with “disabled”

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded. #SELINUX=enforced SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection.

SELINUXTYPE=targeted Once all the above tasks are completed it is again recommended to reboot your system to ensure everything takes effect before moving forward.

Page 4: GNS3 on CentOS 7.X in the Cloud

4

Python3 Installation You’ll need Python3 to proceed with the following sections, you can install Python3 by using the commands – note this will install setuptools automatically for you;

cd /tmp && wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz tar zxvf Python-3.4.2.tgz cd Python-3.4.2 ./configure --enable-shared && make && make install To ensure your Python3 installation works correctly make sure you edit the /etc/ld.so.conf file and add "/usr/local/lib" (without quotes) on its own line, save the file and run the ldconfig command.

GNS3 SERVER INSTALLATION In order to start installing the GNS3 1.0 Server you’ll need to install some additional Python3

packages, use the following commands to accomplish this; pip3 install gns3-server

pip3 install pyzmq pip3 install tornado pip3 install netifaces pip3 install jsonschema pip3 install setuptools

git clone https://github.com/gns3/iouyap cd /home/username/Downloads/iouyap make && make install To install the most up to date version of the above packages use the option --upgrade with pip3, for example “pip3 install setuptools --upgrade”

Note: GNS3 Server works fine using the most up to date version of “tornado”. Running “pip3 install gns3-server” should automatically install most if not all pre-requisites for GNS3 to run properly.

If you chose to obtain the most up to date GitHub of GNS3 server using the “git clone https://github.com/GNS3/gns3-server” you can complete this action using the following commands;

cd /home/username/Downloads/gns3-server python3 setup.py install Important Note: If you plan to follow this document exactly, and you plan to have your GNS3 Client on Windows 7/8.X pleas refrain from using the GitHub clone as the Client and Server must have matching versions to work properly.

This completes the installation of the GNS3 server on CentOS 7.X, as the non-root user you can run the server by using the /usr/local/bin/gns3server command, or add this GNS3Server.desktop file to your ~/Desktop directory and set the appropriate permissions;

[user@gns3-iouvm ~]$ vi ~/Desktop/GNS3Server.desktop

[Desktop Entry] Name=GNS3 Server Exec=/usr/local/bin/gns3server Path=/usr/local/bin Terminal=true

Type=Application Categories=X-Red-Hat-Extra;Network;GTK;X-Fedora; Save and exit the file and set the appropriate permissions [user@gns3-iouvm ~]$ chmod 777 ~/Desktop/GNS3Server.desktop

Page 5: GNS3 on CentOS 7.X in the Cloud

5

Important Note: By default the installation and configuration of the GNS3Server will automatically

create a directory called ~/GNS3/projects in your home directory. In order to use this cloud based solution, you will need to modify line number 96 the /usr/local/lib/python3.4/site-packages/gns3_server-1.2.3-py3.4.egg/gns3server/server.py file with the appropriate directory that

synchronizes with your OwnCloud / DropBox account. For example, the screenshot below shows I have configured my GNS3 Server to make its active directory ~/ownCloud/GNS3/projects

Next we will need to enable some rules on the firewall in CentOS 7.X. Run the following commands in order to open the ports required by the GNS3 Server to allow for remote connections; firewall-cmd --permanent --zone=public --add-port=8000/tcp firewall-cmd --permanent --zone=public --add-port=3501-5000/tcp firewall-cmd --reload

One completed, you can go ahead and start your GNS3 Server and move onto the next section to set up your GNS3 Client on Windows 7/8.X.

Page 6: GNS3 on CentOS 7.X in the Cloud

6

Section 2: Install and setup GNS3 Client on Windows 8

First you’ll need to download and install the GNS3 Client for Windows from the GNS3 Website. Before

we begin with the configuration of the client, make sure you have your iourc.txt stored in your

C:\Program Files\GNS3 directory. Once installed go ahead and start the application and follow the

next set of instructions and screenshots.

Open the GNS3 Client preferences and set “My projects:” to the folder where your ownCloud or

DropBox synchronizes – in my example you will see I have selected my ownCloud\GNS3\projects the

same I configured in the server.py file;

Page 7: GNS3 on CentOS 7.X in the Cloud

7

Next configure the GNS3 Server – if you don’t want the server to start on your Windows 7/8.X remove

the data entered in the “Path:” field and uncheck the “Automatically start the server on startup”;

Move to the “Remote Servers” tab to enter the settings of your remote GNS3 server, as you can see I

have my GNS3 Server set up at 192.168.1.11 on port 8000;

Page 8: GNS3 on CentOS 7.X in the Cloud

8

Once completed press “Apply” but don’t close this window yet, the next steps will show how to set up

IOU. To do so click on the “IOS on UNIX” and browse for your iourc.txt file which will be pushed to the

GNS3 Server and then move onto the “Server settings” tab;

Page 9: GNS3 on CentOS 7.X in the Cloud

9

Make sure the “Always use the local server (Linux only) is unchecked;

Page 10: GNS3 on CentOS 7.X in the Cloud

10

Once complete, click “Apply” and move to the “IOU devices” section of the preferences, once you

arrive to that screen, click on “New” to add a new IOU device;

Page 11: GNS3 on CentOS 7.X in the Cloud

11

Click “Next” and enter the path of your IOU .bin file that is located on your remote server for example

and then click “Finish”;

Now you’re done with the configuration; you can go ahead and press “Apply” and “OK” to close off the

preferences of GNS3. It is best to restart the client fully before testing.

The next section will cover the testing of this new configuration.

Page 12: GNS3 on CentOS 7.X in the Cloud

12

Section 3: Test your new configuration

Here we go, time to test out your new configuration of GNS3. Open up the GNS3 client and create a

new project and start adding your new IOU device to the topology – the project name for this

document is “CentOS7_Doc”;

These screenshots shows the first screenshot I added 3 IOU devices, 2 routers and 1 switch.

Screenshot two is a snippet from my GNS3 Server running on CentOS 7.X.

Once completed you can shut down your devices and save your project once you save your project

you will see all of your files have synchronized.

Windows 7/8.X

Page 13: GNS3 on CentOS 7.X in the Cloud

13

CentOS 7.X GNS3 Server

The next section will go over some tips and tricks that I’ve come across while trying to complete this

task.

Page 14: GNS3 on CentOS 7.X in the Cloud

14

Section 4: Additional Information and Issues

If you wish to have VPCS run on your remote server you can complete this by performing the same

instructions for the GNS3 Server. Ensure that you point your VPCS settings to your remote server.

I’ve stumbled across a few issues while trying to complete this little project. They are listed below in

no particular order;

1) Remote VirtualBox manager – I wanted to set up Virtual Box Virtual Machines on my CentOS

7.X GNS3 Server and set up my Windows 7/8.X GNS3 Client to use those virtual machines,

when doing so I got the exception log below;

2) Using Wireshark for packet captures, it seems because the project directory is showing in a

Linux format and pointing to a completely different directory I get the following error;

It would be nice to change the working directory that your Wireshark looks in for all *.pcap

files.

Page 15: GNS3 on CentOS 7.X in the Cloud

15

I have yet to run into any other issues. If there is any other information that others would like to know

or additional information that I could add to this document please feel free to contact me at

[email protected].

One thing I love about this is that weather I’m at work, at a friends house, at home, or at a coffee

shop, as long as I have the GNS3 client installed configured with my ownCloud Client and/or DropBox

client, I will have all my topologies wherever I am and use any computer I wish.