[Mikrotik] Memisahkan Bandwidth Gaming dan Browsing (Queue Tree Model Ribet)

Jika pada dua artikel lalu saya menyuguhkan metode Queue Tree yang paling gampang, kali ini saya akan berikan metode yang ribet.

Artikel mengenai Queue Tree kembali saya turunkan pada kisanak, karena berdasarkan hasil percobaan yang lalu, ada kebocoran bandwidth yang cukup besar. Bandwidth yang saya alokasikan untuk Queue Tree browsing adalah sebesar 2Mbps (dari total bandwidth 3Mbps-sisanya untuk game online). Namun kenyataan di lapangan, bandwidth untuk browsing secara rata-rata ada kebocoran sekitar 70%. Ini berarti, dalam kondisi warnet penuh, bandwidth browsing yang seharusnya 2Mbps malah naik ke 2.7 Mbps.

Memang kondisi bocor ini tidak terjadi dalam waktu lama, hanya berkisar antara 2-5 detik, tapi kondisi tersebut cukup membuat koneksi game online menjadi lag, karena lapaknya direbut oleh koneksi browsing.

Sekedar pengingat dan pembanding langkah Queue Tree yang lalu adalah:

  1. Marking connection dan marking packet port game
  2. Marking connection dan marking packet semua koneksi selain port game (untuk browsing)
  3. Queue Tree

Untuk metode ribet kali ini langkahnya menjadi cukup panjang, bahkan metode ini mirip dengan Simple Queue yang telah saya sampaikan pada artikel lalu:

  1. Marking connection dan marking packet port game
  2. Marking connection dan marking packet per IP address PC (untuk browsing)
  3. Queue Tree untuk browsing per IP address PC.

Seperti biasa saya asumsikan kisanak sudah mempunyai Mikrotik RB atau ROS yang sudah terhubung ke internet dengan baik, jadi saya hanya memberikan script Mangle dan Queue Tree saja.

Kondisi jaringan:

Interface ke internet: IP 192.168.0.3 –> nama interface: INTERNET

Interface ke LAN: IP 192.168.1.8 –> nama interface LAN

PC terhubung ke router: IP 192.168.1.2 dan seterusnya.

Sesuaikan dengan kondisi jaringan kisanak.

Di tes pada Mikrotik ROS 6.10

Script Mangle:

