kdyby se to někomu hodilo :)
limiter
:local traf;
:local limity;
/queue simple
:for i from=1 to=254 do={
:local ip "192.168.123.$i/32"
:if ([/queue simple find target-addresses=($ip)] != "") do={
:set traf [get [find target-addresses=($ip)] total-bytes]
:set limity [get [find target-addresses=($ip)] max-limit]
:log info $ip
# mene jak 250MB
:if (($traf < (250*1048576)) && $limity!="512k/6M") do={
set [find target-addresses=($ip)] max-limit= 512k/6M
:log info "0MB"
}
# 250MB az 1GB
:if (($traf > (250*1048576)) && ($traf <= (1000*1048576)) && $limity!="256k/4M") do={
set [find target-addresses=($ip)] max-limit= 256k/4M
:log info "250MB"
}
# 1GB az 1,5GB
:if (($traf > (1000*1048576)) && ($traf <= (1500*1048576)) && $limity!="128k/2M") do={
set [find target-addresses=($ip)] max-limit= 128k/2M
:log info "1000MB"
}
# 1,5GB az 2GB
:if (($traf > (1500*1048576)) && ($traf <= (2000*1048576)) && $limity!="64k/1M") do={
set [find target-addresses=($ip)] max-limit= 64k/1M
:log info "1500MB"
}
# 2GB a vice
:if (($traf > (2000*1048576)) && $limity!="32k/256k") do={
set [find target-addresses=($ip)] max-limit= 32k/256k
:log info "2000MB"
}
}
}
resetátor
/queue simple reset-counters-all