menjelaskan cara memasang GNS3 Server pada Rocky Linux 9.5 (tanpa GUI desktop), menjalankannya sebagai service systemd, dan mengaksesnya dari browser atau GNS3 GUI melalui port 3080.
Table of Contents
Arsitektur & Alur Akses
Komponen utama:
- GNS3 Server: berjalan di VM Rocky Linux dan mengelola project/topologi.
- Client: laptop/PC untuk akses Web UI atau GNS3 GUI.
- Node lab: router/appliance (QEMU), VPCS, switch, cloud bridge, dll.
Endpoint penting:
- Web UI: http://:3080/static/web-ui/
- API Docs: http://:3080/docs
Rekomendasi untuk lab kecil-menengah:
- CPU: 2–4 vCPU (lebih banyak untuk appliance QEMU).
- RAM: 8 GB (lebih lega jika banyak node).
- Disk: 40–100 GB (tergantung image/appliance).
- Nested virtualization aktif agar /dev/kvm tersedia.
Sebelum instalasi, pastikan VM mendapatkan fitur virtualisasi CPU dari host (VT-x/AMD-V) agar KVM bisa digunakan.
Verifikasi di Rocky Linux:
grep -E 'vmx|svm' /proc/cpuinfo | head
ls -l /dev/kvm
Instalasi GNS3 Server
Update OS & Aktifkan Repository
Langkah ini memastikan repo CRB dan EPEL aktif agar dependency build tersedia.
dnf -y update
dnf -y install dnf-plugins-core
dnf config-manager --set-enabled crb
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
Catatan: CRB + EPEL membantu menyediakan paket tambahan yang sering dibutuhkan proses build di Rocky/RHEL.
Install Dependency (Build Tools + Virtualization)
dnf -y groupinstall "Development Tools"
dnf -y install \
git curl wget cmake make gcc gcc-c++ \
python3 python3-pip python3-devel \
libpcap-devel elfutils-libelf-devel \
qemu-kvm libvirt virt-install bridge-utils \
firewalld
Aktifkan service:
systemctl enable --now libvirtd
systemctl enable --now firewalld
catatan: libvirtd digunakan untuk lingkungan virtualisasi, sedangkan firewalld untuk membuka akses port controller.
Buat User gns3 & Struktur Direktori
useradd -m -s /bin/bash gns3
mkdir -p /home/gns3/GNS3/{images,projects,appliances,symbols,resources}
mkdir -p /home/gns3/.config/GNS3
mkdir -p /var/log/gns3
chown -R gns3:gns3 /home/gns3/GNS3 /home/gns3/.config /var/log/gns3
chmod 700 /home/gns3/.config/GNS3
usermod -aG kvm,libvirt gns3
catatan: Menjalankan GNS3 sebagai user non-root lebih aman dan mencegah masalah permission saat membuat JWT secret key dan database controller.
Build & Install Komponen GNS3
Komponen yang dipasang: uBridge (wajib), Dynamips (opsional), dan VPCS (opsional).
Install uBridge
mkdir -p /usr/local/src/gns3
cd /usr/local/src/gns3
git clone https://github.com/GNS3/ubridge.git
cd ubridge
make
make install
Verifikasi:
which ubridge
ubridge -h || true
catatan: uBridge digunakan untuk bridging interface (mis. node Cloud) dan interkoneksi jaringan di GNS3
Install Dynamips (opsional)
cd /usr/local/src/gns3
git clone https://github.com/GNS3/dynamips.git
cd dynamips
mkdir -p build && cd build
cmake ..
make
make install
Verifikasi:
which dynamips
dynamips --help || true
catatan: Dynamips diperlukan jika menggunakan image IOS lawas berbasis Dynamips
Install VPCS (opsional)
cd /usr/local/src/gns3
git clone https://github.com/GNS3/vpcs.git
cd vpcs/src
./mk.sh
cp vpcs /usr/local/bin/vpcs
chmod +x /usr/local/bin/vpcs
Verifikasi:
which vpcs
vpcs -v || true
catatan: VPCS adalah host ringan untuk uji ping, traceroute, dan routing dasar.
Install gns3-server (Python venv)
python3 -m venv /opt/gns3-venv
/opt/gns3-venv/bin/pip install --upgrade pip
/opt/gns3-venv/bin/pip install gns3-server
/opt/gns3-venv/bin/gns3server --version
catatan: Virtual environment menjaga paket Python GNS3 tidak mengganggu Python bawaan sistem.
Buat Konfigurasi GNS3 Server (di HOME user)
Simpan konfigurasi di /home/gns3/.config/GNS3 agar file JWT dan database controller dapat dibuat tanpa permission error.
cat > /home/gns3/.config/GNS3/gns3_server.conf <<'EOF'
[Server]
host = 0.0.0.0
port = 3080
images_path = /home/gns3/GNS3/images
projects_path = /home/gns3/GNS3/projects
appliances_path = /home/gns3/GNS3/appliances
symbols_path = /home/gns3/GNS3/symbols
resources_path = /home/gns3/GNS3/resources
# Security: aktifkan auth jika server diakses dari jaringan
auth = True
user = gns3
password = GantiPasswordDiSini
[VPCS]
vpcs_path = /usr/local/bin/vpcs
[Dynamips]
dynamips_path = /usr/local/bin/dynamips
[Qemu]
enable_kvm = True
require_kvm = True
EOF
chown gns3:gns3 /home/gns3/.config/GNS3/gns3_server.conf
chmod 600 /home/gns3/.config/GNS3/gns3_server.conf
catatan: Jika server diakses dari jaringan, disarankan auth=True dan gunakan password kuat.
Buat systemd service
cat > /etc/systemd/system/gns3.service <<'EOF'
[Unit]
Description=GNS3 Server
After=network.target
[Service]
Type=simple
User=gns3
Group=gns3
Environment="HOME=/home/gns3"
Environment="XDG_CONFIG_HOME=/home/gns3/.config"
WorkingDirectory=/home/gns3
ExecStart=/opt/gns3-venv/bin/gns3server --config /home/gns3/.config/GNS3/gns3_server.conf --log /var/log/gns3/gns3.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now gns3
systemctl status gns3 --no-pager
catatan: Service ini membuat GNS3 otomatis berjalan saat boot dan menyimpan log ke /var/log/gns3/gns3.log.
Buka Firewall Port 3080
firewall-cmd --permanent --add-port=3080/tcp
firewall-cmd --reload
catatan: Port 3080 adalah port utama API/Web UI GNS3 Server.
Verifikasi Instalasi
Cek port listening:
ss -plnt | grep 3080
Cek log:
tail -300f /var/log/gns3/gns3.log
Cek akses dari browser:
- http://<IP_VM>:3080/static/web-ui/
- http://:3080/docs
Jika port 3080 listen dan log bersih dari error permission/DB, server siap digunakan. Web UI dapat digunakan untuk membuat project, menambah node (Cloud/NAT/VPCS), dan menggambar topologi dari browser.
Refrensi: https://github.com/GNS3/gns3-server





