mfr3108

Auto Update Max-Limit Queue Tree Berdasarkan Avg Rate

Sep 14th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. Contoh kasus:
  2. ============
  3. Warnet si palui punya 20PC dan memiliki 5Mbps bandwidth dengan 2 prioritas yang harus dibuat seimbang yaitu antara pemakaian bandwidth game dan browsing. Biasanya saya hanya membuat kalkulasi sederhana dan sifatnya tetap yaitu 3Mbps Browsing dan sisanya 2Mbps game, ini memang dengan tujuan agar trafik bisa berjalan seimbang tanpa lag sama sekali untuk game.
  4.  
  5. Yang jadi masalah gimana kalau yang main game cuman 2 orang dan 18 lainnya browsing? tentu banyak bandwidth yang mubazir khan :) Disini saya coba selesaikan masalah warnet si palui dengan logika manusia yang akan kita rancang kedalam logika pemrograman.
  6.  
  7. LOGIKA SEDERHANA:
  8. ==============
  9. 1. Warnet si palui saya setting mode Queue tree dengan metode PCQ
  10. 2. Dari awal saya setting 3Mbps browsing dan 2Mbps Game
  11. 3. Si palui ingin jika 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 agar tidak lag.
  12. 4. Palui ingin Bandwidth yang tidak digunakan sekitar 1500kbps tadi dialokasikan otomatis kepada user browsing, sayangnya mikrotik tidak ada cara untuk itu dan harus menggunakan scripting agar bisa melakukan tugas tersebut.
  13. 5. Script tidak bisa jalan tanpa bantuan scheduler jadi silahkan setting waktu pada scheduler sesuai kebutuhan jangan terlalu cepat jangan juga terlalu lambat.
  14.  
  15. LOGIKA SCRIPTING SEDERHANA:
  16. #===========================================#
  17. # Scripting version 1.0
  18. # Scripting Auto Update Max-Limit Queue Tree
  19. # by Agus ramadhani - [email protected]
  20.  
  21. # info:
  22. # sesuaikan dan ganti parent "Game Onlines" dengan parent kalian
  23. # sesuaikan dan ganti parent "Global Browsing" dengan parent kalian
  24. #===========================================#
  25. :global SetMaxLimit;
  26. :global BW3M 3000000;
  27. :global BW4M 4000000;
  28. :global BW5M 5000000;
  29. :local avgRate [/ queue tree get "Games Onlines" rate]
  30. :log info "Debug --> $SetMaxLimit";
  31. :log info "Debug --> $avgRate";
  32. :log info "Debug --> ($avgRate < 500000)";
  33. :log info "Debug --> ($avgRate = 0 or $avgRate < 1000)";
  34. :if ($avgRate < 500000) do={
  35. :if ($avgRate = 0 or $avgRate < 1000) do={
  36. :set SetMaxLimit $BW5M;
  37. :log info "--> Max-limit Browsing berubah ke 5Mbps";
  38. } else={
  39. :set SetMaxLimit $BW4M;
  40. :log info "--> Max-limit Browsing berubah ke 4Mbps";
  41. };
  42. } else={
  43. :set SetMaxLimit $BW3M;
  44. :log info "--> Max-limit Browsing berubah ke 3Mbps";
  45. };
  46.  
  47. / queue tree set "Global Browsing" max-limit=$SetMaxLimit
  48. };
  49. #=============================================#
  50. # jika ingin setting pada sub parent
  51. #/queue tree {set [find parent="Global Browsing"] max-limit=$SetMaxLimit
  52. # jika ingin mengambil max-limit pada parent
  53. #:local maxLimit [/ queue tree get "Nama parent" max-limit]
  54. #==============================================#
  55.  
  56. Ini murni script konsep dasar yang saya buat, silahkan di kembangkan sesuai kebutuhan.
  57.  
  58. Ref:
  59. http://wiki.mikrotik.com/wiki/Manual:Scripting#Scripting_language_manual
  60. http://wiki.mikrotik.com/wiki/Manual:Scripting-examples
Add Comment
Please, Sign In to add comment