Install & Deploy PNETLab v8 Unofficial
Panduan komprehensif install, upgrade existing, dan deploy PNETLab v8 Unofficial (channel paket 6.8.xxresolute1) pada Ubuntu Server 26.04 LTS Resolute. Mencakup network installer resmi Codeberg, flag --no-cloud-uplink, held packages, unit systemd Store yang sudah pensiun, UFW → iptables-persistent, dan checklist produksi.
- Rilis Dokumen v1.7.1 (Zero-Linter Hardening & Diagnostic Fixes): Penyelesaian menyeluruh atas 7 temuan linter IDE (trailing whitespace, unescaped HTML characters, vendor text-size-adjust, deprecated break-word, duplicate selector). Dokumen berstatus 100% Green Linter, valid HTML5, CSS3, dan ES6.
- Rilis Dokumen v1.7.0 (Proxmox VE 8+ & Navigation Refactoring): Penambahan Bab 6 khusus deployment OVA pada Proxmox VE 8+ (KVM nested virtualization, VirtIO SCSI single TRIM, disk discard/SSD emulation, anti-ballooning, firewall=0), pembersihan menu navbar dari portofolio & tutorial pihak ketiga, penyeragaman 7 ikon kanal komunikasi/pembayaran footer (42x42px), dan sinkronisasi struktur 19 bab secara konsisten.
- Sinkronisasi Sumber Resmi & Dedicated Mirror: Basis data dokumen terhubung langsung dengan repositori upstream
netkillui/Pnetlabv8(rilis APT6.8.79resolute1) serta repositori dedicated mirror resmi ALSYUNDAWY IT SOLUTION (repo.alsyundawy.com) yang menyediakan berkas Netinstall OVA 27H1, Full Bootable ISO v8.12, Full Turn-key OVA v8.12, dan Offline Update Tarball Bundle 6.8.62. - Zero-Warning Linter & Standar SEO: Title tag dioptimasi ketat di bawah 70 karakter (57 karakter) untuk standar SERP snippet Google & WCAG 2.4.2; deklarasi CSS
text-size-adjust: 100%dan-webkit-text-size-adjust: 100%dipasang berpasangan untuk meloloskan audit linter CSS modern secara paripurna. - Hardening Khusus Xiaomi / Redmi / POCO: Memperbaiki bug text-scaling HyperOS/MIUI dengan locking
text-size-adjust: 100%pada at-rule top-level (mencegah error parsing pada older WebViews), isolasi layoutoverflow: hiddenpada container code-block, penanganan punch-hole camera notch viaenv(safe-area-inset-*), dan pencegahan horizontal bounce viaoverscroll-behavior-x: none. - Responsivitas Universal (VGA 320px hingga 2K/4K): Breakpoint bertingkat dari 320px, 360px, 400px, 576px, 768px, 992px, 1400px, hingga 1920px menjamin nol text-clipping, touch-target WCAG 2.5.5 compliance (≥38px-44px), dan lebar minimum tabel responsif untuk kenyamanan membaca di smartphone kompak.
- Aksesibilitas & Standar WCAG 2.2 Level AA: Seluruh kontrol memiliki focus ring kontras tinggi (
:focus-visible), skip-link bypass navigasi, caption tabel screen reader, dan live announcer ARIA (aria-live="polite") pada fitur copy-to-clipboard. - SEO & Structured Data: Mengimplementasikan Open Graph komprehensif, Twitter Card, Canonical URL, dan skema JSON-LD
TechArticletervalidasi Schema.org.
- Eliminasi Total 7 Warning/Error Linter IDE: Menyelesaikan seluruh issue diagnosa linter IDE secara menyeluruh dengan status 0 error & 0 warning.
- Kepatuhan Karakter Khusus HTML: Mengonversi simbol
>yang tidak ter-escape pada snippet bashtee /etc/pnet-webconsole/guac.env >/dev/nullmenjadi entitas HTML resmi>. - Pembersihan Trailing Whitespace: Menghapus seluruh karakter spasi/tab di akhir baris (*trailing whitespace*) di seluruh baris dokumen (3.290+ baris).
- Standarisasi CSS Text-Size-Adjust: Menggunakan deklarasi murni
-webkit-text-size-adjust: 100%(standar Bootstrap Reboot) pada elemenhtmldanbodyuntuk menghilangkan warning inkompatibilitas Firefox/Safari pada linter IDE tanpa mengurangi proteksi font-scaling pada Xiaomi MIUI/HyperOS. - Deprecate
word-break: break-word: Menghapus keyword deprecatedword-break: break-worddan beralih ke spesifikasi CSS modernoverflow-wrap: anywherepada blok paragraf serta label kode responsif. - Konsolidasi Duplicate Selector: Menggabungkan selector ganda
.code-block .copy-btnpada breakpoint media query 360px menjadi satu deklarasi terpadu. - 13-Point Code Review Verification: Lolos verifikasi penuh untuk Bug, Syntax, Runtime, Logic, Memory, Dead Code, Duplicate Code, Circular Dependency, Performance, Security, Maintainability, Scalability, dan Readability.
- Panduan Komprehensif Deployment Proxmox VE 8+: Penambahan Bab 6 khusus instalasi dan konfigurasi PNETLab v8 OVA pada Proxmox VE 8.0–8.4+ (Debian 12 Bookworm, Kernel 6.5/6.8+). Mencakup verifikasi pra-syarat KVM nested virtualization di host (
options kvm-intel nested=Y/options kvm-amd nested=1), metode CLI produksi via ekstraksi OVA &qm importdisk, CLI otomatis viaqm importovfdengan hardware tuning wajib, serta wizard Web GUI PVE 8.3+. - Hardening Enterprise Proxmox VE: Penegasan parameter CPU type
host, penonaktifan memory ballooning (--balloon 0) untuk mencegah memory thrashing pada node QEMU, tuning diskVirtIO SCSI Singledengan flagdiscard=on,ssd=1,iothread=1, bypass firewall PVE pada interface bridge (firewall=0), integrasi multi-bridge VLAN trunking (vmbr1..`vmbr9`), serta aktivasiqemu-guest-agent. - Pembersihan Menu Navbar: Menghapus menu
Portofoliodan dropdownTutorialsbeserta tautan eksternal yang tidak relevan dengan scope PNETLab v8, menggantikannya dengan navigasi in-page langsung antar-bab penting. - Standardisasi Ikon Komunikasi & Pembayaran Footer: Mengganti tautan sosial media lama dengan 7 kanal resmi sesuai instruksi: Website, Email, GitHub, X (Twitter), Telegram, WhatsApp, dan PayPal dengan ukuran responsif 42x42px berstandar aksesibilitas WCAG 2.5.5.
- Struktur Dokumen 19 Bab yang Tersinkronisasi: Pembaruan penomoran bab secara konsisten pada Navbar, Drawer Mobile Offcanvas, Sidebar Desktop, Quick Navigation TOC, dan Footer tanpa ada broken anchor.
- Deep Research Sumber Primer Codeberg: Verifikasi faktual dan sinkronisasi status README resmi (
6.8.79), pointer channel rilis aktifpnetlab-latest.json(6.8.81resolute1, seq 81), dan rilis gagal yang sedang ditangani di lapangan (6.8.78resolute1). - Penambahan Bab Khusus Issue 4 (Codeberg Issue #19): Dokumentasi komprehensif insiden fatal bare-metal install
pnet-guac-lite.service restart-loop evidence: NRestarts=45; analisis akar masalah race condition kunciGUAC_CRYPT_KEY; perintah diagnostik terminal (systemctl show -p NRestarts,journalctl,ss -lntp :8081); serta skrip pemulihan/workaround sebelum eksekusi ulang installer. - Pemberitahuan Patch Komunitas (Codeberg Issue #35): Mengintegrasikan usulan perbaikan bootstrap resmi oleh ALSYUNDAWY IT SOLUTION yang menulis berkas
guac.envsebelum mutasi APT dan mengeksekusisystemctl reset-failed. - Penegasan Mutlak "NO UPGRADE FROM v4/v5/v6": Memberikan peringatan tegas di seluruh dokumen (Ringkasan, Bab Upgrade, Larangan Keras) bahwa TIDAK ADA jalur upgrade dari PNETLab generasi lama (v4/v5/v6 di Ubuntu 18.04/20.04) ke v8 Ubuntu 26.04 karena diskontinuitas arsitektur total.
- Integrasi Tracking Bug Upstream (Codeberg Issue #17): Memasukkan daftar bug rilis 6.8.77/6.8.78 (Bug 10 dialog canvas, Bug 20 network watcher tooltip, Bug 23 netem reset, Bug 28 VPC DNS resolution, Bug 41 running alert badge) ke checklist validasi runtime.
- Hardening Ekstrem Xiaomi, Redmi, POCO & Android: Memperbaiki overflow pada layar sempit 360px dengan flex-wrap pada
.code-header, pembatasan lebar label denganoverflow-wrap: anywhere, touch-target WCAG 2.5.5 pada tombol Copy, dan baseline padding fallback untuk punch-hole camera. - Struktur Dokumen 18 Bab yang Sinkron: Sinkronisasi penuh antara Navbar, Offcanvas Mobile Drawer, Sidebar Desktop, Quick Nav TOC, dan Footer Links tanpa ada broken anchor maupun tag mismatch.
- Dedicated Mirror Repository (repo.alsyundawy.com): Penambahan repositori mirror resmi ALSYUNDAWY IT SOLUTION berkecepatan tinggi tanpa batasan kuota download untuk mempercepat proses deployment dan penyediaan berkas lab.
- PNetLab-27H1-v8-netinstall.ova: Appliance virtual minimalis berbasis Ubuntu 27H1/Resolute khusus unattended autoinstaller via jaringan.
- PNetLab-27H1-v8.12.iso: Berkas full bootable ISO mandiri untuk instalasi bare-metal server fisik maupun virtual machine tanpa memerlukan internet saat partisi dan install.
- PNetLab-27H1-v8.12.ova: Full turn-key virtual appliance v8.12 siap pakai dengan performa lab tervirtualisasi optimal untuk VMware, ESXi, Proxmox VE, dan VirtualBox.
- pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz: Arsip tarball bundle offline untuk pembaruan in-place komponen platform 6.8.62 Resolute (sangat cocok untuk lingkungan tertutup / air-gapped lab).
- Panduan Ekstraksi & Deployment Bundle: Penambahan sub-bagian metode 4 upgrade pada Bab 6 khusus instalasi offline menggunakan berkas .tgz bundle serta verifikasi checksum terintegrasi.
- Zero-Warning Linter & SEO Title Audit: Mengoptimasi teks title dokumen menjadi 57 karakter (di bawah ambang batas 70 karakter) untuk kepatuhan penuh Google SERP dan linter; menambahkan deklarasi standar
text-size-adjust: 100%mendampingi prefix-webkit-untuk meloloskan audit kompatibilitas Chrome, Edge, Firefox, Safari, dan Samsung Internet tanpa warning.
- Katalog Mirror Download Lengkap: Menambahkan tabel komparasi rilis resmi upstream (Network Install, OVA Autoinstaller, Desktop Install Bundle, Custom Images, dan Codeberg Repo) berdampingan dengan tabel mirror publik komunitas (Telegram, Buzzheavier CDN, wdfiles.ru, Google Drive Shared, dan pnetlab.com legacy).
- Panduan Verifikasi Hash SHA256 & Security Advisory: Menambahkan sub-bagian audit keamanan unduhan pihak ketiga, instruksi CLI verifikasi checksum SHA256, dan mitigasi risiko CVE historis platform network emulation (CVE-2025-63749).
- Eliminasi Nested At-Rule CSS: Memperbaiki penempatan
@supports (text-size-adjust: 100%)ke level root untuk mencegah degradasi parsing pada WebView Xiaomi/MIUI lawas yang memicu hilangnya overflow containment. - Boundary Isolation Code-Block: Mengubah properti clipping code-block menjadi
overflow: hiddendanmin-width: 0dengan touch action horizontal pan khusus pada tag<pre>untuk membasmi terpotongnya teks pada smartphone berlayar sempit. - Hardening Layar VGA (320px): Menambahkan breakpoint khusus
@media (max-width: 320px)dan penyesuaian min-width tabel responsif (min-width: 440px/480px/520px/580px) agar data tabel tetap terbaca rapi dan dapat digeser secara kinetik tanpa merusak layout induk. - Integrasi DOCNOTE Khusus: Menambahkan panel dokumentasi teknis arsitektur dan baseline frontend di samping panel riwayat changelog rilis.
- Sinkronisasi Riset Codeberg Resmi: Sinkronisasi data primer rilis Codeberg
netkillui/Pnetlabv8per 21 September 2026 (PNetLab v8 6.8.79) mencakup 4 artefak resmi rilis upstream (Network Install Script, OVA autoinstaller, Desktop Install Bundle, dan Custom Images). - Dokumentasi Perintah
sudo pnetlab-update: Menambahkan sub-bagian khusus mekanisme bawaan resmi PNetLab v8 yang secara otomatis membaca channel rilis, mendownload paket terbaru, dan mengaplikasikannya in-place. - Jalur Fallback Manual Upgrade: Menambahkan panduan langkah-demi-langkah manual upgrade menggunakan
sudo dpkg -i pnetlab_<version>_amd64.debdansudo apt-get -f installsesuai instruksi resmi Codeberg untuk skenario ketika tool update otomatis terkendala. - Desktop Install Bundle (Xubuntu Recommended): Menjelaskan spesifikasi bundle desktop untuk bare-metal Ubuntu Desktop vs Xubuntu Desktop (rekomendasi upstream karena hemat resource dan mendukung dual-boot Windows / external SSD).
- Detail Custom Images Pack: Merinci paket image kustom upstream MEGA yang mencakup Wi-Fi AP, Wi-Fi client, dan ROCEv2 client dengan driver soft-RoCE (RXE) siap pakai.
- Standard
text-size-adjust: 100%: Menambahkan properti standar (Chrome 79+, Firefox 116+) di samping-webkit-text-size-adjustuntuk mengatasi HyperOS/MIUI font-scaling secara menyeluruh. - Xiaomi 360px Breakpoint: Breakpoint baru
@media (max-width: 360px)menargetkan Redmi 9, Redmi Note 9/10/11, POCO M3/M4/X3 — memperbaiki font-size, padding, touch-target, dan tabel agar tidak overflow. overscroll-behavior-x: none: Mencegah horizontal elastic scroll/bounce pada Android (Xiaomi/Redmi/POCO) yang menyebabkan halaman bergeser horizontal saat swipe-scroll.- Fix
.code-blockoverflow: Mengubahoverflow: hiddenmenjadioverflow-x: clip; overflow-y: visibleagar innerpredapat scroll horizontal di mobile tanpa merusak border-radius clipping. - Fix
ol.list-custom: Menambahkan CSS counter-based ordering (counter-reset / counter-increment) agar<ol>yang memakailist-customtampil sebagai angka berurut, bukan bullet bulat. - Fix
.inline-code: Menambahkandisplay: inlineeksplisit untuk mencegah block-layout pada inline code di dalam paragraf. - WCAG 2.2 Focus Ring: Menambahkan
.back-to-top:focus-visibleoutline biru (#60a5fa) agar tombol kembali-ke-atas dapat dioperasikan via keyboard sesuai WCAG 2.2 kriteria 2.4.11. - SEO Enrichment: Menambahkan
og:image:alt,twitter:image, dantwitter:image:altyang sebelumnya hilang — meningkatkan Open Graph & Twitter Card compliance.
- Cross-Device Hardening: Optimasi rendering khusus perangkat mobile Xiaomi, Redmi, POCO (HyperOS / MIUI font-scaling bug & safe-area notch layout clipping). Resolusi stabil dari VGA (320px) hingga 2K/4K ultrawide.
- Zero-Error Linting: Menghilangkan seluruh warning kompatibilitas linter (
meta[name=theme-color],text-size-adjust,scrollbar-color,scrollbar-width) dengan progressive enhancement. - Accessibility & WCAG: Perbaikan hierarki heading semantik (H1 → H2 → H3), landmark semantik
<main>, ARIA live feedback pada tombol salin, dan table captions tersembunyi untuk screen reader. - JavaScript Modernization: Migrasi properti legacy
window.pageYOffsetke standarwindow.scrollYserta penanganan dynamic scrollbar progressive styling.
- Landing resmi: codeberg.org/netkillui/Pnetlabv8 — README per 18 September 2026 menandai channel
PNetLab v8 6.8.79. - RETEX upgrade: 6.8.62resolute1 → 6.8.74resolute1 pada Ubuntu 26.04; issue jaringan, held packages, dan unit systemd Store dilaporkan ke upstream sebagai Codeberg #7 dan #8.
- Installer: manifest-driven network installer dari Codeberg generic package
pnetlab-core-assets. - Bukan produk resmi pnetlab.com (line lama 4.x/5.x). Ini fork/komunitas v8 untuk Ubuntu 26.04 Resolute.
Ringkasan & Status Sumber (per 21 September 2026)
PNETLab v8 Unofficial adalah platform emulasi jaringan self-hosted modern yang dirancang khusus untuk Ubuntu 26.04 LTS “27H1 Resolute” (arsitektur amd64 dengan akselerasi wajib /dev/kvm). Seluruh landing download, release manifest, dan repositori APT dikelola secara resmi di Codeberg pada organisasi netkillui. Versi pada README landing adalah PNetLab v8 6.8.79, sedangkan channel pointer resmi aktif (pnetlab-latest.json) mengarah ke 6.8.81resolute1 (sequence 81, timestamp 18 September 2026). Rilis yang sedang aktif ditangani di lapangan karena kegagalan fatal instalasi bare-metal adalah 6.8.78resolute1.
- Empat artefak resmi upstream & mirror ALSYUNDAWY: (1) Network Install Script, (2) OVA Autoinstaller / Netinstall OVA, (3) Full Standalone ISO v8.12 & Turn-key OVA v8.12, dan (4) Offline Update Tarball Bundle 6.8.62 yang di-mirror berkecepatan tinggi di repo.alsyundawy.com/?berkas=PnetLab.
- Paket deb manifest-pinned resmi:
pnetlab,pnetlab-docker,pnetlab-guacd,pnetlab-qemu,pnetlab-schema,pnetlab-vpcs, serta modul kernel best-effortpnetlab-bridge-dkms. - Daemon & unit yang diverifikasi installer: Broker unix socket (
pnetlab-brokerd.service), HTTP bridge (127.0.0.1:8025), Console mux telnet (:8022) & VNC (:6080), Shell bridge (:8023), serta HTML5 console (pnet-guac-lite.service :8081). - Trust Anchors: Offline manifest signer fingerprint
158D99DF8D57040AA8E0EDA58F353DF9007A2BB4dan APT repository signing key fingerprintEA21DC771565BC84C57A610861756807AC7005EC. - Jalur upgrade host v8: Built-in
sudo pnetlab-updateuntuk update otomatis in-place, Network Installer dengan flag--no-cloud-uplink, serta Manual Upgradedpkg -i+apt-get -f installsebagai fallback resmi upstream.
/opt/unetlab/addons/) dari cadangan lama.
pnet-guac-lite.service (NRestarts=45) masih OPEN di upstream issue tracker (0 komentar pengembang). Jangan biarkan host yang exit 1 di-loop dengan skrip curl | bash berulang kali tanpa memeriksa status marker /var/lib/pnetlab/network-install-owner dan mereset counter systemd failed (lihat Bab 11).
Arsitektur Deploy yang Direkomendasikan
Pisahkan build/install host dari eksperimen lab jika memungkinkan. Untuk lab produksi internal, satu host dedicated (bare-metal atau VM nested-virt) lebih aman daripada menumpuk di hypervisor yang sudah padat.
PNETLab v8 UNOFFICIAL
│
┌─────────────────┼─────────────────┐
│ │ │
Fresh Ubuntu 26.04 Existing host OVA / ISO / Bundle
(network install) 6.8.62 → latest repo.alsyundawy.com
│ │ │
▼ ▼ ▼
ethX → pnet0 (mgmt) --no-cloud-uplink DHCP / static
pnet1..pnet9 + nat0 preserve ifaces web UI HTTPS
│ │ │
└─────────────────┴─────────────────┘
│
GUI https://<host-ip>/ + nested virt
Spesifikasi Host
| Komponen | Minimum (lab ringan) | Rekomendasi Lab Serius |
|---|---|---|
| CPU | 4 vCPU + VT-x / AMD-V | 16–32 vCPU + nested virt |
| RAM | 8 GB | 64–128 GB |
| Storage | 40 GB | 500 GB–2 TB NVMe (image QEMU) |
| OS | Ubuntu Server 26.04 LTS Resolute amd64 | |
| Hypervisor | Bare-metal / Proxmox / ESXi / VMware WS | Nested virtualization wajib untuk node QEMU |
host, aktifkan nested=1, dan berikan NIC virtio. Di ESXi: expose virtualization to guest. Tanpa itu, node QEMU akan gagal atau sangat lambat.
Persyaratan Umum & Prinsip Deploy
- Hanya Ubuntu 26.04 Resolute amd64 untuk metode network install resmi.
- Hardware virtualization aktif (cek
grep -E 'vmx|svm' /proc/cpuinfo). - Akses root / sudo, koneksi ke Codeberg + Docker Hub (atau mirror).
- Jangan campur repo resmi lama
repo.pnetlab.comdengan channel v8 Codeberg. - Backup dulu: lab XML, startup-config, image di
/opt/unetlab/addons, dump MySQL jika ada data Store/user. - Jika host remote via SSH: simpan aturan firewall sebelum transaksi APT (UFW bisa dihapus installer).
Fresh Install — Ubuntu Server 26.04 + Network Installer
4.1 Siapkan OS
Install Ubuntu Server 26.04 LTS amd64. Pilih OpenSSH. Setelah boot:
sudo hostnamectl set-hostname pnetlab-v8
sudo apt update
sudo apt full-upgrade -y
hostnamectl
uname -m
cat /etc/os-release
grep -E 'vmx|svm' /proc/cpuinfo | head
# Harus: x86_64 + Ubuntu 26.04 + flag virt
4.2 Network Installer (host bersih)
Pada host baru tanpa /etc/network/interfaces custom, perintah resmi README:
curl -fsSL \
https://codeberg.org/api/packages/netkillui/generic/pnetlab-core-assets/0.channel/pnetlab-network-install-latest.sh \
| sudo bash -s -- \
--yes \
--release latest
Installer bersifat manifest-driven: resolve channel pointer bertanda tangan → unduh manifest rilis → enroll APT source Codeberg → simulasi transaksi → mutasi paket. Contoh log sukses resolve:
channel pointer resolved: release=6.8.78resolute1 sequence=78
=== fetching release manifest ===
channel pointer/manifest identity matches
=== preflight: exact transaction simulation ===
curl | sudo bash adalah rantai kepercayaan ke Codeberg. Verifikasi URL, pin rilis jika kebijakan keamanan Anda menuntutnya, dan jalankan dari sesi yang bisa Anda monitor (tmux/screen) — jangan dari laptop yang akan tidur di tengah compile/DKMS.
Sumber Unduhan Resmi Upstream, Mirror Dedicated ALSYUNDAWY & Komunitas PNETLab v8
Distribusi berkas instalasi PNETLab v8 Unofficial untuk platform Ubuntu 26.04 LTS Resolute / 27H1 tersedia melalui tiga saluran utama: Dedicated Mirror Resmi ALSYUNDAWY IT SOLUTION (repo.alsyundawy.com) yang berkecepatan tinggi dan bebas batas kuota, Saluran Rilis Resmi Upstream (Codeberg & Mega), serta Mirror Publik Komunitas Global (Telegram, Buzzheavier, wdfiles, & Google Drive).
5.1 Dedicated Mirror Resmi ALSYUNDAWY IT SOLUTION (repo.alsyundawy.com) — [Direkomendasikan]
Seluruh berkas fisik berikut di-hosting langsung pada infrastruktur cloud repository berkecepatan tinggi ALSYUNDAWY IT SOLUTION dan dapat diunduh langsung via direct download link (tanpa login, bebas batasan transfer, resumable via curl -C - atau wget -c). Untuk menelusuri daftar direktori berkas repositori secara visual, akses portal skrip di repo.alsyundawy.com/?berkas=PnetLab (proteksi indeks Nginx aktif):
| Nama Berkas | Tipe & Format | Spesifikasi, Target & Kegunaan | Aksi Unduhan (Direct Link) |
|---|---|---|---|
| PNetLab-27H1-v8-netinstall.ova | Appliance Netinstall (.ova) VMware / ESXi / Proxmox |
Appliance virtual minimalis Ubuntu 27H1/Resolute. Ukuran berkas sangat ringkas untuk bootstrapping cepat; autoinstaller unattended secara otomatis menarik dan mengonfigurasi paket rilis PNETLab v8 terbaru saat pertama kali dinyalakan. | Unduh OVA |
| PNetLab-27H1-v8.12.iso | Full Standalone ISO (.iso) Bare-metal Fisik & VM |
Image instalasi ISO mandiri PNETLab 27H1 versi 8.12. Ideal untuk instalasi langsung pada server fisik (Dell PowerEdge, HPE ProLiant, Supermicro), bootable flashdisk (Ventoy / Rufus DD mode), ataupun instalasi VM baru tanpa memerlukan akses internet selama proses partisi. | Unduh ISO |
| PNetLab-27H1-v8.12.ova | Full Turn-key OVA (.ova) VMware / VirtualBox / KVM |
Virtual appliance lengkap turn-key ready PNETLab 27H1 rilis v8.12. Seluruh dependensi core dan kernel telah terpasang di dalam disk virtual VMDK. Cukup import ke hypervisor pilihan Anda, hidupkan VM, dan lab langsung siap diakses via web browser. | Unduh OVA |
| pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz | Offline Update Bundle (.tgz) Tarball Arsip / In-place |
Paket arsip tarball bundle lengkap untuk pembaruan in-place komponen PNETLab v8 platform 6.8.62 Resolute (27H1). Sangat esensial untuk server lab produksi terisolasi (air-gapped network) yang tidak memiliki koneksi internet publik. | Unduh Bundle |
# Unduh OVA Netinstall (bootstrapping cepat via jaringan):
wget -c https://repo.alsyundawy.com/PnetLab/PNetLab-27H1-v8-netinstall.ova
# Unduh Full Bootable ISO v8.12 (bare-metal server / VM):
wget -c https://repo.alsyundawy.com/PnetLab/PNetLab-27H1-v8.12.iso
# Unduh Full Pre-built OVA v8.12 (turn-key siap pakai di hypervisor):
wget -c https://repo.alsyundawy.com/PnetLab/PNetLab-27H1-v8.12.ova
# Unduh Offline Update Tarball Bundle 6.8.62 (air-gapped / in-place upgrade):
wget -c https://repo.alsyundawy.com/PnetLab/pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz
5.2 Artefak Rilis Resmi Upstream (Codeberg & Mega)
| Artefak | Format & Target | Spesifikasi & Karakteristik | Tautan Unduhan |
|---|---|---|---|
| Network Install Script | Shell Script (.sh) Ubuntu 26.04 Server |
Skrip installer resmi yang membaca channel manifest, mempartisi storage, mengonfigurasi repository APT Codeberg, dan menarik paket v8 terbaru secara otomatis. | Download Script |
| OVA Autoinstaller | Appliance (.ova) VMware / ESXi / VirtualBox |
Image VM minimal Ubuntu 26.04 dengan autoinstaller unattended. Otomatis mempartisi storage dan menyetel PNETLab v8, pengguna hanya memilih konfigurasi IP (DHCP/Static). | Mega OVA |
| Desktop Install Bundle | Workstation Bundle Bare-metal Desktop |
Installer untuk lingkungan workstation fisik. Teruji pada Ubuntu 26.04 Desktop & Xubuntu 26.04 Desktop — Xubuntu sangat direkomendasikan karena footprint resource (RAM/CPU) jauh lebih hemat. Mendukung dual-boot Windows & external SSD. | Mega Bundle |
| Custom Images Pack | Lab Image Addons QEMU / Docker Addons |
Paket image lab siap pakai resmi: Wi-Fi Access Point, Wi-Fi client, dan ROCEv2 client dengan driver soft-RoCE (RXE) pra-konfigurasi untuk riset jaringan modern. | Mega Folder |
| Codeberg Upstream Repo | Git / Forgejo Landing & Issues |
Landing repository resmi untuk tracking channel rilis 6.8.xx, generic packages registry, dan issue tracker upstream (issue #7 held packages, #8 systemd Store). | Codeberg Repo |
5.3 Repositori Publik Komunitas, Mirror ISO / OVA & Saluran Distribusi
Bagi pengguna yang membutuhkan file image utuh (ISO) untuk instalasi bare-metal mandiri tanpa koneksi internet penuh saat instalasi atau terkendala batas bandwidth, komunitas jaringan global menyediakan beberapa saluran mirror publik:
| Saluran / Mirror | Format Berkas | Deskripsi & Penggunaan | Status & Akses |
|---|---|---|---|
| Telegram Komunitas PNETLab | Kanal Resmi & Grup | Pusat penyebaran rilis komunitas tercepat: rilis v8.x, link mirror ISO/OVA harian, patch update (.tgz untuk di-upload via WinSCP), serta tanya-jawab teknis. | t.me/pnetlab_official |
| Buzzheavier Public CDN Mirror | Full ISO & OVA | Mirror berkecepatan tinggi tanpa batasan kuota download Mega yang sering dibagikan dalam tutorial YouTube dan forum teknis untuk file ISO mandiri. | Tautan via rilis Telegram / forum |
| wdfiles.ru Mirror Repository | ISO Image / Disk Raw | Mirror publik alternatif regional untuk instalasi bare-metal ISO dan image virtual disk PNETLab v8. | Tautan via rilis Telegram / forum |
| Google Drive Community Shared Folders | Cloud Mirror & Addons | Mirror Google Drive komunitas untuk template VMware, file instalasi offline, dan repositori vendor node image (Cisco IOL/QEMU, MikroTik CHR, Fortinet, Arista vEOS). | Shared Drive komunitas terverifikasi |
| Portal Resmi Legacy (pnetlab.com) | Dokumentasi Legacy | Portal dokumentasi produk lama (PNETLab 4.x/5.x di Ubuntu 18.04/20.04). Catatan penting: Tidak menyediakan installer v8 Ubuntu 26.04 dan TIDAK BISA digunakan untuk upgrade ke v8 (v8 adalah ekosistem manifest-driven independen). | pnetlab.com |
5.4 Verifikasi Integritas Berkas (SHA256 Checksum)
# Verifikasi checksum berkas unduhan dari repo.alsyundawy.com:
sha256sum PNetLab-27H1-v8-netinstall.ova
sha256sum PNetLab-27H1-v8.12.iso
sha256sum PNetLab-27H1-v8.12.ova
sha256sum pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz
# Verifikasi checksum berkas rilis upstream Codeberg / Mega:
sha256sum pnetlab-v8-resolute-*.ova
sha256sum pnetlab-v8-resolute-*.iso
# Cocokkan output hash dengan catatan resmi rilis pada repositori Codeberg / kanal Telegram
5.5 Langkah Cepat Deploy OVA (Netinstall vs Full Turn-Key OVA)
Tersedia dua varian OVA pada repositori mirror ALSYUNDAWY:
- Varian Netinstall (
PNetLab-27H1-v8-netinstall.ova): Appliance VM berukuran minimal. Saat pertama kali dihidupkan, VM akan meminta parameter IP (DHCP/Static) dan menjalankan autoinstaller unattended yang menarik paket rilis terbaru secara online. - Varian Full Turn-Key (
PNetLab-27H1-v8.12.ova): Appliance VM lengkap dengan seluruh paket PNETLab v8.12 yang telah terpasang di disk. Sangat cocok jika Anda menginginkan VM langsung siap digunakan dalam hitungan menit tanpa bergantung pada koneksi internet cepat. - Persyaratan Hardware Virtualization: Pastikan opsi Hardware Virtualization (VT-x / AMD-V) dan Nested Virtualization dicentang aktif di konfigurasi prosesor VM pada VMware / ESXi / Proxmox VE.
- Setelah VM menyala dan menyelesaikan inisialisasi, akses Web GUI PNETLab melalui browser di
https://<host-ip>/.
5.6 Panduan Instalasi Server Fisik / VM via Full ISO (PNetLab-27H1-v8.12.iso)
- Unduh file ISO
PNetLab-27H1-v8.12.isodari mirror ALSYUNDAWY. - Untuk server fisik bare-metal, buat USB bootable menggunakan Ventoy (cukup copy file ISO ke flashdisk) atau gunakan tool seperti Rufus (pilih mode DD Image) / perintah
dd if=PNetLab-27H1-v8.12.iso of=/dev/sdX bs=4M status=progresspada Linux/macOS. - Pasang USB ke server atau mount ISO sebagai Virtual CD/DVD pada Proxmox / ESXi / Hyper-V.
- Boot perangkat ke ISO installer, ikuti panduan partisi disk otomatis, tentukan username dan konfigurasi jaringan awal.
- Reboot host, lepaskan media instalasi, dan akses dashboard web PNETLab.
eth0 → pnet0, dhcpcd, pnet1–pnet9, nat0), gunakan metode Network Install + --no-cloud-uplink agar installer tidak menimpa topologi interface Anda.
Deploy PNETLab v8 OVA pada Proxmox VE 8+ (Security & CLI/GUI)
Bab ini menyajikan panduan resmi dan standar operasional enterprise untuk mengimpor dan menjalankan citra PNETLab v8 Virtual Appliance (.ova) pada hypervisor Proxmox Virtual Environment (PVE) 8 ke atas (PVE 8.0, 8.1, 8.2, 8.3, dan 8.4 berbasis Debian 12 Bookworm dengan Linux Kernel 6.5 / 6.8+). Panduan ini mencakup akselerasi KVM nested, penonaktifan memory ballooning, tuning disk VirtIO SCSI single dengan TRIM/discard, isolasi bridge, dan QEMU Guest Agent.
6.1. Pra-Syarat Host PVE: Verifikasi KVM Nested Virtualization
Karena PNETLab v8 mengeksekusi mesin virtual (Cisco IOL, QEMU, Docker, Arista, Juniper) di dalam dirinya sendiri, host fisik Proxmox VE wajib mengaktifkan Nested Virtualization pada level modul kernel:
# --- [UNTUK PROSESOR INTEL] ---
# Periksa status nested (output wajib: Y atau 1)
cat /sys/module/kvm_intel/parameters/nested
# Jika output N, aktifkan secara permanen:
echo "options kvm-intel nested=Y" | sudo tee /etc/modprobe.d/kvm-intel.conf
sudo modprobe -r kvm_intel && sudo modprobe kvm_intel
# --- [UNTUK PROSESOR AMD] ---
# Periksa status nested (output wajib: 1)
cat /sys/module/kvm_amd/parameters/nested
# Jika output 0, aktifkan secara permanen:
echo "options kvm-amd nested=1" | sudo tee /etc/modprobe.d/kvm-amd.conf
sudo modprobe -r kvm_amd && sudo modprobe kvm_amd
6.2. Unduh Berkas OVA Langsung ke Storage Proxmox VE
Login ke shell host Proxmox VE via SSH atau Web Console, lalu unduh berkas appliance resmi dari dedicated mirror repo.alsyundawy.com langsung ke direktori sementara atau storage dump:
# Masuk ke direktori temporary atau dump storage
cd /var/lib/vz/dump || cd /tmp
# Unduh appliance PNetLab OVA dari dedicated mirror
wget -c https://repo.alsyundawy.com/PnetLab/PNetLab-27H1-v8.12.ova
# Validasi integritas hash SHA256 sebelum ekstraksi
sha256sum PNetLab-27H1-v8.12.ova
6.3. Metode A (Rekomendasi CLI Produksi): Ekstraksi OVA & qm importdisk
Metode ini merupakan standar paling stabil di seluruh versi PVE 8.x karena memberikan kontrol penuh atas arsitektur disk controller, jenis CPU, dan alokasi bus SCSI:
Berkas OVA adalah arsip tar standar. Ekstrak untuk mendapatkan file disk .vmdk dan spesifikasi .ovf:
tar -xvf PNetLab-27H1-v8.12.ova
# Menghasilkan berkas: PNetLab-27H1-v8.12.ovf dan disk-001.vmdk
ls -lh *.vmdk *.ovf
Gunakan parameter hardware enterprise: CPU type wajib host, RAM minimum 16 GB, ballooning dimatikan (--balloon 0), controller virtio-scsi-single, dan QEMU Guest Agent diaktifkan:
qm create 800 --name "PNETLab-v8-Enterprise" --ostype l26 --cpu host --cores 8 --sockets 1 --numa 0 --memory 16384 --balloon 0 --scsihw virtio-scsi-single --net0 virtio,bridge=vmbr0,firewall=0 --agent 1 --machine q35 --onboot 1
Konversikan format VMDK VMware menjadi disk image Proxmox (qcow2 atau raw thin LVM/ZFS pada pool local-lvm atau local-zfs):
qm importdisk 800 *.vmdk local-lvm --format qcow2
Kaitkan disk yang baru diimpor sebagai device scsi0 dengan fitur performa NVMe/SSD dan aktifkan boot sequence:
qm set 800 --scsi0 local-lvm:vm-800-disk-0,discard=on,ssd=1,iothread=1
qm set 800 --boot order=scsi0
6.4. Metode B: CLI Otomatis qm importovf & Perbaikan Hardware Wajib
Jika Anda mengekstrak OVA dan ingin memanfaatkan berkas konfigurasi .ovf bawaan, jalankan perintah qm importovf secara otomatis:
# 1. Jalankan import OVF ke VM ID 800
qm importovf 800 *.ovf local-lvm --format qcow2
# 2. PERINGATAN KRITIS: qm importovf selalu me-reset CPU ke kvm64 dan controller ke IDE!
# Anda WAJIB memperbaiki hardware profile agar KVM nested dan performa disk optimal:
qm set 800 --cpu host --scsihw virtio-scsi-single --balloon 0 --agent 1 --net0 virtio,bridge=vmbr0,firewall=0
6.5. Metode C: Web GUI Import Wizard (Khusus Proxmox VE 8.3+)
Mulai rilis Proxmox VE 8.3, fitur native OVA/OVF Import telah disematkan langsung pada antarmuka Web GUI:
- Buka Web GUI Proxmox VE:
https://<IP-PVE>:8006/. - Pilih node PVE Anda → klik storage penyimpanan (contoh:
local). - Pilih menu ISO Images / CT Templates / Import → klik tombol Import OVA/OVF.
- Pilih file
PNetLab-27H1-v8.12.ovayang telah diunggah → tentukan target storage pool (local-lvm). - Pada wizard konfigurasi: ubah CPU Type ke
host, matikan Memory Ballooning, dan pastikan network bridge diarahkan kevmbr0dengan checkbox Firewall: Unchecked (Disabled). - Klik Import dan tunggu hingga progress bar mencapai 100%.
6.6. Checklist Hardening, RAM (Anti-Ballooning) & Virtual Networking PVE
| Parameter PVE 8+ | Pengaturan Wajib | Alasan Teknis & Dampak Stabilitas |
|---|---|---|
| CPU Type | host (Bukan kvm64/default) | Wajib mengekspos instruksi VT-x / AMD-V (vmx / svm) ke guest OS agar node QEMU dapat dijalankan. |
| Memory Ballooning | Disabled (--balloon 0) | Sangat kritis! Dynamic ballooning saat PNetLab menjalankan banyak node QEMU menyebabkan memory starvation mendadak dan kernel panic / OOM killer. Alokasikan fixed RAM (misal 16GB, 32GB, atau 64GB). |
| SCSI Controller | VirtIO SCSI Single | Memberikan dedicated I/O queue per-disk untuk throughput I/O tinggi saat booting puluhan router Cisco/Arista secara simultan. |
| Discard / TRIM | discard=on, ssd=1 | Mengizinkan proses fstrim di dalam PNetLab mengembalikan blok disk kosong ke storage pool thin-provisioned PVE. |
| PVE Firewall pada NIC | firewall=0 (Off) | Firewall PVE berbasis ebtables/nftables akan memblokir MAC address dinamis acak dan paket STP/BPDU yang dihasilkan oleh switch virtual di lab. |
| Multiple Lab Bridges | net1 (vmbr1) ... net9 (vmbr9) |
Untuk menghubungkan Cloud node pnet1–pnet9 ke interface fisik sekunder atau VLAN trunk di switch fisik jaringan Anda. |
| QEMU Guest Agent | agent: 1 (Enabled) | Mengaktifkan komunikasi agen guest untuk reporting IP manajemen, utilisasi memori riil, dan graceful ACPI shutdown langsung dari dashboard Proxmox. |
# 1. Nyalakan VM dari shell host Proxmox
qm start 800
# 2. Login ke terminal PNetLab via SSH (user: root) dan jalankan verifikasi:
kvm-ok
# Output wajib yang muncul:
# INFO: /dev/kvm exists
# KVM acceleration can be used
# 3. Pastikan QEMU Guest Agent aktif di dalam PNetLab:
sudo apt update && sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
Upgrade Existing Host (RETEX 6.8.62 → 6.8.74)
Skenario yang diuji: Ubuntu 26.04 Resolute amd64, PNETLab 6.8.62resolute1, target channel latest (saat itu 6.8.74resolute1). Jaringan manajemen sudah hidup:
eth0 → pnet0(DHCP via dhcpcd)- bridge
pnet1…pnet9dannat0 - konfigurasi administrator di
/etc/network/interfaces
/etc/network/interfaces) dan exact apt transaction simulation (paket di-hold).
6.1 Backup sebelum mutasi
sudo mkdir -p /root/pnetlab-preupgrade-$(date +%F)
sudo cp -a /etc/network/interfaces /etc/network/interfaces.d \
/root/pnetlab-preupgrade-$(date +%F)/
sudo dpkg -l 'pnetlab*' > /root/pnetlab-preupgrade-$(date +%F)/dpkg-pnetlab.txt
sudo apt-mark showhold > /root/pnetlab-preupgrade-$(date +%F)/held.txt
sudo ufw status verbose > /root/pnetlab-preupgrade-$(date +%F)/ufw.txt || true
sudo iptables-save > /root/pnetlab-preupgrade-$(date +%F)/iptables.rules
sudo ip6tables-save > /root/pnetlab-preupgrade-$(date +%F)/ip6tables.rules
# Image lab biasanya besar — rsync terpisah ke storage cadangan:
# sudo rsync -aH /opt/unetlab/ /backup/unetlab/
6.2 Metode 1: Built-in Updater (sudo pnetlab-update)
Paket PNetLab v8 menyediakan binary resmi pnetlab-update yang berfungsi memeriksa rilis terbaru dari channel yang dikonfigurasi, mengunduh paket APT baru, dan menerapkannya secara in-place:
sudo pnetlab-update
Perintah ini adalah jalur pembaruan standar yang direkomendasikan README resmi. Selalu periksa changelog rilis sebelum memperbarui host lab produksi.
6.3 Metode 2: Network Installer + --no-cloud-uplink
Jika binary pnetlab-update belum tersedia atau Anda ingin menyinkronkan seluruh generic asset manifest dari awal, gunakan network install script dengan menambahkan flag pelindung --no-cloud-uplink agar konfigurasi bridge manajemen tidak terhapus (lihat pembahasan mendalam di Bab 7):
curl -fsSL https://codeberg.org/api/packages/netkillui/generic/pnetlab-core-assets/0.channel/pnetlab-network-install-latest.sh | sudo bash -s -- --yes --release latest --no-cloud-uplink
6.4 Metode 3: Manual Upgrade Fallback (dpkg -i + apt-get -f)
Jika mekanisme otomatis tidak dapat berjalan karena batasan jaringan atau kegagalan preflight script, dokumentasi resmi Codeberg menyediakan prosedur instalasi manual paket deb:
# 1. Pastikan backup lab & konfigurasi interfaces sudah aman
# 2. Unduh paket rilis target (.deb) dari repo Codeberg
# 3. Eksekusi install paket secara langsung:
sudo dpkg -i pnetlab_<version>_amd64.deb
# 4. Selesaikan dependensi paket APT yang dibutuhkan:
sudo apt-get -f install
# 5. Reboot dan verifikasi service:
sudo reboot
6.5 Metode 4: Offline Tarball Bundle Upgrade (pnetlab-*-bundle.tgz)
Bagi host PNETLab v8 yang beroperasi pada lingkungan jaringan air-gapped (tanpa akses internet langsung) atau saat koneksi ke repositori upstream Codeberg dibatasi firewall, Anda dapat memanfaatkan berkas arsip bundle offline pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz dari mirror ALSYUNDAWY:
# 1. Unduh berkas bundle atau transfer via SCP / WinSCP ke server lab:
wget -c https://repo.alsyundawy.com/PnetLab/pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz
# 2. Buat direktori staging sementara dan ekstrak tarball bundle:
mkdir -p /root/pnetlab-bundle-staging
sudo tar -xzvf pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz -C /root/pnetlab-bundle-staging
# 3. Masuk ke direktori hasil ekstraksi:
cd /root/pnetlab-bundle-staging
# 4. Jalankan script instalasi bundle jika ada, atau pasang deb in-place:
if [ -f "./install.sh" ]; then
sudo bash ./install.sh
elif [ -f "./update.sh" ]; then
sudo bash ./update.sh
else
sudo dpkg -i *.deb || sudo apt-get -f install -y
fi
# 5. Lakukan perbaikan hak akses file unetlab dan restart service utama:
sudo /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
sudo systemctl restart apache2
sudo systemctl restart mysql 2>/dev/null || sudo systemctl restart mariadb 2>/dev/null
sudo systemctl restart docker 2>/dev/null || true
# 6. Verifikasi paket PNETLab yang terpasang:
dpkg -l | grep -i pnetlab
Issue 1 — Installer Menolak /etc/network/interfaces
Percobaan pertama tanpa flag tambahan:
curl -fsSL \
https://codeberg.org/api/packages/netkillui/generic/pnetlab-core-assets/0.channel/pnetlab-network-install-latest.sh \
| sudo bash -s -- \
--yes \
--release latest
Preflight berhenti:
ERROR: preflight Check A refuses administrator content in /etc/network/interfaces; use --no-cloud-uplink
Artinya installer menolak menimpa desain jaringan yang sudah dikelola admin. Solusi yang benar untuk kasus ini bukan menghapus interfaces, melainkan melewati discovery/handoff uplink:
curl -fsSL \
https://codeberg.org/api/packages/netkillui/generic/pnetlab-core-assets/0.channel/pnetlab-network-install-latest.sh \
| sudo bash -s -- \
--yes \
--release latest \
--no-cloud-uplink
Installer akan menyatakan:
Pass 2: --no-cloud-uplink explicitly selected; discovery and handoff are skipped
--no-cloud-uplink setiap kali /etc/network/interfaces (atau dhcpcd + bridging pnet0–pnet9) sudah Anda kelola sendiri. Jangan biarkan installer “merapikan” jaringan produksi remote.
Issue 2 — Held Packages Mematahkan Preflight APT
Setelah Check A lolos, installer resolve rilis (contoh RETEX: release=6.8.74resolute1 sequence=74), verifikasi pointer/manifest, lalu masuk:
=== preflight: exact transaction simulation (last gate before mutation) ===
ERROR: exact apt transaction simulation failed; no package mutation was attempted
Installer tidak menampilkan error APT mentah. Replay simulasi yang sama secara manual. Penyebabnya:
The following held packages will be changed:
pnetlab-docker
pnetlab-guacd
pnetlab-qemu
pnetlab-schema
E: Held packages were changed and -y was used without --allow-change-held-packages.
Ini bukan konflik dependensi. Transaksi bisa di-resolve; APT hanya menolak mengubah paket hold karena simulasi memakai apt-get install --simulate -y tanpa --allow-change-held-packages. (Catatan: log issue #19 untuk rilis lebih baru sudah menyertakan flag itu pada simulasi — perilaku bisa berubah per patch installer.)
8.1 Konfirmasi diagnosis
sudo apt-get install --simulate -y \
--allow-change-held-packages \
ca-certificates \
curl \
gnupg \
iproute2 \
mysql-server \
openssl \
php8.5-fpm \
python3-pip \
uml-utilities \
inotify-tools \
pnetlab=6.8.74resolute1 \
pnetlab-docker=6.8.74resolute1 \
pnetlab-guacd=6.8.74resolute1 \
pnetlab-qemu=6.8.74resolute1 \
pnetlab-schema=6.8.74resolute1 \
pnetlab-vpcs=6.8.74resolute1 \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Ganti pin versi 6.8.74resolute1 dengan rilis yang di-resolve installer Anda (6.8.79resolute1, dst.). Jika simulasi sukses, masalahnya hanya hold.
8.2 Workaround: unhold sementara
apt-mark showhold
sudo apt-mark unhold \
pnetlab-docker \
pnetlab-guacd \
pnetlab-qemu \
pnetlab-schema
Output yang diharapkan:
Canceled hold on pnetlab-docker.
Canceled hold on pnetlab-guacd.
Canceled hold on pnetlab-qemu.
Canceled hold on pnetlab-schema.
Transaksi APT & Instalasi yang Berhasil
Setelah unhold, jalankan ulang installer dengan flag jaringan:
curl -fsSL \
https://codeberg.org/api/packages/netkillui/generic/pnetlab-core-assets/0.channel/pnetlab-network-install-latest.sh \
| sudo bash -s -- \
--yes \
--release latest \
--no-cloud-uplink
Pada RETEX 6.8.74, preflight lolos dan mutasi berjalan. Installer mengklaim sukses untuk:
- Docker runtime verification + Docker-backed node smoke test
- PNETLab broker socket, HTTP bridge, console mux, shell bridge, guac-lite, labstated
- Kehadiran bridge
pnet0–pnet9dannat0 - Schema verification, HTTPS login, API login
Akhir log:
=== network install completed ===
State paket setelah RETEX 6.8.74:
ii pnetlab 6.8.74resolute1
ii pnetlab-bridge-dkms 6.8.74resolute1
ii pnetlab-docker 6.8.74resolute1
ii pnetlab-guacd 6.8.74resolute1
ii pnetlab-qemu 6.8.74resolute1
ii pnetlab-schema 6.8.74resolute1
ii pnetlab-vpcs 6.8.74resolute1
systemctl --failed, firewall, dan rencana reboot. Jangan reboot buta dari sesi SSH remote.
Issue 3 — Tiga Unit Systemd Store yang Gagal
Setelah instalasi:
systemctl --failed
Tiga unit PNETLab yang gagal:
| Unit | Gejala |
|---|---|
harddisk_limit.service |
Unable to locate executable /opt/unetlab/html/store/app/Console/Commands/harddisk_limit |
mysql_recovery.service |
Could not open input file: /opt/unetlab/html/store/artisan |
process_limit.service |
Unable to locate executable /opt/unetlab/html/store/app/Console/Commands/process_limit |
Ketiganya merujuk pohon /opt/unetlab/html/store/ — komponen Store lama yang sudah pensiun. Ini bukan sisa paket pnetlab-store yang terlupakan:
dpkg -S \
/etc/systemd/system/harddisk_limit.service \
/etc/systemd/system/mysql_recovery.service \
/etc/systemd/system/process_limit.service
# Hasil RETEX 6.8.74:
# pnetlab: /etc/systemd/system/harddisk_limit.service
# pnetlab: /etc/systemd/system/mysql_recovery.service
# pnetlab: /etc/systemd/system/process_limit.service
dpkg -L pnetlab | grep -E 'harddisk_limit|mysql_recovery|process_limit'
Isi unit (masih dikirim paket pnetlab)
[Unit]
Description=Update Hard disk status
After=mysql.service
[Service]
ExecStart=/opt/unetlab/html/store/app/Console/Commands/harddisk_limit
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
[Unit]
Description=Check database
After=mysql.service
[Service]
ExecStart=/usr/bin/php /opt/unetlab/html/store/artisan mysql_recovery run
RemainAfterExit=false
[Install]
WantedBy=multi-user.target
[Unit]
Description=Update RAM CPU status
After=mysql.service
[Service]
ExecStart=/opt/unetlab/html/store/app/Console/Commands/process_limit
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Workaround sementara — jangan hapus file milik paket
sudo systemctl disable --now \
harddisk_limit.service \
mysql_recovery.service \
process_limit.service
sudo systemctl reset-failed \
harddisk_limit.service \
mysql_recovery.service \
process_limit.service
systemctl --failed
ExecStart ke path baru. Jangan rm unit milik paket pnetlab — dpkg akan mengembalikannya saat upgrade berikutnya.
Issue 4 — Guacamole-lite Restart-Loop (Codeberg Issue #19)
Pada instalasi bare-metal Ubuntu 26.04 rilis 6.8.78resolute1, proses bootstrap network installer terhenti fatal pada tahap akhir verifikasi service tingkat socket (socket-level verification gate). Laporan primer tercatat pada Codeberg Issue #19 (status: OPEN per 21 September 2026, 0 komentar maintainer upstream):
[2026-09-13 15:16:21+0000] === socket-level service verification (restart-loop proof) ===
[2026-09-13 15:16:21+0000] socket OK: broker unix socket (pnetlab-brokerd.service; NRestarts=0)
[2026-09-13 15:16:22+0000] socket OK: HTTP bridge 127.0.0.1:8025 (pnet-http-bridge.service; NRestarts=0)
[2026-09-13 15:16:22+0000] socket OK: console mux telnet :8022 and VNC :6080 (pnet-console-mux.service; NRestarts=0)
[2026-09-13 15:16:22+0000] socket OK: shell bridge :8023 (pnet-shell-bridge.service; NRestarts=0)
[2026-09-13 15:16:22+0000] ERROR: pnet-guac-lite.service restart-loop evidence: NRestarts=45
[2026-09-13 15:16:22+0000] === network install stopped with exit 1 ===
11.1 Analisis Akar Masalah (Root Cause & Race Condition)
Pemeriksaan kode sumber installer pnetlab-network-install-latest.sh mengungkap mekanisme pembuktian restart-loop:
- Fungsi
assert_restart_clean(): Membacasystemctl show -p NRestarts --value "$unit". Jika nilai selain0, installer langsung mengeksekusidie "$unit restart-loop evidence: NRestarts=...". - Kondisi Balapan (Race Condition): Paket
pnetlab-guacd/pnet-guac-litedi-unpack dan otomatis distart oleh systemd saat transaksi APT berlangsung. Namun berkas lingkungan kunci enkripsi/etc/pnet-webconsole/guac.env(GUAC_CRYPT_KEY) baru dibuat jauh belakangan di fungsiconfigure_guac_key(). - Akumulasi NRestarts: Selama installer mengunduh image container OCI dari Docker Hub (
pnet-capture-web:1.0yang memakan waktu ~42 detik), unitpnet-guac-lite.servicegagal start secara berulang (Restart=always) dan menumpukNRestarts=45. Bahkan setelah kunci di-generate dan port:8081akhirnya berhasil listen, nilai counter systemd tetap 45 sehingga fungsi verifikasi menjatuhkan exit 1.
11.2 Perintah Diagnostik di Host Nyata
Jalankan perintah berikut pada terminal server Ubuntu 26.04 untuk memeriksa status rinci daemon HTML5 console:
# 1. Cek status aktif, substate, dan counter restart:
systemctl show -p NRestarts,ActiveState,SubState,Result pnet-guac-lite.service
# 2. Periksa log detail kegagalan start daemon:
sudo journalctl -u pnet-guac-lite.service -n 80 --no-pager
# 3. Cek apakah socket port 8081 sedang mendengarkan:
sudo ss -lntp '( sport = :8081 )'
# 4. Pastikan file kunci enkripsi console valid (panjang 32 karakter base64):
sudo cat /etc/pnet-webconsole/guac.env
11.3 Prosedur Workaround & Reset Counter Systemd
Untuk menormalkan host tanpa mengulang proses install dari nol, buat berkas environment secara manual, reset counter failed systemd, dan restart service:
# Langkah 1: Buat direktori dan kunci enkripsi 32-byte base64 jika belum ada
sudo install -d -m 0755 /etc/pnet-webconsole
if [ ! -s /etc/pnet-webconsole/guac.env ]; then
GUAC_KEY=$(head -c 24 /dev/urandom | base64 | tr -d '
')
printf 'GUAC_CRYPT_KEY=%s
' "$GUAC_KEY" | sudo tee /etc/pnet-webconsole/guac.env >/dev/null
sudo chmod 0600 /etc/pnet-webconsole/guac.env
sudo chown root:root /etc/pnet-webconsole/guac.env
fi
# Langkah 2: Sinkronisasi kunci ke file config PHP webconsole
if [ -f /etc/pnet-webconsole/console_config.php ]; then
CURRENT_KEY=$(sed -n 's/^GUAC_CRYPT_KEY=//p' /etc/pnet-webconsole/guac.env | head -n1)
sudo sed -i "s|define('GUAC_CRYPT_KEY', '[^']*');|define('GUAC_CRYPT_KEY', '$CURRENT_KEY');|" /etc/pnet-webconsole/console_config.php
fi
# Langkah 3: Reset status failed dan restart service
sudo systemctl daemon-reload
sudo systemctl reset-failed pnet-guac-lite.service guacd.service
sudo systemctl restart guacd.service
sudo systemctl restart pnet-guac-lite.service
# Langkah 4: Validasi bahwa NRestarts telah kembali ke 0
systemctl show -p NRestarts,ActiveState pnet-guac-lite.service
sudo ss -ltnH 'sport = :8081'
guac.env sebelum mutasi APT dan mengeksekusi systemctl reset-failed sebelum probe socket dijalankan.
UFW Dihapus — Ganti iptables-persistent
Simulasi APT pada RETEX memuat:
The following packages will be REMOVED:
ufw
# dan menginstal:
iptables-persistent
netfilter-persistent
Jika host PNETLab remote mengandalkan UFW, Anda bisa terkunci setelah transaksi. Simpan aturan sebelum upgrade:
sudo ufw status verbose
sudo iptables-save
sudo ip6tables-save
Port yang biasanya dibutuhkan lab (sesuaikan, jangan buka 1–65535/tcp):
- 22/tcp — SSH manajemen
- 80/tcp & 443/tcp — Web UI / HTTPS
- Console HTML5 / Guacamole sesuai binding installer
- Jangan expose VNC/SPICE/QEMU monitor ke WAN
Networking sebelum Reboot
Karena --no-cloud-uplink, installer sengaja melewati provisioning uplink/NAT:
cloud uplink/NAT : SKIPPED by --no-cloud-uplink.
net.ifnames=0 remains armed by the deb; confirm your own boot-time networking survives the rename.
Jika /etc/network/interfaces bergantung pada nama eth0, pastikan kernel cmdline masih menonaktifkan predictable names. Cek sebelum reboot remote:
cat /proc/cmdline
# cari net.ifnames=0
ip -br addr
ip route
ls /sys/class/net
systemctl is-enabled networking dhcpcd systemd-networkd NetworkManager 2>/dev/null
eth0/pnet0 akan kembali = risiko host hilang dari jaringan. Siapkan konsol out-of-band (iDRAC/iLO/IPMI/Proxmox VNC) sebelum reboot.
Validasi Runtime setelah Upgrade / Install
dpkg -l 'pnetlab*' | awk '/^ii/'
systemctl --failed
systemctl is-active mysql docker php8.5-fpm 2>/dev/null
ip -br link | grep -E 'pnet|nat0'
ss -lntp | egrep ':80|:443|:22'
# Nested virt masih hidup?
grep -E 'vmx|svm' /proc/cpuinfo | wc -l
lsmod | grep -E 'kvm|bridge|tun'
Jika binary update tersedia:
command -v pnetlab-update && sudo pnetlab-update
# Review changelog channel sebelum menerapkan ke host lab produksi
ii pada versi target, systemctl --failed kosong (unit Store sudah di-disable), bridge pnet0–pnet9 + nat0 ada, UI HTTPS menjawab, satu node Docker/QEMU uji bisa start.
14.3 Daftar Bug Upstream Terverifikasi (Codeberg Issue #17 pada 6.8.77/6.8.78)
Berdasarkan pelacakan bug komunitas pada rilis 6.8.77 dan 6.8.78resolute1, beberapa anomali UI/runtime berikut telah diverifikasi dan perlu diantisipasi operator lab:
- Bug 10 (Canvas Edit Box): Dialog box pengeditan objek/link/teks terkunci di sisi kanan canvas lab dan tidak dapat digeser bebas ke tengah/kiri canvas.
- Bug 20 (Network Watcher Traffic Tooltip): Tooltip indikator tipe traffic jaringan tidak muncul saat cursor diarahkan ke link aktif ketika fitur Network Watcher berjalan.
- Bug 23 (Advanced WAN netem): Konfigurasi delay/jitter/loss WAN (netem) ter-reset otomatis ke nilai awal setiap kali panel pengaturan ditutup.
- Bug 28 (VPC Hostname DNS Resolution): Node VPCS tidak me-resolve hostname via DNS pada perintah ping default. Solusi: gunakan alamat IP langsung atau flag ping yang sesuai.
- Bug 41 / Issue #29 (Alert Badge Running Node): Node lab yang sudah di-stop terkadang masih menampilkan badge status "Running" pada panel Running Labs.
First Login & Deploy Lab
- Buka
https://<IP-manajemen>/(terima sertifikat self-signed atau pasang cert sendiri). - Selesaikan wizard awal. Mode offline komunitas biasanya memakai akun default platform; ganti password segera.
- Unggah image ke
/opt/unetlab/addons/qemu/,iol/, atau lewat UI. - Setelah menambah image:
sudo /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
# atau tombol Fix permissions di System settings UI
Uji lab minimal: 2 node (VPCS atau Docker) + satu cloud NAT. Pastikan console HTML5 dan packet capture berfungsi sebelum mengimpor topologi besar.
Security Baseline PNETLab v8
- Jangan expose UI ke internet tanpa TLS + VPN / allowlist sumber.
- Ganti semua default password; nonaktifkan akun yang tidak dipakai.
- Setelah UFW hilang, tulis aturan
iptables-persistentyang setara — atau pasang lagi UFW secara sadar jika Anda tahu konfliknya dengan netfilter-persistent. - Isolasi bridge lab (
pnet1–pnet9) dari jaringan kampus kecuali memang diperlukan. - Patch OS Resolute secara berkala, tetapi jangan
apt full-upgrademembabi buta tanpa snapshot — kernel/DKMS bridge PNETLab sensitif. - Snapshot VM / ZFS sebelum setiap lompatan channel (
6.8.74 → 6.8.79). - Audit
PermitRootLogin: banyak tutorial lawas menyalakannya. Lebih aman key-only + user sudo.
Hal yang TIDAK Disarankan (Larangan Keras)
- Mencoba melakukan upgrade dari PNETLab v4, v5, atau v6: DILARANG KERAS! TIDAK ADA opsi atau jalur upgrade dari generasi v4/v5/v6 berbasis Ubuntu 18.04/20.04 ke PNETLab v8 Ubuntu 26.04! Arsitektur database, daemon, PHP 8.5-FPM, dan systemd services v8 sepenuhnya berbeda. Upaya in-place upgrade dari v4/v5/v6 akan merusak total sistem operasi host.
- Menyalin prosedur pnetlab.com 4.x / Ubuntu 18.04 ke host Resolute v8
- Mencampur repositori lama
deb http://repo.pnetlab.comdengan APT source Codeberg v8 - Menjalankan loop skrip
curl | bashberulang-ulang pada host yang sudah exit 1 tanpa memeriksa status marker/var/lib/pnetlab/network-install-ownerdan status held packages - Mengabaikan kegagalan restart-loop
pnet-guac-lite.service(Issue #19) atau membiarkan NRestarts > 0 saat validasi - Menjalankan installer tanpa
--no-cloud-uplinkpada host yang sudah punya/etc/network/interfacescustom - Membiarkan hold pada
pnetlab-docker/guacd/qemu/schemalalu heran preflight gagal - Menghapus unit systemd milik paket
pnetlabdenganrm - Reboot remote tanpa cek
net.ifnames=0dan rute default - Menganggap “installer completed” sebagai tanda nol technical debt
- Menumpuk lab produksi di VM tanpa nested virt / tanpa snapshot
Urutan Final yang Direkomendasikan & Best Practices
PHASE 1 — Host Ubuntu 26.04
- OS update, pastikan VT-x/AMD-V, nested virt, hostname, SSH key
- Snapshot / backup image +
interfaces+ firewall
PHASE 2 — Fresh ATAU Upgrade (Pilihan Metode)
- Fresh (Opsi A - Network Install): network installer resmi
--yes --release latestpada Ubuntu 26.04 bersih. - Fresh (Opsi B - Turn-key OVA / Netinstall OVA): Deploy berkas
PNetLab-27H1-v8.12.ova(siap pakai) atauPNetLab-27H1-v8-netinstall.ovadari mirror repo.alsyundawy.com/?berkas=PnetLab. - Fresh (Opsi C - Full Standalone ISO): Booting bare-metal server fisik atau VM menggunakan media instalasi
PNetLab-27H1-v8.12.iso. - Existing Host (Opsi A - Built-in): Jalankan
sudo pnetlab-updatejika binary sudah tersedia. - Existing Host (Opsi B - Jaringan Custom): Gunakan network installer dengan wajib menambahkan flag
--no-cloud-uplink. - Existing Host (Opsi C - Offline Air-gapped): Ekstraksi dan terapkan paket offline
pnetlab-27H1-v8.62-6.8.62-resolute-bundle.tgz. - Jika preflight APT gagal: replay simulasi, unhold empat paket (
pnetlab-docker/guacd/qemu/schema), lalu jalankan kembali instalasi.
PHASE 3 — Debts pasca-installer
- Disable unit Store usang +
reset-failed - Pulihkan/tulis ulang firewall setelah UFW hilang
- Verifikasi cmdline & nama NIC sebelum reboot
PHASE 4 — Deploy lab
- HTTPS UI, ganti password, fixpermissions, uji 2-node
- Baru impor topologi besar / image vendor
--no-cloud-uplink, hold paket mematahkan preflight, dan tiga unit systemd Store masih dikirim paket meski path-nya sudah mati. Treat installer sebagai orkestrator — validasi manual tetap wajib.