Mikrotik: Scripting Auto Update Max-Limit Queue Tree Menurut Avg Rate

Contoh kasus:

Warnet si palui punya 20PC dan mempunyai 5Mbps bandwidth dengan 2 prioritas yang harus dibentuk seimbang yakni antara pemakaian bandwidth game dan browsing. Biasanya aku hanya menciptakan kalkulasi sederhana dan sifatnya tetap yakni 3Mbps Browsing dan sisanya 2Mbps game, ini memang dengan tujuan biar trafik dapat berjalan seimbang tanpa lag sama sekali untuk game.

Yang jadi persoalan gimana kalau yang main game cuman 2 orang dan 18 lainnya browsing? tentu banyak bandwidth yang mubazir khan :) Disini aku coba selesaikan persoalan warnet si palui dengan kebijaksanaan insan yang akan kita rancang kedalam kebijaksanaan pemrograman.


LOGIKA SEDERHANA:
1. Warnet si palui aku setting mode Queue tree dengan metode PCQ
2. Dari awal aku setting 3Mbps browsing dan 2Mbps Game
3. Si palui ingin kalau user yang main game semisalkan hanya 2 orang dan sisanya 18 orang browsing artinya bandwidth yang hilang untuk browsing sekitar 1500kbps, 500kbps tetap disisakan buat game biar tidak lag.
4. Palui ingin Bandwidth yang tidak dipakai sekitar 1500kbps tadi dialokasikan otomatis kepada user browsing, sayangnya mikrotik tidak ada cara untuk itu dan harus memakai scripting biar dapat melaksanakan kiprah tersebut.
5. Script tidak dapat jalan tanpa pemberian scheduler jadi silahkan setting waktu pada scheduler sesuai kebutuhan jangan terlalu cepat jangan juga terlalu lambat.

LOGIKA SCRIPTING SEDERHANA:

#===========================================# # Scripting version 1.0                                                    # Scripting Auto Update Max-Limit Queue Tree                            # by Agus ramadhani - oom@o-om.com     # info:                                                                    # sesuaikan dan ganti parent "Game Onlines" dengan parent kalian         # sesuaikan dan ganti parent "Global Browsing" dengan parent kalian         #===========================================# :global SetMaxLimit; :global BW3M 3000000; :global BW4M 4000000; :global BW5M 5000000; :local avgRate [/ queue tree get "Games Onlines" rate] :log gosip "Debug --> $SetMaxLimit"; :log gosip "Debug --> $avgRate"; :log gosip "Debug --> ($avgRate < 500000)"; :log gosip "Debug --> ($avgRate = 0 or $avgRate < 1000)"; :if ($avgRate < 500000)  do={ :if ($avgRate = 0 or $avgRate < 1000) do={ :set SetMaxLimit $BW5M; :log gosip "--> Max-limit Browsing berubah ke 5Mbps"; } else={ :set SetMaxLimit $BW4M; :log gosip "--> Max-limit Browsing berubah ke 4Mbps"; }; } else={ :set SetMaxLimit $BW3M; :log gosip "--> Max-limit Browsing berubah ke 3Mbps"; }; / queue tree set "Global Browsing" max-limit=$SetMaxLimit }; #=============================================# # kalau ingin setting pada sub parent                                     #/queue tree {set [find parent="Global Browsing"] max-limit=$SetMaxLimit # kalau ingin mengambil max-limit pada parent                            #:local maxLimit [/ queue tree get "Nama parent" max-limit]                 #==============================================# 
Ini murni script konsep dasar yang aku buat, silahkan di kembangkan sesuai kebutuhan.

Sumber http://www.o-om.com


EmoticonEmoticon