Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gns3/gns3-server
GNS3 server
https://github.com/gns3/gns3-server
network network-emulator networking
Last synced: 3 days ago
JSON representation
GNS3 server
- Host: GitHub
- URL: https://github.com/gns3/gns3-server
- Owner: GNS3
- License: gpl-3.0
- Created: 2013-09-26T02:45:09.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T12:12:04.000Z (8 months ago)
- Last Synced: 2024-04-22T13:03:27.908Z (8 months ago)
- Topics: network, network-emulator, networking
- Language: Python
- Homepage:
- Size: 71.1 MB
- Stars: 745
- Watchers: 76
- Forks: 256
- Open Issues: 112
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
- Authors: AUTHORS
Awesome Lists containing this project
README
GNS3-server
===========[![image](https://github.com/GNS3/gns3-server/workflows/testing/badge.svg)](https://github.com/GNS3/gns3-server/actions?query=workflow%3Atesting)
[![image](https://img.shields.io/pypi/v/gns3-server.svg)](https://pypi.python.org/pypi/gns3-server)
[![image](https://snyk.io/test/github/GNS3/gns3-server/badge.svg)](https://snyk.io/test/github/GNS3/gns3-server)
This is the GNS3 server repository.
The GNS3 server manages emulators such as Dynamips, VirtualBox or
Qemu/KVM. 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 an HTTP REST API.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.
- libvirt is recommended (Linux only), as it\'s needed for the NAT
cloud.
- Docker is optional (Linux only), some nodes are based on Docker.
- mtools is recommended to support data transfer to/from QEMU VMs
using virtual disks.
- i386-libraries of libc and libcrypto are optional (Linux only), they
are only needed to run IOU based nodes.### Docker support
Docker support needs the script program (bsdutils or
util-linux package), when running a docker VM and a static
busybox during installation (python3 setup.py install / pip3 install /
package creation).Branches
--------### master
master is the next stable release, you can test it in your day to day
activities. Bug fixes or small improvements pull requests go here.### 2.x (2.3 for example)
Next major release
*Never* use this branch for production. Pull requests for major new
features go here.Linux
-----GNS3 is perhaps packaged for your distribution:
- Gentoo:
- Alpine:
- NixOS:
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.Dependencies:
- Python >= 3.8, setuptools and the ones listed
[here](https://github.com/GNS3/gns3-server/blob/master/requirements.txt)The following commands will install some of these dependencies:
``` {.bash}
sudo apt-get install python3-setuptools python3-pip
```Finally, these commands will install the server as well as the rest of
the dependencies:``` {.bash}
cd gns3-server-master
python3 -m pip install -r requirements.txt
python3 -m pip install .
gns3server
```To run tests use:
``` {.bash}
python3 -m pytest tests
```### Docker container
For development, you can run the GNS3 server in a container
``` {.bash}
bash scripts/docker_dev_server.sh
```### Run as daemon (Unix only)
You will find init sample scripts for various systems inside the init
directory.Useful options:
- `--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 executionAll init scripts require the creation of a GNS3 user. You can change it
to another user.``` {.bash}
sudo adduser gns3
```upstart
-------For ubuntu < 15.04
You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf
``` {.bash}
sudo chown root /etc/init/gns3.conf
sudo service gns3 start
```systemd
-------You need to copy init/gns3.service.systemd to
/lib/systemd/system/gns3.service``` {.bash}
sudo chown root /lib/systemd/system/gns3.service
sudo systemctl start gns3
```Windows
-------Please use our [all-in-one
installer](https://community.gns3.com/software/download) to install the
stable build.If you install via source you need to first install:
- Python (3.3 or above) -
- Pywin32 -Then you can call
``` {.bash}
python setup.py install
```to install the remaining dependencies.
To run the tests, you also need to call
``` {.bash}
pip install pytest pytest-capturelog
```before actually running the tests with
``` {.bash}
python setup.py test
```or with
``` {.bash}
py.test -v
```Mac OS X
--------Please use our DMG package for a simple installation.
If you want to test the current git version or contribute to the
project, you can follow these instructions with virtualenvwrapper:
and homebrew:
.``` {.bash}
brew install python3
mkvirtualenv gns3-server --python=/usr/local/bin/python3.5
python3 setup.py install
gns3server
```SSL
---If you want enable SSL support on GNS3 you can generate a self signed
certificate:``` {.bash}
bash gns3server/cert_utils/create_cert.sh
```This command will put the files in \~/.config/GNS3/ssl
After you can start the server in SSL mode with:
``` {.bash}
python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl
```Or in your gns3\_server.conf by adding in the Server section:
``` {.ini}
[Server]
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
certkey=/Users/noplay/.config/GNS3/ssl/server.key
ssl=True
```### Running tests
Just run:
``` {.bash}
py.test -vv
```If you want test coverage:
``` {.bash}
py.test --cov-report term-missing --cov=gns3server
```Security issues
---------------Please contact us using contact form available here: