Banyak teknisi jaringan pemula menganggap mangle Mikrotik sebagai fitur firewall yang bisa memblokir situs atau membelokkan trafik. Anggapan itu keliru dan sering membuat konfigurasi bandwidth berantakan. Kenyataannya fitur ini tidak pernah menjatuhkan satu paket pun, tidak menolak koneksi, dan tidak mengubah tujuan paket. Tugasnya hanya satu: menempelkan label pada koneksi atau paket, lalu membiarkan fitur lain memanfaatkan label tersebut.
Saya mengelola jaringan RT-RW Net dengan 180 pelanggan aktif di atas RB1100AHx4 dan beberapa hEX S di sisi distribusi. Sepanjang pengalaman itu, mangle Mikrotik menjadi tulang punggung hampir semua pembagian bandwidth yang saya pakai. Tanpa label yang benar, Queue Tree hanya duduk diam dengan angka nol, dan load balancing dua ISP tidak pernah membagi trafik sesuai rencana. Alhasil, memahami cara kerja penanda paket jauh lebih penting daripada menghafal puluhan resep konfigurasi yang beredar di forum.
Artikel ini membedah mangle Mikrotik secara utuh: pengertiannya, tiga jenis mark yang tersedia, chain mana yang tepat untuk setiap kebutuhan, parameter passthrough yang sering disalahpahami, sampai contoh konfigurasi nyata yang bisa langsung Anda jalankan. Setiap perintah sudah saya uji pada RouterOS versi 6 dan versi 7, termasuk perbedaan sintaks routing table yang berubah di versi terbaru. Mari mulai dari definisi yang paling sederhana.
Pengertian Mangle Mikrotik dan Fungsi Sebenarnya
Mangle Mikrotik adalah fasilitas di dalam firewall RouterOS yang bertugas memberi tanda pada koneksi, paket, atau keputusan routing, tanpa pernah mengubah isi maupun nasib paket tersebut. Tanda itu berupa teks bebas yang Anda tentukan sendiri, misalnya game-pkt atau iix-conn. Setelah label menempel, fitur lain seperti Queue Tree, routing policy, atau filter rule dapat mengenali paket berdasarkan label itu. Jadi posisinya mirip petugas yang menempelkan stiker warna pada koper di bandara: stiker tidak memindahkan koper, tetapi ban berjalan berikutnya membaca stiker itu untuk memilah tujuan.
Nama “mangle” memang menyesatkan karena dalam bahasa Inggris kata itu berarti merusak atau mencabik. Pada RouterOS, penamaan tersebut merupakan warisan dari tabel mangle di iptables Linux yang memang bisa mengubah header paket, misalnya nilai TTL atau DSCP. RouterOS mempertahankan sebagian kemampuan itu lewat aksi seperti change-ttl, change-mss, dan change-dscp. Namun dalam praktik sehari-hari operator jaringan Indonesia, sembilan puluh persen pemakaian fitur ini murni untuk penandaan, bukan pengubahan.
Perbedaan mendasar antara penandaan dan penyaringan perlu Anda pegang sejak awal. Rule pada /ip firewall filter memutuskan apakah router meneruskan atau membuang sebuah paket. Rule pada /ip firewall nat menerjemahkan alamat sumber atau tujuan. Sementara rule mangle Mikrotik tidak melakukan keduanya, sehingga menambah seratus rule penandaan tidak akan pernah memutus koneksi pelanggan Anda.
Mangle Mikrotik Bukan Alat Blokir atau Pembelok Trafik
Saya sering menemukan konfigurasi warisan teknisi sebelumnya yang berisi rule penandaan dengan harapan bisa memblokir media sosial. Rule semacam itu jelas mubazir karena label tidak punya kuasa menjatuhkan paket. Untuk memblokir konten, Anda tetap butuh rule pada tabel filter atau daftar alamat, seperti yang saya bahas pada panduan pemblokiran situs lewat firewall RouterOS. Penanda paket hanya berguna bila ada fitur lain yang membaca labelnya.
Hal serupa berlaku untuk pembelokan trafik. Aksi mark-routing memang terdengar seperti membelokkan jalur, padahal ia hanya menuliskan nama routing table pada paket. Entri di /ip route yang memakai nama tabel tersebut tetap memegang keputusan pembelokan. Tanpa route pendamping, label routing itu tidak menghasilkan apa pun selain beban CPU.
Kesalahpahaman ketiga muncul ketika orang mengira mangle Mikrotik bisa membatasi kecepatan secara langsung. Label sama sekali tidak mengenal satuan megabit. Mesin antrian tetap memegang tugas pembatasan kecepatan, entah pembatasan sederhana per alamat IP maupun struktur antrian bertingkat yang lebih rumit.
Kenapa Penanda Paket Menjadi Fondasi Manajemen Bandwidth
Mesin antrian pada RouterOS butuh cara mengelompokkan trafik sebelum bisa memberi jatah berbeda. Simple Queue mengelompokkan berdasarkan alamat IP dan interface, sehingga Anda bisa memakainya tanpa label apa pun. Queue Tree sebaliknya sama sekali buta terhadap alamat IP; ia hanya mengenal packet mark. Maka begitu Anda ingin memberi prioritas berbeda antara trafik game, trafik lokal, dan trafik unduhan besar, mangle Mikrotik menjadi satu-satunya jembatan.
Load balancing dua ISP menyimpan cerita yang sama. Metode PCC yang populer di Indonesia sepenuhnya bekerja di atas rule penandaan, karena PCC hanya sebuah kriteria pencocokan di dalam rule mangle. Saya membahas rangkaian rule itu secara rinci pada tulisan tentang membagi beban dua jalur internet dengan PCC. Tanpa penandaan, router hanya memakai dua ISP itu bergantian sebagai cadangan, bukan bersamaan.
Fungsi ketiga yang jarang mendapat sorotan adalah pelaporan. Setiap rule mangle Mikrotik menyimpan penghitung byte dan paket, sehingga Anda bisa mengukur berapa besar porsi trafik game, YouTube, atau lalu lintas lokal tanpa memasang aplikasi tambahan. Saya sering memakai penghitung itu untuk membuktikan kepada pelanggan bahwa lonjakan pemakaian mereka berasal dari pembaruan sistem operasi, bukan dari gangguan jaringan.