/ip firewall mangle
add action=mark-connection chain=prerouting in-interface=LAN \
new-connection-mark=icmp_conn protocol=icmp
add action=change-dscp chain=prerouting connection-mark=icmp_conn new-dscp=1
add action=mark-packet chain=prerouting comment=icmp connection-mark=\
icmp_conn new-packet-mark=icmp_pkt passthrough=no
add action=mark-connection chain=prerouting dst-port=53 in-interface=LAN \
new-connection-mark=dns_conn protocol=tcp
add action=change-dscp chain=prerouting connection-mark=dns_conn new-dscp=1
add action=mark-packet chain=prerouting comment=dns connection-mark=dns_conn \
new-packet-mark=dns_pkt passthrough=no
add action=mark-connection chain=prerouting comment=PointBlank dst-port=\
39190-39200 in-interface=LAN new-connection-mark=game_online protocol=tcp
add action=mark-connection chain=prerouting comment=DOTA2 dst-port=\
10000-13999 in-interface=LAN new-connection-mark=game_online protocol=tcp
add action=mark-connection chain=prerouting comment=RFOnline dst-port=\
27780-30000 in-interface=LAN new-connection-mark=game_online protocol=tcp
add action=mark-connection chain=prerouting comment=Ayodance dst-port=\
14501-20000 in-interface=LAN new-connection-mark=game_online protocol=tcp
add action=mark-connection chain=prerouting comment=CS dst-port=\
47611,8000-8010,36567 in-interface=LAN new-connection-mark=game_online \
protocol=tcp
add action=mark-connection chain=prerouting comment=”Lost Saga” dst-port=\
14000-14500 in-interface=LAN new-connection-mark=game_online protocol=tcp
add action=mark-connection chain=prerouting comment=”PointBlank UDP” \
dst-port=40000-40010 in-interface=LAN new-connection-mark=game_online \
protocol=udp
add action=mark-connection chain=prerouting comment=”Lost Saga UDP” dst-port=\
14000-14010 in-interface=LAN new-connection-mark=game_online protocol=udp
add action=mark-packet chain=prerouting comment=game_online_pkt \
connection-mark=game_online new-packet-mark=game_online_pkt passthrough=\
no
add action=mark-connection chain=prerouting comment=PC1 new-connection-mark=\
browsing_PC1 src-address=192.168.1.2
add action=mark-connection chain=prerouting comment=PC2 new-connection-mark=\
browsing_PC2 src-address=192.168.1.3
add action=mark-connection chain=prerouting comment=PC3 new-connection-mark=\
browsing_PC3 src-address=192.168.1.4
add action=mark-connection chain=prerouting comment=PC4 new-connection-mark=\
browsing_PC4 src-address=192.168.1.5
add action=mark-connection chain=prerouting comment=PC5 new-connection-mark=\
browsing_PC5 src-address=192.168.1.6
add action=mark-connection chain=prerouting comment=PC6 new-connection-mark=\
browsing_PC6 src-address=192.168.1.7
add action=mark-packet chain=prerouting comment=browsing_pkt_PC1 \
connection-mark=browsing_PC1 new-packet-mark=browsing_pkt_PC1 \
passthrough=no
add action=mark-packet chain=prerouting comment=browsing_pkt_PC2 \
connection-mark=browsing_PC2 new-packet-mark=browsing_pkt_PC2 \
passthrough=no
add action=mark-packet chain=prerouting comment=browsing_pkt_PC3 \
connection-mark=browsing_PC3 new-packet-mark=browsing_pkt_PC3 \
passthrough=no
add action=mark-packet chain=prerouting comment=browsing_pkt_PC4 \
connection-mark=browsing_PC4 new-packet-mark=browsing_pkt_PC4 \
passthrough=no
add action=mark-packet chain=prerouting comment=browsing_pkt_PC5 \
connection-mark=browsing_PC5 new-packet-mark=browsing_pkt_PC5 \
passthrough=no
add action=mark-packet chain=prerouting comment=browsing_pkt_PC6 \
connection-mark=browsing_PC6 new-packet-mark=browsing_pkt_PC6 \
passthrough=no

Script Queue Tree untuk game online:

/queue tree
add name=3.Game packet-mark=game_online_pkt parent=LAN priority=3
add name=5.Upload parent=INTERNET
add max-limit=512k name=”Browsing Upload” packet-mark=browsing_pkt parent=\
5.Upload
add name=”Game Upload” packet-mark=game_online_pkt parent=5.Upload priority=3
add name=1.DNS packet-mark=dns_pkt parent=LAN priority=1

Script Queue Tree untuk browsing:

/queue tree
add max-limit=1800k name=4.Download parent=LAN queue=limit_dl
add name=”DNS Upload” packet-mark=dns_pkt parent=5.Upload priority=1 queue=\
default
add name=2.ICMP packet-mark=icmp_pkt parent=LAN priority=2 queue=default
add name=”ICMP Upload” packet-mark=icmp_pkt parent=5.Upload priority=2 queue=\
default
add limit-at=256k max-limit=768k name=PC1 packet-mark=browsing_pkt_PC1 \
parent=4.Download queue=limit_dl
add limit-at=256k max-limit=768k name=PC3 packet-mark=browsing_pkt_PC3 \
parent=4.Download queue=limit_dl
add limit-at=256k max-limit=768k name=PC2 packet-mark=browsing_pkt_PC2 \
parent=4.Download queue=limit_dl
add limit-at=256k max-limit=768k name=PC4 packet-mark=browsing_pkt_PC4 \
parent=4.Download queue=limit_dl
add limit-at=256k max-limit=768k name=PC5 packet-mark=browsing_pkt_PC5 \
parent=4.Download queue=limit_dl
add limit-at=256k max-limit=768k name=PC6 packet-mark=browsing_pkt_PC6 \
parent=4.Download queue=limit_dl

