本文转自:http://blog.163.com/yinjian_sh@126/blog/static/6633808620087515859913/

手动限速

winbox—queues—-simple queues

点“+”,NAME里随便填,下面是IP地址的确定

①Target Address 不管,Dst. Address里填 你要限制的内网机器的IP,比如我这里有个 1号机器 IP为 192.168.1.101,那dst.address 里就填 192.168.1.101 然后是/32(这里的32不是指掩码了,个人理解为指定的意思)!

②interface里 记着要选你连接外网那个卡,我这里分了“local和public”,所以选public

③ 其他的不管,我们来看最重要的东西拉,Max limit ,这个东西是你限制的上限,注意的是 这里的数值是比特位,比如我要限制 下载的速度为 500K 那么就填入多少呢? 500 X 1000 X 8=400 0000=4M。

④ 另外,很多朋友都有个疑问,到底一般的用户会有多大流量呢?一般的网络游戏,如 梦幻西游 传奇 封神榜 等等,其下行在 20Kbps以内! 最耗网络资源的就是下载—–我们就是为了限制它拉,其次是VOD点播,一般DVD格式的大约要 2M多吧,所以你看情况限制拉 别搞的太绝!!!

限速脚本:

:for aaa from 2 to 254 do={/queue simple add name=(queue . $aaa) dst-address=(192.168.0. . $aaa) limit-at=0/0 max-limit=2000000/2000000} 说明:

aaa是变量

2 to 254是2~254

192.168.0. . $aaa是IP

上两句加起来是192.168.0.2~192.168.0.254

connection-limit=50是线程数这里为50

max-limit=2000000/2000000是上行/下行

使用:

WinBox-System-Scripts-+

Name(脚本名程)

Source(脚本)

OK-选择要运行的脚本-Run Script

ROS限速的极致应用

一般我们用ros限速只是使用了max-limit,其实ros限速可以更好的运用。比如我们希望客户打开网页时速度可以快一些,下载时速度可以慢一些。ros2.9就可以实现。

max-limit——我们最常用的地方,最大速度

burst-limit——–突破速度的最大值

burst-thershold——–突破速度的阀值

burst-time——-突破速度的时间值

解释一下图片的限制意义

当客户机在30秒(burst-time)内的平均值小于突破速度阀值(burst-thershold)180K时,客户机的最大下载速率可以超过最大限速值(max-limit)200K,达到突破最大值(burst-limit)400K,如果30秒内平均值大于180K,那客户机的最大速度只能达到200K。

这样也就是当我们开网页时可以得到一个更大的速度400K,长时间下载时速度只能得到200K,使我们的带宽可以更有效的利用

动态限速

ROS动态限速(检测外网总速度进行限速开关)废话不说先看脚本原理:

以下操作全部在WINBOX界面里完成

介绍:可以实现在总速度不超过9M的情况下自动关闭所有生成的限速规则在总速度超过18M的时候自动启动所有生成的限速规则。

说明:在输入脚本内容时不要把两边的()带上,那个是为了区分非脚本字符。

总速度=你的外网网卡当前速度。

打开 /system/scripts

脚本:

:for aaa from 1 to 254 do={/queue simple add name=(ip_ . $aaa) dst-address=(192.168.0. . $aaa) interface=wan max-limit=256000/800000 burst-limit=1000000/3000000 burst-threshold=128000/512000 burst-time=30s/1m     }

上面是生成限速树,对网段内所有IP的限速列表!

下面进入正题:

脚本名:node_on

脚本内容:(:for aaa from 1 to 254 do={/queue sim en [find name=(ip_ . $aaa)]})

脚本名:node_off

脚本内容:(:for aaa from 1 to 254 do={/queue sim dis [find name=(ip_ . $aaa)]})

scripts(脚本部分)以完成

打开 /tools/traffic monitor

新建:

名:node_18M     traffic=received     trigger=above     on event=node_on threshold:18000000

新建:

名:node_9M     traffic=received     trigger=below     on event=node_off     threshold:9000000

在输入脚本内容时不要把两边的()带上,那个是为了区分非脚本字符。