Install GNS3 server locally
Important
Do this only if you have enough memory to spare. The GNS3 server requires you to dedicate a static amount of memory for its use. Each device (switch, router, vpcs) is an emulated instance with its own full copy of an operating system running in memory. A topology with a doze nodes needs a dozen OS' worth of RAM running simultaneously.
Budget for a minimum of 8GB RAM for GNS3 use.
Nested virtualization
Ensure your system supports nested virtualization, otherwise GNS3 will run painfully slow no matter how much RAM you set aside for its use.
Version compatibility
The client and server must be the same version. This course uses v2.2.61
Install the VM
- Download installer: GNS3.VM.Hyper-V.2.2.61.zip from GNS3 GUI Github repo
- Extract the GNS3 VM zip file
- Open the extract folder, and double-click on the
install-vm.batfile. A console window will flash on the screen for a while and close automatically. - verify that the GNS3 VM installation completed. Open Hyper-V Manager and you should see it listed under "Virtual Machines".
Configure the VM
- still inside Hyper-V Manager, go to GNS3 VM -> Settings and set Memory to a minimum of 8192 MB
- Enable nested Virtualization: open a Powershell console as Administrator.
Run the following commands one after the other:
Stop-VM -Name "GNS3 VM" Set-VMProcessor -VMName "GNS3 VM" -ExposeVirtualizationExtensions $true Set-VMMemory -VMName "GNS3 VM" -DynamicMemoryEnabled $false Start-VM -Name "GNS3 VM"
Hyper-V conflict with the VM
Hyper-V puts GNS3 VM on a vSwitch so that the controller, which runs
locally on the machine can communicate with the VM. The vSwitch owns
the 172.16.0.0/12 address space. This is the same address space used
by the VM's docker0 interface.
You must move the VM's docker's addressing out of this range to avoid potential conflict:
- Access the GNS3 VM. Go to Hyper-V Manager and select GNS3 VM. Start it if not running.
- Go to GNS3 VM -> Connect. This will launch a console window.
- Press Enter and use your keyboard arrows to select Shell and press Enter
- You should now have a shell prompt. When you're done, close the console window.
-
Edit
/etc/docker/daemon.json:First, backup the existing configuration so you can recover it if anything goes wrong:
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bakThen, edit the file:
{ "data-root": "/opt/docker", "bip": "10.199.0.1/24", "default-address-pools": [ { "base": "10.200.0.0/16", "size": 24 } ] } -
Then restart docker:
sudo python3 -m json.tool /etc/docker/daemon.json # ensure the json is well formed sudo systemctl restart docker
Verify setup
- Launch GNS3
- check "Enable the GNS3 VM"
- Virtualization engine: Hyper-V
- Action when closing GNS3: stop the GNS3 VM
- Open a project and drag a few devices and cables onto the canvas
Attention
Only Intel Mac is supported
- Install VMware Fusion
- Download GNS3 VM: GNS3.VM.VMware.Workstation.2.2.61.zip
- Extract the zip file
- Launch VMware Fusion, got to File -> Import then select the GNS3
.ova - Install Wireshark. Get the installer
- Launch GNS3. Go to Edit -> Preferences -> GNS3 VM:
- Ensure it's enabled
- Look for RAM input field and type in desired allocation (8192 MB minimum)
Attention
This assumes you've already install the client
- Install the server:
pipx install gns3-server==2.2.61 -
Install ubridge. Required to create raw interfaces GNS3 needs:
The setcap step is required — without it uBridge can't create the raw interfaces GNS3 needs.git clone --depth 1 --branch v1.2.1 https://github.com/GNS3/ubridge.git make -C ubridge sudo install -m 755 ubridge/ubridge /usr/local/bin/ubridge sudo setcap cap_net_admin,cap_net_raw=ep /usr/local/bin/ubridgeIf it fails
You may need to install dependencies:
sudo apt install build-essential libpcap-dev gitsudo dnf groupinstall "Development Tools" && sudo dnf install libpcap-devel git -
install dynamips:
sudo apt install dynamipssudo dnf install dynamipsNote
Requires RPM Fusion's nonfree repo
-
Install vpcs: Build from source (v0.6.2). Details at https://github.com/GNS3/vpcs.git
-
Install Wireshark:
sudo apt get install wireshark sudo dpkg-reconfigure wireshark-common # answer "Yes" to non-superuser capture sudo usermod -aG wireshark $USER``` sudo dnf install wireshark sudo usermod -aG wireshark $USER