Lewati ke konten utama

Generator Port Forwarding (DST-NAT) dan Hairpin NAT MikroTik

Buka port server/NVR ke internet publik (DST-NAT) dan cegah koneksi loopback timeout dari dalam jaringan kantor menggunakan Hairpin NAT.

Parameter Input

Coba Contoh:

Hasil Perhitungan

wanIface
ether1-ISP
pubIp
203.142.77.10
extPort
8000
intIp
192.168.88.250
intPort
8000
proto
tcp
lanCidr
192.168.88.0/24
desc
NVR-CCTV-Server
enableHairpin
true
enableFilterRule
true
dstNatRule
add action=dst-nat chain=dstnat dst-address=203.142.77.10 dst-port=8000 protocol=tcp to-addresses=192.168.88.250 to-ports=8000 comment="Port Forward NVR-CCTV-Server (TCP 8000 -> 192.168.88.250:8000)"
hairpinNatRule
add action=masquerade chain=srcnat dst-address=192.168.88.250 dst-port=8000 out-interface-list=all protocol=tcp src-address=192.168.88.0/24 comment="Hairpin NAT Loopback NVR-CCTV-Server (TCP)"
filterAcceptRule
add action=accept chain=forward connection-nat-state=dstnat dst-address=192.168.88.250 dst-port=8000 protocol=tcp comment="Allow Forwarded Port NVR-CCTV-Server (TCP)"
RouterOS Script
# =====================================================================
# InfraCalc.id - Port Forwarding (DST-NAT) + Hairpin NAT (NVR-CCTV-Server)
# Target: 203.142.77.10:8000 -> 192.168.88.250:8000 [TCP]
# =====================================================================

/ip firewall nat
# 1. DST-NAT: Arahkan trafik dari IP Publik / WAN ke IP Server Lokal
add action=dst-nat chain=dstnat dst-address=203.142.77.10 dst-port=8000 protocol=tcp to-addresses=192.168.88.250 to-ports=8000 comment="Port Forward NVR-CCTV-Server (TCP 8000 -> 192.168.88.250:8000)"

# 2. HAIRPIN NAT: Agar saat staf di jaringan lokal (192.168.88.0/24) mengakses IP Publik/Domain, tidak mental/timeout
add action=masquerade chain=srcnat dst-address=192.168.88.250 dst-port=8000 out-interface-list=all protocol=tcp src-address=192.168.88.0/24 comment="Hairpin NAT Loopback NVR-CCTV-Server (TCP)"

# 3. FIREWALL FILTER: Izinkan trafik forward hasil DST-NAT melewati firewall
/ip firewall filter
add action=accept chain=forward connection-nat-state=dstnat dst-address=192.168.88.250 dst-port=8000 protocol=tcp comment="Allow Forwarded Port NVR-CCTV-Server (TCP)"

Cara Menggunakan Alat Ini

  1. Masukkan alamat IP publik (atau pilih antarmuka WAN), port eksternal yang diakses publik, dan alamat IP serta port server/NVR lokal.
  2. Pilih protokol transport (TCP, UDP, atau Keduanya), masukkan subnet LAN lokal (misalnya 192.168.88.0/24), dan beri nama deskripsi layanan.
  3. Tinjau aturan DST-NAT, Hairpin NAT loopback, dan filter firewall yang dihasilkan, lalu salin script ke terminal MikroTik RouterOS v7.

Contoh Perhitungan Nyata: Kamera NVR CCTV Port 8000

Contoh terhitung: Meneruskan port eksternal 8000 (TCP) pada IP publik 203.142.77.10 ke server lokal 192.168.88.250:8000 (NVR-CCTV-Server) lengkap dengan aturan Hairpin NAT untuk subnet LAN 192.168.88.0/24.

