Internet kelihatan jalan. Ping ke 8.8.8.8 mulus, buka situs kecil lancar. Tapi sebagian situs berhenti setengah jalan, WhatsApp Web nggak mau connect, dan upload berhenti di 99%.
Gejala campur-aduk seperti ini hampir selalu MTU. Dan ping yang mulus itu justru yang membuatnya jarang dicurigai.
Kenapa ping menipu
Ping bawaan mengirim paket kecil — 56 byte data. Paket sekecil itu lewat di jalur mana pun, seberapa pun sempitnya.
Yang bermasalah paket penuh. Paket penuh muncul waktu ada data besar mengalir: gambar besar, unggahan berkas, halaman berat. Jadi Anda bisa punya jalur yang ping-nya sempurna tetapi mematahkan setiap paket besar yang lewat.
PPPoE memakan delapan byte, dan itu sumbernya
Ethernet biasa membawa 1500 byte. PPPoE membungkusnya lagi dan memakan 8 byte, jadi yang tersisa 1492.
Kalau di atas PPPoE masih ada tunnel — VPN, EoIP, atau apa pun — angkanya turun lagi. Tiap lapis pembungkus makan jatah.
| Jalur | MTU yang tersisa |
|---|---|
| Ethernet langsung | 1500 |
| PPPoE | 1492 |
| PPPoE + tunnel | lebih kecil lagi, tergantung tunnelnya |
Yang berbahaya: menyetel interface WAN ke 1500 padahal jalurnya PPPoE. Router akan mengirim paket yang nggak muat, dan nasib paket itu tergantung apakah ada yang memberi tahu — bagian berikutnya.
Cara mengukurnya sendiri, bukan menebak
Kirim ping berukuran besar dengan larangan memecah paket. Di Windows:
ping -f -l 1464 8.8.8.8Angka 1464 itu ukuran data saja. Kalau balasannya "Packet needs to be fragmented", turunkan; kalau lewat, naikkan. Cari angka terbesar yang masih lewat, lalu tambahkan 28 — 20 byte header IP dan 8 byte header ICMP. Hasilnya MTU jalur Anda.
Kalau 1464 lewat, MTU Anda 1492. Itu angka PPPoE yang wajar.
Kalkulator MTU dan MSS ngerjain hitungan itu sekaligus ngasih angka MSS yang cocok, jadi nggak perlu naik-turun manual.
MSS clamping: kenapa perlu meski MTU Anda sudah benar
Ini bagian yang paling sering dilewat, dan yang paling sering jadi jawaban sebenarnya.
Seharusnya, kalau ada paket terlalu besar, router di tengah mengirim pesan ICMP "fragmentation needed" supaya pengirim mengecilkan paketnya. Mekanisme itu namanya Path MTU Discovery.
Masalahnya, banyak jaringan membuang seluruh ICMP karena dikira berbahaya. Pesan itu nggak pernah sampai, pengirim nggak pernah tahu, dan dia terus mengirim paket besar yang terus dibuang. Namanya PMTUD black hole, dan gejalanya persis seperti yang Anda alami: kecil lewat, besar menggantung.
Obatnya bukan memperbaiki jaringan orang lain, melainkan memotong ukurannya sejak awal — MSS clamping. Router menandai paket TCP yang baru memulai koneksi dan menuliskan ukuran maksimum yang aman.
Aturannya satu baris di mangle chain forward, dikenakan pada TCP dengan flag SYN, dengan change-mss disetel mengikuti MTU. Nilai amannya MTU dikurangi 40. Untuk PPPoE 1492, berarti 1452.
Kenapa dikurangi 40: 20 byte header IP dan 20 byte header TCP.
Jangan menaikkan MTU asal supaya "cepat"
MTU besar memang mengurangi overhead — makin sedikit paket, makin sedikit header yang ikut terkirim. Tapi menaikkannya melebihi yang sanggup dibawa jalur nggak bikin cepat, bikin patah.
Kalau yang Anda kejar throughput, yang biasanya lebih menentukan bukan MTU melainkan latency dan ukuran jendela TCP. Duduk perkaranya ada di jalur 100 Mbps kok terasa 8 Mbps, dan angkanya bisa dicoba di Kalkulator Throughput TCP.
Kalau gejalanya muncul di dalam VPN
Sebabnya sama, tapi angkanya berbeda dan tempat memasang clamping-nya juga berbeda. Itu dibahas terpisah di MTU VPN tunnel bikin situs besar menggantung.
Dan kalau ternyata yang lambat bukan sebagian situs melainkan semuanya, MTU bukan tersangkanya — mulai dari transfer file lambat padahal bandwidth besar.