install
add-apt-repository ppa:gns3/ppa
apt update
apt install gns3-server gns3-gui
apt install tigervnc-viewer
apt install konsole
#IOU Support
dpkg --add-architecture i386
apt update
apt install gns3-iou
curl -sSLf https://get.docker.com | sh
apt install -qy python3 python3-pip
pip3 install --upgrade pip
pip3 install docker-compose
for i in ubridge libvirt kvm wireshark docker; do
sudo usermod -aG $i $(whoami)
done
#check
virt-host-validate
template
vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200 earlyprintk=ttyS0,115200 consoleblank=0 net.ifnames=0"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200"
apt install wget curl net-tools hping3 iperf3 tcpdump socat dnsutils bridge-utils ethtool frr bird2 mtr vnstat bmon
Remote Server (Debian10)
apt update
apt install locales
dpkg-reconfigure locales
apt install -y python3-pip apt-transport-https ca-certificates curl gnupg2 \
qemu qemu-kvm qemu-utils libvirt-clients libvirt-daemon-system virtinst libguestfs-tools bridge-utils
apt install dynamips
pip3 install gns3-server
curl -sSLf https://get.docker.com | sh
useradd -s /usr/sbin/nologin -m gns3
usermod -aG libvirt gns3
usermod -aG kvm gns3
usermod -aG docker gns3
dpkg --add-architecture i386
apt update
apt install gcc-8-base:i386 lib32z1 libc6:i386 libc6-i386 libgcc1:i386 libidn2-0:i386 libssl1.1:i386 libunistring2:i386
ln -s /lib/i386-linux-gnu/libcrypto.so.1.1 /usr/lib/libcrypto.so.4
- CiscoIOUKeygen3f.py
md5input=iouPad1 + iouPad2 + struct.pack('!i', ioukey) + iouPad1
md5input=iouPad1 + iouPad2 + struct.pack('!L', ioukey) + iouPad1
groupadd -r ubridge
usermod -aG ubridge gns3
apt install build-essential libpcap-dev git
git clone https://github.com/GNS3/ubridge
cd ubridge
make
make install
chmod 754 /usr/local/bin/ubridge
chown root:ubridge /usr/local/bin/ubridge
setcap cap_net_admin,cap_net_raw=ep /usr/local/bin/ubridge
git clone https://github.com/GNS3/vpcs
cd vpcs/src
./mk.sh
mv vpsc /usr/local/bin/
- /lib/systemd/system/gns3.service
[Unit]
Description=GNS3 server
Wants=network-online.target
After=network.target network-online.target
[Service]
User=gns3
Group=gns3
ExecStart=/usr/local/bin/gns3server
[Install]
WantedBy=multi-user.target
- /home/gns3/.config/GNS3/2.2/gns3_server.conf
[Server]
; IP where the server listen for connections
host = 0.0.0.0
; HTTP port for controlling the servers
port = 3080
; Option to enable SSL encryption
ssl = False
certfile=/home/gns3/.config/GNS3/ssl/server.cert
certkey=/home/gns3/.config/GNS3/ssl/server.key
; Path where devices images are stored
images_path = /home/gns3/GNS3/images
; Path where user projects are stored
projects_path = /home/gns3/GNS3/projects
; Path where user appliances are stored
appliances_path = /home/gns3/GNS3/appliances
; Path where custom device symbols are stored
symbols_path = /home/gns3/GNS3/symbols
; Option to automatically send crash reports to the GNS3 team
report_errors = True
; First console port of the range allocated to devices
console_start_port_range = 5000
; Last console port of the range allocated to devices
console_end_port_range = 10000
; First VNC console port of the range allocated to devices.
; The value MUST BE >= 5900 and <= 65535
vnc_console_start_port_range = 5900
; Last VNC console port of the range allocated to devices
; The value MUST BE >= 5900 and <= 65535
vnc_console_end_port_range = 10000
; First port of the range allocated for inter-device communication. Two ports are allocated per link.
udp_start_port_range = 20000
; Last port of the range allocated for inter-device communication. Two ports are allocated per link
udp_end_port_range = 30000
; uBridge executable location, default: search in PATH
;ubridge_path = ubridge
; Option to enable HTTP authentication.
auth = False
; Username for HTTP authentication.
user = gns3
; Password for HTTP authentication.
password = gns3
; Only allow these interfaces to be used by GNS3, for the Cloud node for example (Linux/OSX only)
; Do not forget to allow virbr0 in order for the NAT node to work
; allowed_interfaces = eth0,eth1,virbr0
; Specify the NAT interface to be used by the NAT node
; Default is virbr0 on Linux (requires libvirt) and vmnet8 for other platforms (requires VMware)
; default_nat_interface = vmnet10
[VPCS]
; VPCS executable location, default: search in PATH
;vpcs_path = vpcs
[Dynamips]
; Enable auxiliary console ports on IOS routers
allocate_aux_console_ports = False
mmap_support = True
; Dynamips executable path, default: search in PATH
;dynamips_path = dynamips
sparse_memory_support = True
ghost_ios_support = True
[IOU]
; Path of your .iourc file. If not provided, the file is searched in $HOME/.iourc
iourc_path = /home/gns3/.iourc
; Validate if the iourc license file is correct. If you turn this off and your licence is invalid IOU will not start and no errors will be shown.
license_check = True
[Qemu]
; !! Remember to add the gns3 user to the KVM group, otherwise you will not have read / write permissions to /dev/kvm !! (Linux only, has priority over enable_hardware_acceleration)
enable_kvm = True
; Require KVM to be installed in order to start VMs (Linux only, has priority over require_hardware_acceleration)
require_kvm = True
; Enable hardware acceleration (all platforms)
enable_hardware_acceleration = True
; Require hardware acceleration in order to start VMs (all platforms)
require_hardware_acceleration = False
systemctl enable gns3.service
systemctl start gns3.service
systemctl status gns3.service