Labels

Rabu, 15 Februari 2012

Cara Membatasi BW jika suatu traffic client melewati batas tertentu

add name="Isp" target-addresses=192.111.111.99/32 dst-address=0.0.0.0/0 \
    interface=all parent=none direction=both priority=8 \
    queue=default-small/share-ni-down limit-at=0/0 max-limit=32000/64000 \
    burst-limit=/128000 burst-threshold=/30000 burst-time=/10s \
    total-queue=default-small disabled=no

dan kita menginginkan membatasi bandwidth-nya jika trafficnya sudah melewati misalkan 500MB dalam satu hari, maka kita bisa membuat script dibawah ini:

add name="trafwatcher01" source="
/queue simple
:local traf;
:set traf [get [find name="Isp"] total-bytes]
:if ($traf  > 500000000) do = {
set [find name="Isp"] max-limit= 32000/32000
:log info "isp traffic exceeding 500MB"}
policy=ftp,reboot,read,write,policy,test,winbox,password

variabel traf fungsinya untuk menampung sementara nilai total traffic

buat scheduler untuk mengecek traffic script-nya, misalnya dibuat setiap 1/2 jam untuk mengeceknya.


Code:

add name="trafisp" on-event=trafwatcher01 start-date=jan/01/1970 \
    start-time=11:00:00 interval=30m comment="" disabled=no

nah itu untuk script untuk membatasinya, tinggal membuat script satu lagi jika sudah melewati satu hari (misal jam 12 malam), counternya mereset total traffic queue client tsb dan mereset bandwidthnya normal ke 64 kbps lagi.

GOODLUCK


mudahan ini bisa jadi gambaran :


/queue simple
:local traf;
:local maxi;
:set traf [get [find name="Isp"] total-bytes]
:set maxi [get [find name="Isp"] max-limit]
:if ($traf  < 10000000 && $maxi != "64000/96000") do = {
set [find name="Isp"] max-limit= "64000/96000"}
:if ($traf  > 10000000 && $maxi != "64000/64000") do = {
set [find name="Isp"] max-limit= "64000/64000"}
:if ($traf  > 100000000 && $maxi != "64000/32000") do = {
set [find name="Isp"] max-limit= "32000/32000"
/sys sched disa [find name="isp-trafwatcher"]}





Penjelasan:

Gue buat 2 tingkat bandwidth limiternya jadi dibawah 10MB masih sesuai limit awal, 10 - 100 MB turun jadi 64k, atas 100MB jadi 32k


biar script ngga ngulang ngulang terus di log-nya dibuat satu variabel lagi yaitu variabel maxi yang menampung setting bandwidthnya, kalo tidak sama dengan logika-nya maka que simple ga di set ulang.


di script terakhir ditambahin buat mendisable schedulernya biar scheduler ga jalan terus ( di disable).


nah biar enable lagi, perlu dibuat satu script lagi untuk men-clear counter trafficnya dan meng-enable lagi schedulernya,misalnya tiap jam 00:00


script buat enable lagi en autoclear counter. kasi nama script bebas, abis itu buat juga schedulenya


Code:



/ip fire filt reset-counters-all
/que tree reset-counters-all
/que sim reset-counters-all
/sys sched ena [find name="isp-trafwatcher"]

Tidak ada komentar:

Posting Komentar