动态启用的单ip限速队列规则,请各位大侠指教
我的ros上有很多vlan,ip地址也很多,又需要对每个用户限速,以前使用pcq限速,效果不错,可是浏览网页很慢,因为是固定限制的不能使用爆发流量。如果一个ip添加一个规则又太麻烦,因为用户上线的时间不固定,太多无用的限速规则又会造成cpu占用过高,所以使用两个脚本每隔5分钟检测一次在线用户并为在线用户添加规则。如果用户下线则禁用针对该ip的限速规则。1。首先检测在线用户
chain=prerouting src-address=192.168.0.0/16 src-address-list=!online_user
dst-address-list=!not_in_internet action=add-src-to-address-list
address-list=online_user address-list-timeout=5m
2。使用脚本添加限速规则
:foreach i in=find list=online_user] do={:set useraddress ;
:set founded ;
:if ($founded="") do={ /queue simple add target=$useraddress max-limit=256000/800000burst-limit=1000000/3000000 burst-threshold=128000/512000burst-time=30s/1m]} else={/queue sim en }};
3。使用脚本禁用已经下线用户的限速规则
:foreach i in= do={:set tadd ; :set founded ; :if ($founded="") do={/queue sim dis ;}}; 不过还是担心负重太大 好贴! :foreach 的CPU占用率比较高,所以楼主可能得不偿失! 这下面有爆发值啊,楼主测试一下? 好贴,正是我想找的。回头测试一下。。 专卖精品是牛人??? 请教一下:
src-address-list=!online_user dst-address-list=!not_in_internet
请问一下上面的加个!是什么意思??不是很明白。。 已经在online_user表中的用户就不添加了,访问外网触发 :P 经典。。。我学习了 呵呵,劝你还是不要用了,我曾经作了一个自动更改客户优先等级的自动脚本,结果会造成调整的时候所有线路都处于不受限状态,得不偿失。
页:
[1]