Menghubungkan ZeroTier ke Subnet Lokal via Gateway Ubuntu
Integrasi ZeroTier ke subnet lokal industri kini makin modular. Artikel ini menyajikan struktur NAT dan redireksi VNC yang siap-pakai, lengkap dengan flowchart dan validasi runtime.
Photo by Jordan Harrison / Unsplash
Struktur NAT Modular, Redireksi VNC, dan Internet Gateway
Ditulis oleh Ketut Kumajaya | 5 September 2025
Konteks Operasional
Dalam sistem industri yang mengandalkan remote access yang aman, integrasi jaringan virtual seperti ZeroTier ke subnet lokal fisik menjadi kebutuhan penting. Artikel ini menyajikan struktur konfigurasi gateway Ubuntu yang modular, memungkinkan konektivitas eksplisit serta redireksi layanan seperti VNC melalui NAT serta akses internet saat diperlukan.
Topologi & Mapping IP
| Komponen | IP Address | Fungsi |
|---|---|---|
| ZeroTier Gateway | 192.168.194.72 | Interface ZeroTier & NAT |
| LAN Gateway | 192.168.71.130 | Interface lokal LAN |
| Target LAN | 192.168.71.247 | Tujuan akses dari ZeroTier |
| VNC Server | 128.128.1.134 | Tujuan DNAT port 5900 |
192.168.194.x"]:::client ZTGateway["Gateway Ubuntu
192.168.194.72"]:::gateway LANTarget["Target LAN
192.168.71.247"]:::lan ZTClient -->|Ping / VNC Request| ZTGateway ZTGateway -->|FORWARD Rule
zt+ → eth0| LANTarget LANTarget -->|Response| ZTGateway ZTGateway -->|FORWARD Rule
eth0 → zt+| ZTClient classDef client fill:#d1ecf1,stroke:#0c5460,stroke-width:2px classDef gateway fill:#fff3cd,stroke:#856404,stroke-width:2px classDef lan fill:#d4edda,stroke:#155724,stroke-width:2px
Topologi ini memungkinkan node ZeroTier mengakses subnet lokal melalui gateway Ubuntu, sekaligus merelay koneksi VNC secara eksplisit.
IP Forwarding & Kebijakan Routing
Aktifkan IP forwarding dengan mengedit konfigurasi UFW:
sudo nano /etc/ufw/sysctl.conf
Set:
net/ipv4/ip_forward = 1
Ubah kebijakan default forwarding:
sudo nano /etc/default/ufw
Set:
DEFAULT_FORWARD_POLICY="ACCEPT"
Untuk memastikan interface yang digunakan sesuai, cek dengan:
ip a | grep inet
Struktur NAT & Rule UFW
Edit /etc/ufw/before.rules sebelum COMMIT:
*nat
:POSTROUTING ACCEPT [0:0]
# MASQUERADE: NAT ZeroTier ke internet via eth0
-A POSTROUTING -s 192.168.194.0/24 -o eth0 -j MASQUERADE
COMMIT
*filter
:FORWARD ACCEPT [0:0]
# FORWARD: Trafik ZeroTier ke subnet lokal
-A FORWARD -i zt+ -o eth0 -s 192.168.194.0/24 -d 192.168.71.0/24 -j ACCEPT
# FORWARD: Trafik subnet lokal ke ZeroTier
-A FORWARD -i eth0 -o zt+ -s 192.168.71.0/24 -d 192.168.194.0/24 -j ACCEPT
COMMIT
Catatan: aturan NAT ditempatkan di before.rules agar diproses lebih awal sebelum aturan filter default UFW.
Route di ZeroTier Controller
Tambahkan route:
| Destination | Via |
|---|---|
| 192.168.71.0/24 | 192.168.194.72 |
Route ini mengarahkan trafik subnet lokal melalui gateway ZeroTier. Jika menggunakan ZTNET self-hosted controller, konfigurasi dapat dilakukan melalui dashboard web.
Redireksi VNC via DNAT
Lakukan perubahan di blok *nat di /etc/ufw/before.rules:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# DNAT: Redirect port 5900 (VNC) ke server 128.128.1.134
-A PREROUTING -p tcp -d 192.168.194.72 --dport 5900 \
-j DNAT --to-destination 128.128.1.134:5900
# MASQUERADE: NAT ZeroTier ke internet via eth0
-A POSTROUTING -s 192.168.194.0/24 -o eth0 -j MASQUERADE
# MASQUERADE: NAT untuk balasan dari VNC Server ke ZeroTier client
-A POSTROUTING -s 192.168.194.0/24 -d 128.128.1.0/24 -j MASQUERADE
COMMIT
→ port 5900"]:::client DNATGateway["Gateway Ubuntu
DNAT Rule"]:::gateway VNCServer["VNC Server
128.128.1.134"]:::vnc DNATRequest --> DNATGateway DNATGateway -->|DNAT port 5900| VNCServer VNCServer -->|Response| DNATGateway DNATGateway -->|MASQUERADE
balasan ke client| DNATRequest classDef client fill:#d1ecf1,stroke:#0c5460,stroke-width:2px classDef gateway fill:#fff3cd,stroke:#856404,stroke-width:2px classDef vnc fill:#d4edda,stroke:#155724,stroke-width:2px
DNAT ini memungkinkan client ZeroTier mengakses VNC server secara langsung. Sebagai tambahan, tetap disarankan menggunakan password kuat atau tunneling (misalnya SSH) karena protokol VNC secara default tidak terenkripsi.
Rule UFW untuk Port VNC
sudo ufw allow from 192.168.194.0/24 to any port 5900 proto tcp comment "VNC gateway"
Untuk meninjau aturan secara urut dan mudah dihapus bila salah:
sudo ufw status numbered
Gateway Ubuntu sebagai Internet Gateway
Selain berfungsi sebagai relay VNC, gateway Ubuntu juga dapat memberikan akses internet ke subnet lokal 128.128.1.0/24, selama memiliki dua interface aktif:
enxf8e43b8c14c6→ terhubung ke subnet 128.128.1.0/24eth0→ terhubung ke subnet 192.168.71.0/24 dan memiliki akses internet
128.128.1.134"]:::client GatewayUbuntu["Gateway Ubuntu
IP: 128.128.1.140"]:::gateway Internet["Internet
(8.8.8.8, example.com)"]:::internet HostSubnet -->|Default Gateway: 128.128.1.140| GatewayUbuntu GatewayUbuntu -->|MASQUERADE via eth0| Internet Internet -->|Response| GatewayUbuntu GatewayUbuntu -->|Balasan NAT ke host| HostSubnet classDef client fill:#d1ecf1,stroke:#0c5460,stroke-width:2px classDef gateway fill:#fff3cd,stroke:#856404,stroke-width:2px classDef internet fill:#d4edda,stroke:#155724,stroke-width:2px
IP forwarding telah diaktifkan sebelumnya, sehingga gateway siap meneruskan trafik antar subnet.
Tambahkan ke blok *nat di /etc/ufw/before.rules:
# MASQUERADE: NAT subnet industri (128.128.1.0/24) ke internet via eth0
-A POSTROUTING -s 128.128.1.0/24 -o eth0 -j MASQUERADE
Tambahkan ke blok *filter:
# FORWARD: Trafik dari subnet industri ke internet
-A FORWARD -i enxf8e43b8c14c6 -o eth0 -s 128.128.1.0/24 -j ACCEPT
# FORWARD: Trafik balasan dari internet ke subnet industri
-A FORWARD -i eth0 -o enxf8e43b8c14c6 -d 128.128.1.0/24 -j ACCEPT
Reload & Verifikasi Konfigurasi
sudo ufw reload
sudo ufw status verbose
Struktur lengkap /etc/ufw/before.rules setelah perubahan:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# DNAT: Redirect port 5900 (VNC) ke server 128.128.1.134
-A PREROUTING -p tcp -d 192.168.194.72 --dport 5900 \
-j DNAT --to-destination 128.128.1.134:5900
# MASQUERADE: NAT ZeroTier ke internet via eth0
-A POSTROUTING -s 192.168.194.0/24 -o eth0 -j MASQUERADE
# MASQUERADE: Balasan dari VNC Server ke client ZeroTier
-A POSTROUTING -s 192.168.194.0/24 -d 128.128.1.0/24 -j MASQUERADE
# MASQUERADE: NAT subnet industri (128.128.1.0/24) ke internet via eth0
-A POSTROUTING -s 128.128.1.0/24 -o eth0 -j MASQUERADE
COMMIT
*filter
:FORWARD ACCEPT [0:0]
# FORWARD: Trafik ZeroTier ke subnet lokal
-A FORWARD -i zt+ -o eth0 -s 192.168.194.0/24 -d 192.168.71.0/24 -j ACCEPT
# FORWARD: Trafik subnet lokal ke ZeroTier
-A FORWARD -i eth0 -o zt+ -s 192.168.71.0/24 -d 192.168.194.0/24 -j ACCEPT
# FORWARD: Trafik dari subnet industri ke internet
-A FORWARD -i enxf8e43b8c14c6 -o eth0 -s 128.128.1.0/24 -j ACCEPT
# FORWARD: Trafik balasan dari internet ke subnet industri
-A FORWARD -i eth0 -o enxf8e43b8c14c6 -d 128.128.1.0/24 -j ACCEPT
COMMIT
Validasi Runtime
Akses Subnet Lokal dari Node ZeroTier:
ping 192.168.71.247
Verifikasi Trafik di Gateway:
sudo tcpdump -i eth0 host 192.168.71.247
Uji Koneksi VNC via Telnet:
telnet 192.168.194.72 5900
Jika berhasil:
RFB 003.008
Respons RFB menandakan bahwa protokol VNC aktif dan DNAT berfungsi. Jika gagal, gunakan:
sudo tcpdump -i <interface> port 5900
Uji Koneksi Internet dari Subnet 128.128.1.0/24:
Dari host 128.128.1.134, arahkan default gateway ke 128.128.1.140, lalu uji koneksi:
ping 8.8.8.8
curl https://example.com
Penutup
Dengan konfigurasi ini, gateway Ubuntu berfungsi sebagai penghubung antara jaringan ZeroTier dan subnet lokal, serta sebagai relay layanan seperti VNC. Struktur NAT dan UFW yang modular mendukung konektivitas eksplisit dan dokumentasi yang siap diadopsi lintas proyek industri.