Lewati ke konten utama

Kalkulator MTU & TCP MSS WireGuard VPN MikroTik

Setup WireGuard VPN Site-to-Site RouterOS v7 lengkap dengan pencegahan browsing macet melalui TCP MSS Clamping otomatis.

Parameter Input

Coba Contoh:

Hasil Perhitungan

linkType
pppoe
mtu
1480
ipVersion
ipv4
ipHeaderBytes
20
tcpHeaderBytes
20
icmpHeaderBytes
8
tcpMss
1440
pingDfPayload
1452
overheadBytes
20
overheadDesc
PPPoE Standar ISP Fiber / DSL (8–20 Byte Header)
windowsPingCmd
ping 1.1.1.1 -f -l 1452
linuxPingCmd
ping -M do -s 1452 1.1.1.1
macosPingCmd
ping -D -s 1452 1.1.1.1
wanIface
pppoe-out1
wgPort
13231
wgNet
10.200.200.1/24
peerIp
10.200.200.2/32
remoteLan
192.168.90.0/24
RouterOS Script
# =====================================================================
# InfraCalc.id - MikroTik RouterOS v7 MTU/TCP MSS Clamping & WireGuard VPN
# Jenis Link: PPPOE | MTU Optimal: 1480 | TCP MSS: 1440
# =====================================================================

# 1. Perbaikan Website Sering Loading Lama / Gagal Buka di PPPoE & VPN (TCP MSS Clamping)
/ip firewall mangle
add action=change-mss chain=forward in-interface=pppoe-out1 new-mss=1440 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1441-65535 comment="Clamp TCP MSS Inbound (pppoe-out1 -> 1440)"
add action=change-mss chain=forward out-interface=pppoe-out1 new-mss=1440 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1441-65535 comment="Clamp TCP MSS Outbound (pppoe-out1 -> 1440)"
add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn comment="Auto Clamp PMTU All Tunnels"

# 2. Setup Interface WireGuard VPN (RouterOS v7 Native)
/interface wireguard
add listen-port=13231 mtu=1420 name=wg-infracalc comment="WireGuard VPN Site-to-Site / Remote"

/ip address
add address=10.200.200.1/24 interface=wg-infracalc comment="IP Gateway Tunnel WireGuard"

/interface wireguard peers
# Ganti PUBLIC_KEY_CABANG dengan Public Key dari router cabang / client
add allowed-address=10.200.200.2/32,192.168.90.0/24 interface=wg-infracalc public-key="ISI_PUBLIC_KEY_PEER_DISINI=" persistent-keepalive=25s comment="Peer Cabang / Remote Admin"

/ip firewall filter
add action=accept chain=input dst-port=13231 protocol=udp place-before=0 comment="Allow WireGuard Handshake UDP 13231"

/ip route
add dst-address=192.168.90.0/24 gateway=wg-infracalc comment="Route ke LAN Cabang via WireGuard"

# Cara Test Fragmentasi Paket dari CMD Windows: ping 1.1.1.1 -f -l 1452

Cara Menggunakan Alat Ini

  1. Pilih jenis koneksi ISP WAN (PPPoE 1480, Ethernet 1500, atau LTE 1428) dan masukkan nama antarmuka WAN router Anda.
  2. Tentukan port listen UDP WireGuard (default 13231), IP gateway tunnel lokal, IP peer cabang, dan subnet LAN remote cabang.
  3. Tinjau script RouterOS v7 lengkap yang memuat aturan TCP MSS Clamping, pembuatan interface WireGuard, firewall handshake, dan routing cabang, lalu salin ke terminal.

Contoh Perhitungan Nyata: PPPoE Fiber WAN (MTU 1480 → WireGuard 1420)

Contoh terhitung: Link ISP WAN PPPOE (MTU 1480) dengan TCP MSS 1440. Menyiapkan WireGuard interface pada port UDP 13231 dengan IP 10.200.200.1/24, peer 10.200.200.2/32, dan rute ke LAN cabang 192.168.90.0/24 lengkap dengan MSS Clamping otomatis.

