2013-10-05 02:45:15 +03:00
GNS3-server
===========
2020-06-26 12:25:52 +03:00
.. image :: https://github.com/GNS3/gns3-server/workflows/testing/badge.svg
:target: https://github.com/GNS3/gns3-server/actions?query=workflow%3Atesting
2015-02-05 11:36:39 +02:00
2015-02-05 11:49:27 +02:00
.. image :: https://img.shields.io/pypi/v/gns3-server.svg
:target: https://pypi.python.org/pypi/gns3-server
2020-06-27 11:57:04 +03:00
.. image :: https://snyk.io/test/github/GNS3/gns3-server/badge.svg
:target: https://snyk.io/test/github/GNS3/gns3-server
2014-10-27 23:58:13 +02:00
This is the GNS3 server repository.
2014-03-30 22:04:38 +03:00
The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM.
2020-04-29 08:27:15 +03:00
Clients like the `GNS3 GUI <https://github.com/GNS3/gns3-gui/> `_ and the `GNS3 Web UI <https://github.com/GNS3/gns3-web-ui> `_ control the server using a HTTP REST API.
2014-03-30 22:04:38 +03:00
2020-04-29 08:27:15 +03:00
Software dependencies
---------------------
In addition of Python dependencies listed in a section below, other software may be required, recommended or optional.
* `uBridge <https://github.com/GNS3/ubridge/> `_ is required, it interconnects the nodes.
* `Dynamips <https://github.com/GNS3/dynamips/> `_ is required for running IOS routers (using real IOS images) as well as the internal switches and hubs.
* `VPCS <https://github.com/GNS3/vpcs/> `_ is recommended, it is a builtin node simulating a very simple computer to perform connectitivy tests using ping, traceroute etc.
* Qemu is strongly recommended on Linux, as most node types are based on Qemu, for example Cisco IOSv and Arista vEOS.
2021-02-14 06:25:37 +02:00
* libvirt is recommended (Linux only), as it's needed for the NAT cloud.
2020-04-29 08:27:15 +03:00
* Docker is optional (Linux only), some nodes are based on Docker.
2021-02-14 06:25:37 +02:00
* mtools is recommended to support data transfer to/from QEMU VMs using virtual disks.
2020-04-29 08:27:15 +03:00
* i386-libraries of libc and libcrypto are optional (Linux only), they are only needed to run IOU based nodes.
2014-03-30 22:04:38 +03:00
2015-03-27 12:32:29 +03:00
Branches
--------
master
***** *
master is the next stable release, you can test it in your day to day activities.
2015-05-09 01:33:06 +03:00
Bug fixes or small improvements pull requests go here.
2015-03-27 12:32:29 +03:00
2020-04-29 08:27:15 +03:00
2.x (2.3 for example)
2019-05-17 12:14:19 +03:00
***** ***** ***** ***** *
2015-12-21 12:35:29 +02:00
Next major release
2015-05-09 01:33:06 +03:00
*Never* use this branch for production. Pull requests for major new features go here.
2015-03-27 12:32:29 +03:00
2015-04-22 18:13:39 +03:00
Linux
-----
GNS3 is perhaps packaged for your distribution:
2015-05-09 01:33:06 +03:00
2015-04-22 18:13:39 +03:00
* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server
2019-07-03 21:30:10 +03:00
* Alpine: https://pkgs.alpinelinux.org/package/v3.10/community/x86_64/gns3-server
2022-01-06 12:57:00 +02:00
* NixOS: https://search.nixos.org/packages?channel=21.11&from=0&size=50&sort=relevance&type=packages&query=gns3-server
2015-04-22 18:13:39 +03:00
2015-03-27 12:32:29 +03:00
2014-10-27 23:58:13 +02:00
Linux (Debian based)
--------------------
The following instructions have been tested with Ubuntu and Mint.
You must be connected to the Internet in order to install the dependencies.
2014-03-30 22:04:38 +03:00
Dependencies:
2020-12-23 05:33:20 +02:00
- Python 3.6, setuptools and the ones listed `here <https://github.com/GNS3/gns3-server/blob/master/requirements.txt> `_
2014-10-27 23:58:13 +02:00
The following commands will install some of these dependencies:
.. code :: bash
sudo apt-get install python3-setuptools
Finally these commands will install the server as well as the rest of the dependencies:
2014-03-30 22:04:38 +03:00
2014-04-02 19:33:35 +03:00
.. code :: bash
cd gns3-server-master
sudo python3 setup.py install
gns3server
2014-03-30 22:04:38 +03:00
2015-03-17 17:40:28 +02:00
To run tests use:
.. code :: bash
py.test -v
2015-04-22 18:13:39 +03:00
2017-02-13 12:39:21 +02:00
Docker container
***** ***** ***** *
For development you can run the GNS3 server in a container
.. code :: bash
2017-02-15 20:31:18 +02:00
bash scripts/docker_dev_server.sh
2017-02-13 12:39:21 +02:00
2015-04-23 12:00:21 +03:00
Run as daemon (Unix only)
***** ***** ***** ***** ***** *
2015-04-22 18:13:39 +03:00
2018-11-05 13:59:29 +02:00
You will find init sample scripts for various systems
2015-04-22 18:13:39 +03:00
inside the init directory.
2015-04-23 12:00:21 +03:00
Usefull options:
2015-05-09 01:33:06 +03:00
2015-04-23 12:00:21 +03:00
* --daemon: start process as a daemon
* --log logfile: store output in a logfile
* --pid pidfile: store the pid of the running process in a file and prevent double execution
2018-11-05 13:59:29 +02:00
All init scripts require the creation of a GNS3 user. You can change it to another user.
2015-06-09 18:29:01 +03:00
.. code :: bash
sudo adduser gns3
2015-04-22 18:13:39 +03:00
upstart
2019-05-17 12:14:19 +03:00
-------
2015-04-22 18:13:39 +03:00
For ubuntu < 15.04
You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf
.. code :: bash
sudo chown root /etc/init/gns3.conf
sudo service gns3 start
2015-06-09 18:29:01 +03:00
systemd
2019-05-17 12:14:19 +03:00
-------
2015-06-09 18:29:01 +03:00
You need to copy init/gns3.service.systemd to /lib/systemd/system/gns3.service
.. code :: bash
sudo chown root /lib/systemd/system/gns3.service
2015-06-11 18:07:13 +03:00
sudo systemctl start gns3
2015-06-09 18:29:01 +03:00
2014-03-30 22:04:38 +03:00
Windows
-------
2022-01-15 10:19:24 +02:00
Please use our `all-in-one installer <https://community.gns3.com/software/download> `_ to install the stable build.
2015-05-09 01:33:06 +03:00
If you install via source you need to first install:
- Python (3.3 or above) - https://www.python.org/downloads/windows/
- Pywin32 - https://sourceforge.net/projects/pywin32/
Then you can call
.. code :: bash
python setup.py install
to install the remaining dependencies.
To run the tests, you also need to call
.. code :: bash
pip install pytest pytest-capturelog
before actually running the tests with
.. code :: bash
python setup.py test
or with
.. code :: bash
py.test -v
2015-04-27 16:09:42 +03:00
2014-03-30 22:04:38 +03:00
Mac OS X
--------
2014-09-27 20:56:45 +03:00
Please use our DMG package for a simple installation.
2019-05-24 11:27:07 +03:00
If you want to test the current git version or contribute to the project,
2018-11-05 13:59:29 +02:00
you can follow these instructions with virtualenwrapper: http://virtualenvwrapper.readthedocs.org/
2014-09-27 20:56:45 +03:00
and homebrew: http://brew.sh/.
.. code :: bash
brew install python3
2018-10-15 13:08:18 +03:00
mkvirtualenv gns3-server --python=/usr/local/bin/python3.5
2014-09-27 20:56:45 +03:00
python3 setup.py install
gns3server
2015-06-11 18:07:13 +03:00
SSL
---
If you want enable SSL support on GNS3 you can generate a self signed certificate:
.. code :: bash
2015-07-03 16:03:58 +03:00
bash gns3server/cert_utils/create_cert.sh
2015-06-11 18:07:13 +03:00
2015-07-03 16:03:58 +03:00
This command will put the files in ~/.config/GNS3/ssl
2015-06-11 18:07:13 +03:00
After you can start the server in SSL mode with:
.. code :: bash
2015-07-03 16:03:58 +03:00
python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl
2015-06-11 18:07:13 +03:00
Or in your gns3_server.conf by adding in the Server section:
.. code :: ini
[Server]
2015-07-03 16:03:58 +03:00
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
certkey=/Users/noplay/.config/GNS3/ssl/server.key
2015-06-11 18:07:13 +03:00
ssl=True
2015-11-03 13:39:01 +02:00
2015-10-31 22:27:10 +02:00
Running tests
***** ***** ***
2014-09-27 20:56:45 +03:00
2015-10-31 22:27:10 +02:00
Just run:
.. code :: bash
py.test -vv
If you want test coverage:
.. code :: bash
2015-10-14 19:10:05 +03:00
py.test --cov-report term-missing --cov=gns3server
2017-04-13 13:38:16 +03:00
Security issues
----------------
2019-05-17 12:14:19 +03:00
Please contact us using contact form available here:
2017-04-13 13:38:16 +03:00
http://docs.gns3.com/1ON9JBXSeR7Nt2-Qum2o3ZX0GU86BZwlmNSUgvmqNWGY/index.html