Input Contoh
{
  "desc": "NVR-CCTV-Server",
  "pubIp": "203.142.77.10",
  "extPort": "8000",
  "intIp": "192.168.88.250",
  "intPort": "8000",
  "proto": "tcp",
  "lanCidr": "192.168.88.0/24",
  "wanIface": "ether1-ISP"
}
Output Terhitung
wanIface:
ether1-ISP
pubIp:
203.142.77.10
extPort:
8000
intIp:
192.168.88.250
intPort:
8000
proto:
tcp
lanCidr:
192.168.88.0/24
desc:
NVR-CCTV-Server
enableHairpin:
true
enableFilterRule:
true
dstNatRule:
add action=dst-nat chain=dstnat dst-address=203.142.77.10 dst-port=8000 protocol=tcp to-addresses=192.168.88.250 to-ports=8000 comment="Port Forward NVR-CCTV-Server (TCP 8000 -> 192.168.88.250:8000)"
hairpinNatRule:
add action=masquerade chain=srcnat dst-address=192.168.88.250 dst-port=8000 out-interface-list=all protocol=tcp src-address=192.168.88.0/24 comment="Hairpin NAT Loopback NVR-CCTV-Server (TCP)"
filterAcceptRule:
add action=accept chain=forward connection-nat-state=dstnat dst-address=192.168.88.250 dst-port=8000 protocol=tcp comment="Allow Forwarded Port NVR-CCTV-Server (TCP)"

Konsep Dasar & Catatan Teknis

Port Forwarding atau Destination NAT (DST-NAT) pada MikroTik RouterOS berfungsi meneruskan koneksi masuk dari jaringan internet publik menuju alamat IP lokal tertentu di dalam jaringan LAN privat, seperti server web, database, remote desktop (RDP), atau perekam kamera NVR CCTV. Tanpa Destination NAT, router akan menolak seluruh paket inisiasi dari luar karena alamat IPv4 privat (RFC 1918) tidak dapat dirutekan langsung di internet global. Tantangan teknis yang paling sering membingungkan teknisi di lapangan adalah masalah loopback lokal atau Hairpin NAT (NAT Reflection). Ketika seorang staf di dalam kantor membuka domain publik atau IP publik kantor untuk melihat tayangan CCTV atau aplikasi internal, komputer klien mengirimkan paket ke IP publik router. Router melakukan terjemahan DST-NAT dan meneruskan paket ke server internal. Namun, karena server lokal melihat bahwa pengirim paket berasal dari subnet LAN yang sama, server akan membalas langsung ke komputer klien melalui switch L2 tanpa melewati router. Akibatnya, komputer klien menolak paket balasan tersebut karena klien mengharapkan jawaban dari IP publik, bukan dari IP lokal server, sehingga koneksi mengalami time out. Hairpin NAT menyelesaikan masalah asimetris ini dengan menambahkan aturan Source NAT (masquerade) khusus pada antarmuka lokal. Dengan aturan ini, router mengubah alamat IP asal paket milik klien LAN menjadi alamat IP antarmuka router itu sendiri. Server lokal terpaksa mengirimkan paket balasan kembali ke router, lalu router mengembalikan paket tersebut ke klien dengan alamat IP publik yang diharapkan, sehingga aplikasi dapat diakses tanpa hambatan baik dari internet maupun dari dalam kantor.

Cara Perhitungan (Rumus & Langkah)

Pertanyaan yang Sering Diajukan (FAQ)

Mengapa kamera CCTV atau server web saya bisa diakses dari internet tetapi time out saat dibuka dari Wi-Fi kantor?

Hal ini merupakan gejala klasik ketiadaan Hairpin NAT. Perangkat di dalam LAN mencoba mengakses IP publik kantor; server merespons langsung lewat switch tanpa melewati router, sehingga klien menolak jawaban tersebut karena IP pengirimnya tidak sesuai.

Apakah saya harus memasukkan IP Publik jika router menggunakan IP Dinamis atau PPPoE?

Jika IP publik Anda dinamis, Anda dapat mengganti pencocokan `dst-address` dengan parameter `in-interface=ether1-ISP` atau `in-interface=pppoe-out1` pada rule DST-NAT di RouterOS.

Bolehkah port eksternal berbeda dengan port internal?

Bisa. Anda dapat mengatur port eksternal 8080 (agar tidak bentrok dengan port standar) dan mengarahkannya ke port internal 80 pada web server lokal.

Apakah port forwarding aman dari serangan peretasan?

Port yang terbuka ke internet dapat dipindai oleh bot otomatis. Sangat disarankan mengganti port default (misalnya port RDP 3389 diubah ke port acak tinggi), memasang password yang kuat, atau menggunakan VPN (seperti WireGuard) daripada mengekspos layanan kritis langsung ke internet.

Referensi Standar & Catatan

Terakhir diperbarui: Status Konten: Draf (Menunggu Tinjauan Editor)

Catatan: Hasil di atas merupakan estimasi berdasarkan rumus standar. Selalu verifikasi dengan dokumentasi resmi vendor dan kondisi lapangan sebelum implementasi pada lingkungan produksi.