Input Contoh
{
  "linkType": "pppoe",
  "wanIface": "pppoe-out1",
  "wgPort": 13231,
  "wgNet": "10.200.200.1/24",
  "peerIp": "10.200.200.2/32",
  "remoteLan": "192.168.90.0/24"
}
Output Terhitung
linkType:
pppoe
mtu:
1480
ipVersion:
ipv4
ipHeaderBytes:
20
tcpHeaderBytes:
20
icmpHeaderBytes:
8
tcpMss:
1440
pingDfPayload:
1452
overheadBytes:
20
overheadDesc:
PPPoE Standar ISP Fiber / DSL (8–20 Byte Header)
windowsPingCmd:
ping 1.1.1.1 -f -l 1452
linuxPingCmd:
ping -M do -s 1452 1.1.1.1
macosPingCmd:
ping -D -s 1452 1.1.1.1
wanIface:
pppoe-out1
wgPort:
13231
wgNet:
10.200.200.1/24
peerIp:
10.200.200.2/32
remoteLan:
192.168.90.0/24

Konsep Dasar & Catatan Teknis

WireGuard adalah protokol VPN modern yang sangat cepat dan hemat daya di MikroTik RouterOS v7. Namun, seperti semua teknologi tunnel berbasis enkapsulasi, paket data yang dikirim melalui WireGuard dibungkus dengan header tambahan: 20/40 byte IP luar, 8 byte header UDP, 16 byte header transport WireGuard, serta 16 byte Poly1305 authentication tag (total overhead 60 hingga 80 byte). Oleh karena itu, antarmuka WireGuard pada jaringan IPv4 standar umumnya menggunakan MTU 1420 byte, bukan 1500 byte. Masalah operasional yang paling sering terjadi saat menghubungkan kantor pusat dan cabang melalui WireGuard adalah kegagalan membuka situs web perbankan, portal korporat, atau transfer file SMB yang macet di tengah jalan. Masalah ini disebabkan oleh ketidakcocokan MTU antara jaringan LAN lokal (1500 byte) dengan terowongan WireGuard (1420 byte) atau koneksi PPPoE ISP (1480 byte). Ketika paket berukuran 1500 byte dikirim dengan flag Don't Fragment (DF), router terpaksa membuang paket tersebut jika firewall perantara memblokir pesan ICMP Fragmentation Needed. Kalkulator ini menghasilkan konfigurasi lengkap RouterOS v7 yang mengatasi masalah tersebut secara permanen. Selain mengonfigurasi antarmuka WireGuard, IP addressing, peer allowed-address, firewall filter UDP port, dan routing tabel ke LAN cabang, script ini secara otomatis menambahkan aturan TCP MSS Clamping pada antarmuka WAN dan tunnel. Aturan ini memastikan bahwa setiap sesi TCP baru menegosiasikan ukuran paket yang pas dengan kapasitas jalur transmisi tanpa risiko fragmentasi maupun black hole.

Cara Perhitungan (Rumus & Langkah)

Pertanyaan yang Sering Diajukan (FAQ)

Mengapa nilai MTU WireGuard default di RouterOS v7 adalah 1420 byte?

Ethernet standar memiliki MTU 1500 byte. Enkapsulasi WireGuard membutuhkan 80 byte (20/40 byte IP, 8 byte UDP, 32 byte WireGuard header & Poly1305 MAC). 1500 − 80 = 1420 byte memastikan paket tidak pernah terfragmentasi bahkan saat melintasi jalur IPv6.

Apa perbedaan antara `new-mss=1440` spesifik dengan `new-mss=clamp-to-pmtu`?

Mengatur angka spesifik (misalnya 1440 pada PPPoE) menjamin nilai MSS pasti aman untuk antarmuka tersebut. Parameter `clamp-to-pmtu` secara otomatis membaca MTU dari antarmuka keluar router, menjadikannya cadangan ideal untuk banyak tunnel sekaligus.

Mengapa koneksi WireGuard butuh persistent-keepalive=25s?

Jika router cabang berada di belakang NAT atau CGNAT ISP, tabel koneksi NAT router penyedia akan menutup port setelah 30 detik tanpa trafik. Nilai keepalive 25 detik menjaga port UDP tetap terbuka agar kantor pusat bisa menghubungi cabang setiap saat.

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.