Install GNS3 Server di Linux Server

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.

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

Leave a Reply

Your email address will not be published. Required fields are marked *