Script Queue Type:

/queue type
add kind=pcq name=limit_dl pcq-classifier=dst-address pcq-dst-address6-mask=\
64 pcq-limit=12 pcq-src-address6-mask=64 pcq-total-limit=100

Screenshot Queue Tree metode pertama:

27

Screenshot Queue Tree metode ribet (dengan Max Limit 1.8 Mbps):

28

Hasil akhir dan kesimpulan:

Queue Tree metode ribet menurut saya memberikan hasil yang lebih akurat. Walaupun masih ada kebocoran bandwidth (yang saya masih belum tahu biang keladinya dimana). Tapi dengan metode ini, kebocoran bandwidthnya lebih kecil, yaitu berkisar 30-50% saja. Barangkali ada kisanak yang sudi memberikan pencerahan pada saya untuk memperbaiki kebocoran bandwidth pada metode queue tree ini, akan sangat saya hargai.

Sampai berjumpa pada artikel Go….BLOG!!!! Selanjutnya.

 

[Mikrotik] Memisahkan Bandwidth Gaming dan Browsing (Metode Alternatif dengan Queue Tree)

Bila pada artikel sebelumnya membahas pemisahan bandwidth gaming dan browsing menggunakan metode Simple Queue, kali ini saya akan mengetengahkan pemisahan bandwidth menggunakan metode Queue Tree.

Pada metode Simple Queue, bandwidth yang diberikan kepada masing-masing client berjalan dengan aturan yang ketat. Misalkan satu client diberikan jatah bandwidth 512Kbps, maka seterusnya client akan mendapat bandwidth 512Kbps. Bila kondisi jaringan atau client terpakai semua, tentunya hal ini tidak menjadi masalah. Tapi bila jaringan sedang lengang, atau client yang online hanya satu, rasanya sayang sekali ada bandwidth tersisa yang seharusnya bisa diberikan untuk client yang sedang online tersebut supaya browsing atau download bisa lebih cepat.

Untuk itulah kali ini saya akan memberikan metode alternatif dengan Queue Tree. Pada metode Queue Tree, bandwidth akan diberikan sesuai dengan jumlah client yang sedang online. Misalkan total bandwidth yang kisanak miliki adalah 2Mbps, bila 10 client sedang online, maka rata-rata bandwidth yang diterima client adalah 200Kbps. Sebaliknya bila hanya ada satu client yang sedang online, bandwidth yang diterimanya penuh 2Mbps. Adil bukan?

Berikut urutan langkah kerjanya:

  1. Sedot address list IP Address lokal (IIX) untuk memisahkan bandwidth gaming dan bandwidth internasional
  2. Mark Connection dan Mark Packet koneksi game-game online
  3. Mark Connection dan Mark Packet koneksi selain game-online (browsing, download)
  4. Queue Tree

CatatanĀ penting:

Saya asumsikan kisanak sudah mempunyai Mikrotik RouterOS atau RouterBoard yang berfungsi penuh.

IP Address LAN yang saya gunakan: 192.168.1.0/24

Nama interface ke LAN: LAN

Nama interface ke Internet: INTERNET

Silakan sesuaikan dengan kondisi jaringan kisanak.

  1. Langsung ke skripnya, dimulai dari urutan 1. Silakan copas, dan kisanak juga harus memahami skrip yang kisanak copas, supaya memahami alur kerja si Mikrotik.

/tool fetch address=ixp.mikrotik.co.id src-path=/download/nice.rsc mode=http;

