Scheduled check for loaded interfaces (auto adding queue to some IP or interface)
Jump to navigation
Jump to search
If you have MikroTik as main router on your network (business and residential clients using the same downlink) and you wont to make QoS for business users.
Simple:
If your downlink is about 2Mbps and you grants business client min 1Mbit.
But on the same MikroTik you have connected residential users.
This script can check out-interface (for $sent-bits-per-second/$received-bits-per-second)
and if sent/received bits > 1Mbps, script can add queue for some interface or IP address(es).
/system script add name="tl_down" source="/interface monitor-traffic [/interface find name "interface"] once do { :if ($received-bits-per-second > 1048576) do { /queue simple add name=(username . "_" . [:pick [/system clock get date] 4 6] . "-" . [:pick [/system clock get date] 0 3] \ . "-" . [:pick [/system clock get date] 7 11] . "-" . [:pick [/system clock get time] 0 9]) limit-at=262144/262144 \ max-limit=262144/262144 target-addresses="ip address" priority=1 :log warning "Traffic limit added for ip address/network/interface" } }" add name="tl_remove_down" source="/interface monitor-traffic [/interface find name "interface"] once do { :if ($received-bits-per-second < 1048576) do { /queue simple remove [/queue simple find target-addresses="ip address"] :log warning "Traffic limit removed for ip address/network/interface" } }" /system scheduler add name="name-unloaded" on-event=tl_remove_down start-date=jan/01/2007 start-time=00:00:00 interval=9m comment="" disabled=no add name="name-loaded" on-event=tl_down start-date=jan/01/2007 start-time=00:00:00 interval=10m comment="" disabled=no