Cara Kerja Mangle Mikrotik dalam Menandai Paket
Alur penandaan mengikuti perjalanan paket melewati beberapa titik pemeriksaan di dalam RouterOS. Setiap titik pemeriksaan itu disebut chain, dan urutannya sudah ditentukan oleh arsitektur RouterOS sendiri. Paket yang datang dari kabel akan menyentuh chain prerouting lebih dulu, kemudian router memutuskan apakah paket itu untuk dirinya sendiri atau untuk diteruskan. Setelah keputusan tersebut, paket melanjutkan ke chain input atau forward, lalu berakhir di chain postrouting sebelum keluar lewat interface tujuan.
Di setiap chain, router membaca rule mangle Mikrotik dari nomor urut paling kecil sampai paling besar. Begitu sebuah rule cocok dengan kriteria, router menempelkan label dan memeriksa nilai passthrough. Jika nilainya yes, paket melanjutkan perjalanan ke rule berikutnya dan masih bisa menerima label tambahan. Jika nilainya no, paket langsung meninggalkan chain tersebut dan rule di bawahnya tidak pernah dievaluasi.
Perilaku berurutan ini menjelaskan kenapa posisi rule sangat menentukan hasil akhir. Saya pernah menghabiskan dua jam mencari penyebab Queue Tree yang kosong, ternyata ada rule lama dengan passthrough=no bertengger di urutan kedua dan menelan semua paket sebelum sampai ke rule baru saya. Maka setiap kali menambah rule, biasakan memeriksa urutannya dengan /ip firewall mangle print terlebih dahulu.
Tiga Jenis Penandaan dan Urutan yang Benar
RouterOS menyediakan tiga aksi penandaan utama yang saling melengkapi. Aksi mark-connection menempelkan label pada seluruh koneksi di tabel connection tracking, sehingga label itu otomatis berlaku untuk semua paket dalam koneksi yang sama, dua arah sekaligus. Berbeda dengan itu, mark-packet menempelkan label pada paket individual, dan label tersebut hilang begitu paket meninggalkan router. Adapun mark-routing menuliskan nama routing table pada paket agar router memilih tabel routing tertentu saat menentukan jalur keluar.
Urutan pemakaian yang benar selalu dimulai dari koneksi, baru paket. Rule pertama mencocokkan kriteria berat seperti port, protokol, atau daftar alamat, lalu memberi connection mark. Rule kedua cukup mencocokkan connection mark tadi, lalu memberi packet mark. Pola dua tahap ini jauh lebih hemat sumber daya karena pencocokan berat hanya terjadi sekali per koneksi, sementara ribuan paket berikutnya cukup dicocokkan lewat satu kolom label di memori.
Berikut bentuk paling dasar dari pola dua tahap tersebut untuk menandai trafik HTTPS:
/ip firewall mangle
add chain=forward action=mark-connection new-connection-mark=https-conn \
protocol=tcp dst-port=443 passthrough=yes comment="Tahap 1 tandai koneksi HTTPS"
add chain=forward action=mark-packet new-packet-mark=https-pkt \
connection-mark=https-conn passthrough=no comment="Tahap 2 tandai paket HTTPS"
Mengenal Chain pada Mangle Mikrotik dan Kapan Memakainya
Chain prerouting menangkap paket paling awal, sebelum router memutuskan tujuannya. Titik ini cocok untuk menandai trafik unggah dari pelanggan menuju internet dan untuk memberi routing mark pada load balancing. Chain postrouting berada di ujung akhir, setelah semua keputusan routing selesai, sehingga paling tepat untuk menandai trafik unduhan yang akan turun ke arah pelanggan.
Chain forward hanya dilewati paket yang router teruskan antar interface, jadi seluruh trafik pelanggan menuju internet masuk ke sini. Saya memakainya untuk penandaan per pelanggan karena kriteria alamat sumber dan tujuan tersedia lengkap pada titik tersebut. Chain input dan output masing-masing menangani trafik yang ditujukan ke router itu sendiri dan trafik yang lahir dari router, misalnya sesi Winbox, permintaan DNS milik router, atau tunnel yang router bangun sendiri.
Satu catatan penting: routing mark hanya berfungsi bila Anda memasangnya di chain prerouting untuk trafik pelanggan, atau di chain output untuk trafik yang berasal dari router. Memasang mark-routing di chain forward tidak akan berpengaruh karena keputusan routing sudah lewat. Kesalahan pemilihan chain menempati peringkat teratas dalam daftar kegagalan konfigurasi mangle Mikrotik yang saya temui di lapangan.
Parameter Passthrough dan Efeknya pada Performa
Parameter passthrough menentukan apakah paket boleh melanjutkan perjalanan ke rule berikutnya setelah menerima label. Nilai bawaan setiap rule mangle Mikrotik adalah yes, yang berarti paket terus dievaluasi oleh semua rule di bawahnya. Perilaku itu wajib Anda pertahankan pada rule mark-connection, sebab paket yang sama masih perlu menerima packet mark dari rule berikutnya. Sebaliknya, rule mark-packet hampir selalu sebaiknya memakai passthrough=no.
Alasannya murni soal efisiensi. Paket yang sudah menerima packet mark biasanya tidak butuh label tambahan, sehingga membiarkannya melewati puluhan rule sisanya hanya membakar siklus CPU tanpa hasil. Pada router kelas hEX dengan trafik 300 Mbps, saya mengukur penurunan pemakaian CPU sekitar delapan persen hanya dengan mematikan passthrough pada seluruh rule packet mark. Angka itu terdengar kecil, tetapi sangat berarti ketika router sudah menyentuh beban 70 persen di jam sibuk.
Ada satu situasi yang menuntut passthrough tetap menyala pada rule packet mark, yaitu ketika Anda sengaja memberi lebih dari satu label berlapis untuk keperluan statistik. Kasus semacam ini jarang, dan saya menyarankan Anda menghindarinya kecuali benar-benar paham konsekuensinya. Praktisnya, matikan passthrough begitu paket sudah menerima label final.
Kelebihan dan Kekurangan Mangle Mikrotik
Kekuatan terbesar fitur ini terletak pada fleksibilitasnya. Anda bisa mencocokkan paket berdasarkan protokol, port, alamat sumber, alamat tujuan, daftar alamat, interface, ukuran paket, TCP flag, bahkan isi paket lewat pencocokan Layer 7. Kombinasi kriteria itu memungkinkan pemilahan trafik yang sangat detail, jauh melampaui kemampuan pembatasan sederhana berbasis alamat IP. Fleksibilitas tersebut menjadikan penanda paket sebagai fondasi bagi hampir semua skenario manajemen bandwidth serius.
Kelemahan mangle Mikrotik juga nyata dan perlu Anda perhitungkan. Setiap rule menambah beban pemrosesan per paket, dan beban itu tumbuh linear seiring jumlah rule. Router kecil seperti hAP lite atau hEX lite akan tersengal ketika Anda memasang lebih dari lima puluh rule pada trafik ratusan megabit. Selain itu, rule penandaan tidak bisa berjalan bersama fitur FastTrack karena FastTrack sengaja melewati seluruh pemrosesan firewall demi kecepatan.
Tabel berikut merangkum perbandingan tiga jenis penandaan beserta kegunaan masing-masing:
| Jenis Mark | Aksi RouterOS | Cakupan Label | Dibaca Oleh | Kegunaan Utama |
|---|---|---|---|---|
| Connection Mark | mark-connection | Seluruh paket dalam satu koneksi, dua arah | Rule mangle berikutnya, filter, NAT | Pencocokan sekali di awal koneksi agar hemat CPU |
| Packet Mark | mark-packet | Satu paket saja, hilang saat keluar router | Queue Tree, filter, penghitung statistik | Wajib untuk semua antrian bertingkat |
| Routing Mark | mark-routing | Satu paket, memilih tabel routing | Entri pada /ip route | Load balancing dan policy routing multi ISP |
Perbandingan dengan Metode Pembatasan Lain
Simple Queue menang telak dari sisi kemudahan. Anda cukup mengisi alamat IP pelanggan dan batas kecepatannya, selesai. Kekurangannya muncul saat pelanggan bertambah banyak, sebab RouterOS mengevaluasi antrian sederhana secara berurutan sehingga pelanggan nomor dua ratus mendapat penanganan paling lambat. Queue Tree berbasis label tidak mengenal masalah ini karena pencocokannya memakai hash pada packet mark.
Sisi lain yang perlu Anda timbang adalah waktu pemeliharaan. Menambah satu pelanggan pada antrian sederhana butuh satu baris perintah, sedangkan pada skema berbasis penandaan Anda butuh dua sampai empat rule mangle ditambah satu entri antrian. Beban administratif itu bisa Anda pangkas dengan menandai per segmen alamat, bukan per pelanggan, seperti yang akan saya tunjukkan pada bagian studi kasus.
Untuk jaringan di bawah tiga puluh pelanggan dengan kebutuhan sederhana, saya biasanya tetap menyarankan antrian sederhana. Begitu jumlah pelanggan melewati lima puluh atau Anda mulai butuh prioritas berbeda antar jenis trafik, barulah investasi waktu pada mangle Mikrotik terbayar dengan jelas.
Persiapan Sebelum Membuat Rule Mangle Mikrotik
Langkah persiapan pertama adalah memetakan topologi dan penamaan interface. Catat interface mana yang menghadap ISP dan mana yang menghadap pelanggan, karena hampir semua rule penandaan bergantung pada arah trafik. Pada jaringan saya, interface WAN bernama ether1-isp dan sisi pelanggan berupa bridge bernama bridge-lan. Penamaan yang konsisten menghemat banyak waktu ketika Anda harus membaca ulang konfigurasi enam bulan kemudian.
Persiapan kedua menyangkut segmentasi alamat IP. Pastikan pelanggan berada pada blok alamat yang rapi, misalnya 10.10.10.0/24 untuk paket 10 Mbps dan 10.10.20.0/24 untuk paket 20 Mbps. Segmentasi semacam itu memungkinkan satu rule mangle Mikrotik melayani puluhan pelanggan sekaligus. Kalau Anda memakai PPPoE, atur pemberian alamat lewat profil sehingga setiap paket layanan mendapat pool tersendiri, seperti yang saya jelaskan pada panduan pengaturan pelanggan PPPoE beserta profilnya.
Persiapan ketiga adalah mematikan FastTrack bila Anda berencana memakai Queue Tree. Rule FastTrack bawaan RouterOS mempercepat koneksi mapan dengan melewati firewall, dan efek sampingnya membuat sebagian besar paket tidak pernah menyentuh rule mangle Mikrotik. Periksa keberadaannya dengan perintah berikut, lalu nonaktifkan bila ada:
/ip firewall filter print where action=fasttrack-connection /ip firewall filter disable [find action=fasttrack-connection]
Setelah FastTrack mati, pemakaian CPU akan naik karena semua paket kembali melewati pemrosesan penuh. Kenaikan itu wajar dan menjadi harga yang harus Anda bayar untuk kontrol bandwidth yang akurat. Pada RB1100AHx4 dengan trafik 400 Mbps, kenaikannya sekitar dua belas persen dan masih sangat aman.
Konfigurasi Mangle Mikrotik Langkah demi Langkah
Bagian ini berisi lima skenario yang paling sering saya pakai di lapangan. Setiap skenario berdiri sendiri, jadi Anda bisa memilih yang relevan tanpa harus menerapkan semuanya. Namun urutan penomoran rule tetap penting bila Anda menggabungkan beberapa skenario dalam satu router. Saya menyarankan mengelompokkan rule per skenario dan memberi komentar penanda kelompok agar Anda mudah menelusurinya.
Langkah 1 — Memisahkan Trafik Unduh dan Unggah
Pemisahan arah menjadi dasar hampir semua konfigurasi antrian. Trafik unggah bergerak dari pelanggan menuju internet, sehingga alamat sumbernya berada di blok lokal. Trafik unduh bergerak sebaliknya, dengan alamat tujuan di blok lokal. Karena arahnya berbeda, chain yang Anda pakai pun berbeda.
/ip firewall mangle
add chain=prerouting action=mark-packet new-packet-mark=upload-pkt \
src-address=10.10.10.0/24 in-interface=bridge-lan passthrough=no \
comment="ARAH: unggah pelanggan menuju internet"
add chain=postrouting action=mark-packet new-packet-mark=download-pkt \
dst-address=10.10.10.0/24 out-interface=bridge-lan passthrough=no \
comment="ARAH: unduh internet menuju pelanggan"
Perhatikan pemakaian in-interface pada rule unggah dan out-interface pada rule unduh. Kombinasi alamat dan interface membuat rule jauh lebih presisi, sekaligus mencegah trafik antar pelanggan ikut terhitung sebagai pemakaian internet. Tanpa pembatas interface, transfer file antar dua komputer di jaringan lokal akan memakan jatah antrian internet Anda.
Setelah kedua rule aktif, periksa penghitungnya untuk memastikan paket benar-benar tertangkap. Perintah /ip firewall mangle print stats menampilkan kolom byte dan paket per rule. Kalau angkanya tetap nol setelah satu menit, berarti kriteria Anda tidak cocok dan perlu diperiksa ulang.
Langkah 2 — Menandai Trafik Game agar Diprioritaskan
Trafik game daring bersifat kecil tetapi sangat sensitif terhadap keterlambatan. Karakter itu membuatnya ideal untuk mendapat prioritas tertinggi tanpa memakan bandwidth besar. Saya biasanya menandainya berdasarkan protokol UDP pada rentang port yang umum dipakai, lalu menaikkan prioritasnya di antrian.
/ip firewall mangle
add chain=forward action=mark-connection new-connection-mark=game-conn \
protocol=udp dst-port=27000-27050,3074,5222-5223 passthrough=yes \
comment="GAME: tandai koneksi game populer"
add chain=forward action=mark-packet new-packet-mark=game-pkt \
connection-mark=game-conn passthrough=no \
comment="GAME: tandai paket dari koneksi game"
Rentang port di atas mencakup layanan Steam, konsol, dan beberapa game seluler populer. Anda sebaiknya menyesuaikannya dengan game yang benar-benar dimainkan pelanggan, karena daftar port setiap penerbit berbeda. Untuk menemukan port yang tepat, jalankan Torch saat pelanggan sedang bermain dan amati tujuan trafik UDP yang muncul terus-menerus dengan ukuran paket kecil.
Satu peringatan penting: jangan menandai seluruh trafik UDP sebagai game. Layanan video conference, DNS, dan sebagian besar trafik QUIC dari peramban modern juga memakai UDP, sehingga penandaan yang terlalu longgar justru membuat unduhan besar ikut mendapat prioritas tertinggi. Hasilnya kebalikan dari yang Anda inginkan.
Langkah 3 — Menandai Trafik Lokal IIX agar Hemat Jatah Internasional
Banyak ISP di Indonesia menjual bandwidth dengan porsi lokal jauh lebih besar daripada internasional. Memisahkan keduanya membuat pelanggan tetap mendapat kecepatan tinggi saat mengakses konten dalam negeri, tanpa menghabiskan jatah internasional yang mahal. Pemisahan ini butuh daftar alamat berisi prefix lokal, lalu satu pasang rule penandaan.
/ip firewall address-list
add list=IIX address=103.10.64.0/19 comment="Contoh prefix lokal"
add list=IIX address=180.250.0.0/16 comment="Contoh prefix lokal"
add list=IIX address=202.134.0.0/16 comment="Contoh prefix lokal"
/ip firewall mangle
add chain=prerouting action=mark-connection new-connection-mark=iix-conn \
dst-address-list=IIX passthrough=yes comment="IIX: koneksi ke konten lokal"
add chain=prerouting action=mark-packet new-packet-mark=iix-pkt \
connection-mark=iix-conn passthrough=no comment="IIX: paket konten lokal"
Tiga prefix di atas hanya contoh; daftar lengkap alamat lokal berisi ribuan entri dan biasanya tersedia sebagai berkas skrip siap impor dari komunitas Mikrotik Indonesia. Anda bisa mengimpornya dengan perintah /import file-name=nice.rsc setelah mengunggah berkasnya ke router. Ingat bahwa router kecil punya batas memori, jadi periksa pemakaian RAM setelah impor daftar besar.
Setelah rule IIX menempelkan labelnya, buat satu rule tambahan untuk menandai sisa trafik sebagai internasional. Letakkan rule itu tepat di bawah rule IIX tanpa kriteria alamat, sehingga ia menangkap semua paket yang belum menerima label. Dengan begitu Anda punya dua kelompok trafik yang bisa diberi jatah berbeda di antrian.
Langkah 4 — Menandai Per Pelanggan untuk Queue Tree
Penandaan per pelanggan memberi kontrol paling halus, cocok untuk RT-RW Net yang menjual beberapa paket kecepatan berbeda. Kuncinya memakai satu connection mark per pelanggan, lalu memecahnya menjadi dua packet mark sesuai arah. Contoh berikut menandai pelanggan dengan alamat 10.10.10.21.
/ip firewall mangle
add chain=forward action=mark-connection new-connection-mark=budi-conn \
src-address=10.10.10.21 passthrough=yes comment="BUDI: koneksi keluar"
add chain=forward action=mark-connection new-connection-mark=budi-conn \
dst-address=10.10.10.21 passthrough=yes comment="BUDI: koneksi masuk"
add chain=forward action=mark-packet new-packet-mark=budi-up \
connection-mark=budi-conn src-address=10.10.10.21 passthrough=no \
comment="BUDI: paket unggah"
add chain=forward action=mark-packet new-packet-mark=budi-down \
connection-mark=budi-conn dst-address=10.10.10.21 passthrough=no \
comment="BUDI: paket unduh"
Empat rule per pelanggan jelas tidak praktis untuk dua ratus pelanggan. Solusi yang saya pakai adalah menandai per blok alamat, bukan per pelanggan, lalu memakai PCQ di dalam antrian untuk membagi rata antar anggota blok. Pendekatan itu memangkas jumlah rule dari delapan ratus menjadi hanya delapan, dengan hasil pembagian yang sama adilnya.
Bila Anda tetap butuh kontrol per pelanggan, pertimbangkan memakai antrian sederhana untuk itu dan menyisakan penandaan hanya untuk prioritas jenis trafik. Kombinasi dua mesin antrian memang mungkin, asalkan Anda paham bahwa RouterOS mengeksekusi antrian sederhana lebih dulu daripada antrian bertingkat.
Langkah 5 — Routing Mark agar Trafik Keluar lewat ISP Tertentu
Skenario terakhir memanfaatkan mark-routing untuk memaksa jenis trafik tertentu keluar lewat jalur pilihan. Contoh paling umum: trafik lokal IIX lewat ISP lokal yang murah, sementara trafik internasional lewat ISP kedua. Perlu dua bagian konfigurasi, yaitu rule penandaan dan entri route yang membacanya.
/ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark=via-isp1 \
dst-address-list=IIX in-interface=bridge-lan passthrough=no \
comment="ROUTE: trafik lokal keluar lewat ISP satu"
/routing table
add name=via-isp1 fib comment="Tabel untuk trafik lokal"
/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-table=via-isp1 \
comment="Gerbang ISP satu untuk trafik bertanda"
Perintah /routing table di atas berlaku untuk RouterOS versi 7 yang mewajibkan pendaftaran tabel routing terlebih dahulu. Pada RouterOS versi 6, Anda melewati langkah itu dan langsung memakai parameter routing-mark=via-isp1 di dalam entri route. Perbedaan sintaks inilah yang membuat banyak tutorial lama gagal ketika disalin ke perangkat baru.
Pastikan Anda juga menyiapkan route bawaan tanpa tanda sebagai jalur cadangan. Tanpa route bawaan, paket yang tidak menerima routing mark tidak punya jalan keluar sama sekali. Prinsip serupa berlaku pada konfigurasi jalur cadangan otomatis antar dua koneksi yang pernah saya bahas terpisah.
Menghubungkan Mangle Mikrotik dengan Queue Tree dan PCQ
Queue Tree tidak mengenal alamat IP sama sekali. Satu-satunya cara memberi tahu antrian bertingkat tentang trafik mana yang harus ia tangani adalah lewat parameter packet-mark. Nilai yang Anda isi di situ wajib sama persis dengan nilai new-packet-mark pada rule mangle Mikrotik, termasuk huruf besar kecilnya. Ketidakcocokan satu huruf saja membuat antrian diam dengan angka nol byte.
Struktur antrian yang saya pakai selalu bertingkat dua: satu antrian induk sebagai batas total kapasitas, lalu beberapa antrian anak untuk tiap jenis trafik. Antrian induk tidak memakai packet mark karena ia hanya menampung, sedangkan setiap anak wajib memakainya. Berikut contoh lengkap yang membaca label dari skenario game dan IIX di atas:
/queue type
add name=pcq-down kind=pcq pcq-rate=0 pcq-classifier=dst-address \
pcq-limit=50 pcq-total-limit=2000
/queue tree
add name=INDUK-DOWN parent=bridge-lan max-limit=100M comment="Total kapasitas unduh"
add name=Q-GAME parent=INDUK-DOWN packet-mark=game-pkt \
limit-at=5M max-limit=100M priority=1 queue=pcq-down
add name=Q-IIX parent=INDUK-DOWN packet-mark=iix-pkt \
limit-at=30M max-limit=100M priority=5 queue=pcq-down
add name=Q-INTL parent=INDUK-DOWN packet-mark=download-pkt \
limit-at=20M max-limit=100M priority=8 queue=pcq-down
Nilai priority=1 berarti prioritas tertinggi dan priority=8 terendah. Ketika kapasitas induk penuh, router mendahulukan antrian dengan angka prioritas terkecil setelah semua antrian menerima jatah limit-at miliknya. Mekanisme dua lapis itu menjamin trafik game tetap lancar meski ada pelanggan lain sedang mengunduh berkas besar. Penjelasan teknis lebih dalam soal pembagian rata antar pengguna bisa Anda baca pada artikel antrian bertingkat dengan pembagi otomatis PCQ.
Studi Kasus RT-RW Net dengan 180 Pelanggan
Jaringan yang saya kelola berlangganan 200 Mbps dedicated dari ISP lokal, dengan RB1100AHx4 sebagai router utama. Pelanggan terbagi menjadi tiga paket: 5 Mbps untuk 110 pelanggan, 10 Mbps untuk 55 pelanggan, dan 20 Mbps untuk 15 pelanggan. Sebelum memakai mangle Mikrotik, saya mengandalkan antrian sederhana per pelanggan dan CPU router menyentuh 85 persen setiap pukul delapan malam. Keluhan lambat datang hampir setiap hari meski total pemakaian belum menyentuh kapasitas.
Saya memulai perbaikan dengan memisahkan pelanggan ke tiga blok alamat sesuai paketnya, lalu membuat enam rule penandaan saja: tiga untuk arah unduh dan tiga untuk arah unggah. Setiap blok mendapat satu packet mark, dan antrian bertingkat memakai PCQ dengan pcq-rate disetel sesuai kecepatan paket. Jumlah rule turun drastis dari 360 baris antrian sederhana menjadi enam rule mangle Mikrotik ditambah delapan entri antrian.
Hasilnya terukur jelas. Pemakaian CPU di jam sibuk turun ke kisaran 45 persen, dan latensi rata-rata ke server game lokal membaik dari 78 ms menjadi 31 ms setelah saya tambahkan prioritas khusus trafik game. Keluhan pelanggan soal kelambatan turun hampir tujuh puluh persen dalam bulan pertama. Perhitungan kapasitas yang mendasari pembagian jatah tersebut saya uraikan pada tulisan tentang menakar kebutuhan bandwidth sebuah jaringan komunitas.
Angka dan Konfigurasi yang Dipakai
Berikut ringkasan pembagian jatah yang berjalan di jaringan tersebut sampai hari ini:
| Kelompok | Blok Alamat | Packet Mark | limit-at | max-limit | Prioritas |
|---|---|---|---|---|---|
| Game semua paket | gabungan | game-pkt | 10M | 200M | 1 |
| Paket 20 Mbps | 10.10.30.0/24 | p20-down | 40M | 200M | 3 |
| Paket 10 Mbps | 10.10.20.0/24 | p10-down | 70M | 200M | 5 |
| Paket 5 Mbps | 10.10.10.0/24 | p05-down | 70M | 200M | 6 |
Jumlah seluruh nilai limit-at sengaja saya jaga agar tidak melebihi kapasitas induk 200 Mbps. Anda wajib mematuhi aturan itu, sebab RouterOS tidak bisa menjamin jatah minimum yang totalnya melampaui kapasitas nyata. Router membagikan sisa kapasitas di luar jatah minimum berdasarkan prioritas, sehingga pelanggan paket besar tetap merasakan keunggulan saat jaringan lengang.
Tips dan Best Practice Mangle Mikrotik
Beri komentar pada setiap rule mangle Mikrotik tanpa kecuali. Saya memakai format awalan kelompok diikuti penjelasan singkat, misalnya GAME: tandai koneksi atau IIX: paket lokal. Format itu memungkinkan pencarian cepat dengan /ip firewall mangle print where comment~"GAME" ketika Anda perlu mengubah satu kelompok saja. Router tanpa komentar akan menjadi mimpi buruk begitu jumlah rule melewati dua puluh.
Matikan passthrough pada setiap rule packet mark yang menjadi label final. Kebiasaan sederhana ini menghemat CPU secara konsisten dan mencegah paket menerima label ganda yang membingungkan. Sebaliknya, jangan pernah mematikan passthrough pada rule connection mark, karena paket masih membutuhkan rule berikutnya untuk mendapat packet mark.
Batasi jumlah rule pada perangkat kecil. Untuk hAP lite, hEX lite, atau RB750 generasi lama, saya menahan diri di angka maksimal dua puluh rule. Perangkat kelas hEX S, RB4011, atau CCR sanggup menangani ratusan rule tanpa kesulitan, tetapi tetap ukur pemakaian CPU pada beban puncak sebelum menambah lagi.
Menguji Rule dengan Torch dan Penghitung Statistik
Torch menjadi alat verifikasi favorit saya karena menampilkan trafik yang lewat secara langsung. Jalankan perintah berikut untuk mengamati trafik pada interface pelanggan, lengkap dengan protokol dan port yang sedang aktif:
/tool torch interface=bridge-lan src-address=10.10.10.0/24 \
port=any-port protocol=any
Bandingkan hasil Torch dengan penghitung pada rule mangle Mikrotik. Kalau Torch menunjukkan ada trafik UDP ke port 27015 tetapi penghitung rule game tetap nol, berarti chain atau kriteria Anda salah. Metode perbandingan silang seperti ini memangkas waktu pencarian masalah dari berjam-jam menjadi hitungan menit.
Biasakan juga mereset penghitung sebelum pengujian agar angka yang Anda baca benar-benar baru. Perintah /ip firewall mangle reset-counters-all mengembalikan semua penghitung ke nol tanpa mengubah konfigurasi. Dokumentasi resmi setiap parameter tersedia di pusat dokumentasi RouterOS bila Anda ingin menelusuri opsi yang belum saya bahas.
Troubleshooting Masalah Mangle Mikrotik yang Umum
Sebagian besar kegagalan konfigurasi mangle Mikrotik berakar pada tiga penyebab yang sama. Saya mengurutkannya berdasarkan frekuensi kemunculan di lapangan, mulai dari yang paling sering saya temui. Setiap bagian berisi gejala, cara memastikan penyebabnya, dan langkah perbaikannya.
Queue Tree Tidak Jalan karena Packet Mark Tidak Cocok
Gejalanya sangat khas: antrian bertingkat berdiri rapi tetapi kolom byte tetap nol meski trafik pelanggan padat. Penyebab nomor satu adalah salah ketik pada nama label, misalnya rule menulis download-pkt sedangkan antrian menulis download_pkt. RouterOS memperlakukan keduanya sebagai label berbeda tanpa memberi peringatan apa pun.
Cara memastikannya cukup mudah. Jalankan dua perintah berikut lalu bandingkan kolom nama label secara berdampingan:
/ip firewall mangle print where action=mark-packet /queue tree print
Penyebab kedua yang sering menyertai adalah FastTrack yang masih aktif, sehingga paket tidak pernah menyentuh rule penandaan. Periksa penghitung pada rule mangle Mikrotik terlebih dahulu; kalau rule penandaan sendiri sudah nol, masalahnya bukan di antrian melainkan di firewall. Nonaktifkan rule FastTrack, lalu amati apakah penghitung mulai bergerak.
Rule Tidak Kena karena Chain Salah
Kesalahan chain menghasilkan gejala yang mirip, yaitu penghitung rule tetap nol. Kasus paling umum: menandai trafik unduh di chain prerouting dengan kriteria out-interface. Kriteria itu mustahil cocok karena router belum memutuskan interface keluar saat paket berada di prerouting. Solusinya pindahkan rule ke chain postrouting.
Kasus umum kedua menimpa routing mark yang dipasang di chain forward. Router sudah menyelesaikan keputusan routing sebelum paket sampai ke forward, sehingga label tabel routing tidak berpengaruh apa pun. Pindahkan rule tersebut ke chain prerouting untuk trafik pelanggan, atau ke chain output untuk trafik yang lahir dari router itu sendiri.
Kesalahan ketiga berkaitan dengan trafik menuju router. Ping ke alamat router, sesi Winbox, dan permintaan DNS ke router tidak pernah melewati chain forward. Bila Anda ingin menandai trafik semacam itu, pakailah chain input. Rincian setiap chain beserta urutan pemrosesannya tersedia pada arsip wiki resmi Mikrotik bila Anda ingin menelusuri diagram alur paket secara lengkap.
CPU Tinggi karena Rule Terlalu Banyak
Router yang kewalahan menunjukkan gejala berupa latensi naik, throughput turun, dan Winbox terasa berat. Langkah pertama, pastikan penyebabnya benar-benar firewall dengan menjalankan pengukuran beban per proses:
/tool profile duration=10 /system resource print
Bila baris firewall menempati porsi terbesar, berarti jumlah rule Anda memang berlebihan untuk kelas perangkat tersebut. Perbaikannya ada tiga: gabungkan rule sejenis memakai daftar alamat, ganti penandaan per pelanggan menjadi per blok alamat, dan pastikan semua rule packet mark memakai passthrough=no. Ketiga langkah itu biasanya memangkas beban firewall hingga separuh.
Kalau beban tetap tinggi setelah optimasi, pertimbangkan meningkatkan kelas perangkat. Router dengan CPU multi-core seperti RB4011 atau seri CCR menangani rule firewall jauh lebih baik karena RouterOS mendistribusikan pemrosesan antar core. Menambah perangkat memang mengeluarkan biaya, tetapi jauh lebih murah dibanding kehilangan pelanggan akibat jaringan yang lambat.
Pertanyaan yang Sering Diajukan Seputar Mangle Mikrotik
Apakah mangle Mikrotik bisa dipakai memblokir situs?
Tidak bisa. Rule mangle Mikrotik hanya menempelkan label dan sama sekali tidak punya aksi drop maupun reject. Untuk memblokir, Anda perlu rule pada /ip firewall filter, meskipun label dari mangle bisa Anda pakai sebagai kriteria pencocokan di rule filter tersebut.
Haruskah mark-connection selalu dibuat sebelum mark-packet?
Saya sangat menganjurkannya, walau secara teknis tidak wajib. Pola dua tahap menghemat CPU karena pencocokan berat hanya berjalan sekali per koneksi. Anda boleh langsung memakai mark-packet untuk kriteria ringan seperti alamat sumber, tetapi hindari pola itu untuk pencocokan port atau daftar alamat besar.
Berapa jumlah rule mangle Mikrotik yang masih aman?
Patokan saya: maksimal 20 rule untuk perangkat kelas hAP lite dan hEX lite, sekitar 100 rule untuk hEX S dan RB2011, serta ratusan rule untuk RB4011 ke atas. Angka ini bergantung pada besar trafik, jadi selalu ukur pemakaian CPU pada jam sibuk sebagai patokan akhir.
Apa beda packet mark dengan routing mark?
Queue Tree membaca packet mark untuk keperluan pembagian bandwidth, sedangkan tabel routing membaca routing mark untuk menentukan jalur keluar paket. Keduanya bisa terpasang bersamaan pada satu paket, dan keduanya sama-sama hilang begitu paket meninggalkan router.
Kenapa Queue Tree saya menunjukkan angka nol byte?
Penyebab tersering adalah nama packet mark di antrian tidak sama persis dengan yang tertulis di rule mangle Mikrotik. Penyebab kedua adalah FastTrack yang masih aktif sehingga paket melewati firewall. Periksa penghitung rule mangle terlebih dahulu untuk memastikan letak masalahnya.
Apakah passthrough wajib dimatikan pada semua rule?
Tidak wajib, tetapi sangat dianjurkan pada rule mark-packet yang menjadi label final. Rule mark-connection justru harus tetap memakai passthrough=yes agar paket bisa melanjutkan ke rule pemberi packet mark di bawahnya.
Bisakah mangle Mikrotik dipakai bersama Simple Queue?
Bisa, dan Simple Queue bahkan menyediakan kolom packet-marks untuk membaca label. Perlu Anda ingat bahwa RouterOS mengeksekusi antrian sederhana sebelum antrian bertingkat, sehingga batas pada antrian sederhana akan menang bila keduanya mengatur trafik yang sama.
Apakah rule penandaan berpengaruh pada trafik hotspot?
Berpengaruh, karena trafik pengguna hotspot tetap melewati chain forward sehingga rule mangle Mikrotik ikut mengevaluasinya. Anda bisa menandainya berdasarkan blok alamat pool hotspot, lalu memberi jatah tersendiri di antrian agar tidak menggerus bandwidth pelanggan PPPoE.
Kesimpulan
Fitur mangle Mikrotik bukan alat pemblokir dan bukan pembelok trafik, melainkan pemberi label yang menjadi fondasi bagi fitur lain. Queue Tree membaca packet mark untuk membagi bandwidth, tabel routing membaca routing mark untuk memilih jalur keluar, dan connection mark menghemat CPU dengan memindahkan pencocokan berat ke awal koneksi saja. Memahami pembagian peran itu membuat konfigurasi Anda jauh lebih rapi sekaligus mudah ditelusuri saat bermasalah.
Mulailah dari skenario paling sederhana, yaitu memisahkan arah unduh dan unggah, lalu tambahkan prioritas trafik game dan pemisahan konten lokal secara bertahap. Verifikasi setiap tahap dengan penghitung statistik dan Torch sebelum melanjutkan ke tahap berikutnya. Pendekatan bertahap semacam ini jauh lebih aman daripada menyalin puluhan rule sekaligus dari internet tanpa memahami maksudnya.
Bagi Anda yang mengelola RT-RW Net, kombinasi mangle Mikrotik dengan Queue Tree dan PCQ memberi hasil terbaik dari sisi keadilan pembagian sekaligus efisiensi perangkat. Enam rule penandaan yang dirancang matang bisa menggantikan ratusan baris antrian sederhana, seperti yang terbukti pada jaringan 180 pelanggan yang saya kelola. Investasi waktu untuk memahami fitur ini akan terbayar setiap malam ketika jaringan Anda tetap stabil di jam paling sibuk.
