|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
我的是用2.9.27测试的,修改后为(我的AD是上行384K/下行1024K,用户最多同时在线12人):
:set s 0
:set m 0
:foreach a in=[/queue simple find interface=all] do={:set s ($s+1)}
:foreach b in=[/ip arp find interface=lan] do={:set m ($m+1)}
:if (($m<$s) || ($m>$s)) do={:foreach i in=[/queue simple find interface=all] do={/queue simple remove $i}
:foreach i in=[/ip arp find interface=lan] do={:set ipad [/ip arp get $i address]
:set macad [/ip arp get $i mac-address]
:set macname 新用户
:if ($macad=00:14:78:36:6C:01) do={:set macname 用户1}
:if ($macad=00:14:78:36:7C:02) do={:set macname 用户2}
:if ($macad=00:14:78:36:6C:02) do={:set macname 用户3}
:if ($macad=00:14:78:36:7C:03) do={:set macname 用户4}
:if ($macad=00:14:78:36:6C:03) do={:set macname 用户5}
:set at ((240 / $m *1000) . "/" (750 / $m *1000) . )
:set max ((380 / $m *1000) . "/" (1020 / $m *1000) . )
:set brlim ((640 / $m *1000) . "/" (1800 / $m *1000) . )
:set brold ((180 / $m *1000) . "/" (400 / $m *1000) . )
/queue sim add name=($macname) target-address=$ipad limit-at=$at max-limit=$max burst-limit=$brlim burst-threshold=$brold burst-time=30/30}}
然用根据流量开关,当大于好多就开启计划任务,低于好多就删除当前所有单IP限速规则并关闭计划任务。
另:删除当前所有单IP限速规则并关闭计划任务的脚本为:
:foreach w in=[/system scheduler find name=计划任务的名字] do={/system scheduler disable $w}
:foreach i in=[/queue simple find interface=all] do={/queue simple remove $i}
这里有个问题,就是遇到时ARP病毒时,怎么办,此时ARP是动态的,那个决定限速值的变量m,可不可在进行了ARP双绑的情况下,通过其他方法和脚本获得在线上网机器数量,这样在一个小型网络上就完美了。再有就是流量开关的关闭功能(即低于好多流量执行某某脚本)不是十分灵敏。
请大家多出点子。
[ 本帖最后由 txwwy 于 2007-10-4 12:39 编辑 ] |
|