Lalu:
import nice.rsc

2. Mark connection/mark packet koneksi game populer, yaitu PointBlank, DOTA, LostSaga, CounterStrike, AyoDance, dan RF Online, serta mark connection/mark packet browsing:

/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no in-interface=LAN \
new-connection-mark=icmp_conn passthrough=yes protocol=icmp
add action=change-dscp chain=prerouting connection-mark=icmp_conn disabled=no \
new-dscp=1 passthrough=yes
add action=mark-packet chain=prerouting comment=icmp connection-mark=\
icmp_conn disabled=no new-packet-mark=icmp_pkt passthrough=no
add action=mark-connection chain=prerouting disabled=no dst-port=53 \
in-interface=LAN new-connection-mark=dns_conn passthrough=yes protocol=\
tcp
add action=change-dscp chain=prerouting connection-mark=dns_conn disabled=no \
new-dscp=1 passthrough=yes
add action=mark-packet chain=prerouting comment=dns connection-mark=dns_conn \
disabled=no new-packet-mark=dns_pkt passthrough=no
add action=mark-connection chain=forward comment=PointBlank disabled=no \
dst-address-list=nice dst-port=39190-39200 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=DOTA2 disabled=no \
dst-address-list=nice dst-port=10000-13999 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=RFOnline disabled=no \
dst-address-list=nice dst-port=27780-30000 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Ayodance disabled=no \
dst-address-list=nice dst-port=14501-20000 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=CS disabled=no \
dst-address-list=nice dst-port=47611,8000-8010,36567 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=”Lost Saga” disabled=no \
dst-address-list=nice dst-port=14000-14500 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=”PointBlank UDP” disabled=no \
dst-address-list=nice dst-port=40000-40010 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=”Lost Saga UDP” disabled=no \
dst-address-list=nice dst-port=14000-14010 in-interface=LAN \
new-connection-mark=game_online passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=”DOTA2 UDP” disabled=no \
dst-address-list=nice dst-port=27000-27150,3478-4380,28010-28200,39000 \
in-interface=LAN new-connection-mark=game_online passthrough=yes \
protocol=udp
add action=mark-packet chain=forward comment=game_online_pkt connection-mark=\
game_online disabled=no new-packet-mark=game_online_pkt passthrough=no
add action=mark-connection chain=forward comment=Browsing disabled=no \
new-connection-mark=browsing_conn passthrough=yes src-address=\
192.168.1.0/24
add action=mark-packet chain=forward comment=browsing_pkt connection-mark=\
browsing_conn disabled=no new-packet-mark=browsing_pkt passthrough=no

3. Queue Tree

/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=Download packet-mark=”” parent=LAN priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=Upload packet-mark=”” parent=INTERNET priority=8

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=2M name=Browsing packet-mark=browsing_pkt parent=Download \
priority=8 queue=default-small
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=Game packet-mark=game_online_pkt parent=Download \
priority=8 queue=default-small
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=512k name=”Browsing Upload” packet-mark=browsing_pkt parent=\
Upload priority=8 queue=default-small
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=”Game Upload” packet-mark=game_online_pkt parent=Upload \
priority=8 queue=default-small
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=DNS packet-mark=dns_pkt parent=Download priority=8 \
queue=default-small
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
max-limit=0 name=ICMP packet-mark=icmp_pkt parent=Download priority=8 \
queue=default-small

Hasil akhirnya di Winbox seharusnya seperti ini:

27

UntukĀ Max Limit koneksi browsing, silakan sesuaikan dengan koneksi internet yang kisanak miliki. Perbesar atau perkecil sehingga yang main game online tidak lag. Sebagai contoh, saya berlangganan Speedy 3Mbps. Untuk browsing saya jatahkan 2Mbps. Sisanya untuk DNS, ICMP, dan game online.

Selamat mencoba. Bila ada kesulitan, mari kita belajar bersama di pojok komentar!