分享

ROS 做PCQ脚本集体[按IP]自动限速 +带宽按端口管理流

 bsdsys 2011-07-17

环境:对于带宽紧张的环境

那些有 100M光纤或 30台+10M光纤的用户可以省略了,因为对你们来说这个没有必要了

我现在做的是基于 ADSL PPPOE的 ROUTER OS 2.9.7 做的

但是光纤用户一样适用

我现在开始说说步骤

第一:当然最前提的是你的 ROUTER OS 软件路由器能工作了 NAT共享上网成功

第2步:在所有经过ROUTER OS的数据包+ 上MARK 就像猎人要杀猎物也要先找到目标阿


其次 mark connection 那里是点passthrough,而 mark packet 那里是不点这个选项的

Mark connection 和 Mark packet 的顺序搞反了
官方手册 首先 mark connection 然后在 mark packet


第3步:在QUEUE菜单里面选择Queue Types 创作PCQ限速的子项

这里就决定了你的限制每个IP多少K的速度(2.9系列可以直接用K单位2.8 的不行)

这里多说2句
关于 PCQ的 块大小,官方默认值是每IP 20个链接计算的,理解下面这2张图非常关键第2张关于块的图是举例的

网吧的带宽和银行道理一样 总带宽不能平均处以IP数量这个公式不合适

你可以想想 网吧的客人不可能同时全部去下载或者全部去上传

网吧的目标 追求 网络利用最大化这个IP的限制要看你自己的网吧的需要的

1般来说 每个IP限制下载最高 512K;上传128K已经可以流畅游戏和视频

----------------------------------------------------------------------------------------------
另外: 这个也和你的开关频繁开启和关闭有关系 如果设置得不合理网络带宽浪费严重

客户也会对你的网吧的网络速度抱怨的!(这可是得不尝失)


注意 parent 那里的选择是 内网网卡 和外网网卡当作总流量的控制点

第4步:做好流量监视触发器

就像1个条件过滤器

注意2 和3 红色数字那里

*要选择对你的外网线路

*要注意ABOVE是 > 的意思,就是大于多少K的时候启动这个限制,只要模糊数字就可以

如果你的带宽是10M,你可以直接设置 10000000

*另外1个就是BELOW 当然就是 < 小于的意思,这里很关键的地方就是你刚才设置的

每IP限制数了你们看第2张图的2那里,你这个BELOW的数值一定要 < 它

不然你在限速的时候客户的机器就会1会快1会慢的,其中的道理你们慢慢体会就会理解

第5步:做1个执行这个限制的脚本

很简单的就2行,但是注意脚本的名字要和你的在 第四张图EVEN里面的一致

(如果你想我拷贝那几句命令出来给你,你就不要看了,这么懒的都有的!)

做到这里这个PCQ 脚本限速就做好了

排除服务器等机器,不受PCQ限制
做了PCQ,全部机子都是一样速度,连自己用的主机也慢啊,下电影慢死了,网吧只有一个网段,192.168.0.X,怎么样才能单独分某几个IP出来?
以下为设置的例子,超级感谢,能用
看我的例子 192.168.0.20 和192.168.0.21不受限制
/ ip firewall mangle
add chain=prerouting src-address=192.168.0.252 action=mark-connection \
    new-connection-mark=nopcqlimit passthrough=yes comment="" disabled=no
add chain=prerouting src-address=192.168.0.228 action=mark-connection \
    new-connection-mark=nopcqlimit passthrough=yes comment="" disabled=no
add chain=prerouting connection-mark=nopcqlimit action=accept comment="" \
    disabled=no

把这个脚本允许下,接这到第一部那里,把顺序拉下调整下,请看下图 再发图吧:

怎么保证和按优先级管理流量?

怎么保证和按优先级管理流量?概述
队列树通常的应用,是用来限定特殊用户,协议和端口等等。
在下边的例子里将介绍:
怎样保证某一服务的带宽和使用空闲带宽
怎样优化一个服务(POP3)在其它的服务中(HTTP 、 FTP)
看这张图里我们如何共享流量的 ( 192.168.0.0/24是伪装地址):


1. 首先,我们用 mangle 标记 HTTP, FTP 和 POP3 的下载数据流. 在 192.168.0.0/24里, 我们需要用mark-connection参数标记外出的连接


QUOTE:
/ip firewall mangle
add in-interface=Local dst-address=:80 protocol=tcp action=passthrough \
mark-connection=http-con comment="" disabled=no
add in-interface=Local dst-address=:110 protocol=tcp action=passthrough \
mark-connection=pop3-con comment="" disabled=no
add in-interface=Local dst-address=:21 protocol=tcp action=passthrough \
mark-connection=ftp-con comment="" disabled=no
接着才能用 flow mark标记下载的数据流


QUOTE:
/ip firewall mangle
add protocol=tcp connection=http-con action=passthrough mark-flow=HTTP \
comment="" disabled=no
add protocol=tcp connection=pop3-con action=passthrough mark-flow=POP3 \
comment="" disabled=no
add protocol=tcp connection=ftp-con action=passthrough mark-flow=FTP \
comment="" disabled=no
2. 然后当我们有了用flow-mark 标记的数据包,我们就可以用它来构建一个队列树
添加一个队列保证有全部带宽(512kbps)的80% ,就是409.6kbps ,给HTTP服务。如果其它服务空闲时可以使用全部的带宽:


QUOTE:
/queue tree
add name="http-queue" parent=Local flow=HTTP limit-at=409600 max-limit=512000
添加一个队列给FTP保证有15% (76,8kbps):


QUOTE:
/queue tree
add name="ftp-queue" parent=Local flow=FTP limit-at=76800 max-limit=512000
现在添加一个队列保证全部带宽5% (25,6kbps)给POP3 服务使用. 设置这个服务的优先级为优先级7. 这意味着这条队列比其它之前的队列有着更高的优先级(默认的优先级是8) 所以他能在http-queue 和ftp-queue 之前处理:


QUOTE:
/queue tree
add name="pop3-queue" parent=Local flow=POP3 limit-at=25600 max-limit=512000 priority=7
POP3数据流因为更高的优先级,所以他能够抢先处理,比其他服务有更小的延迟通过路由。
使用 limit-at 和 max-limit参数,你能控制给服务允许的最小和最大的带宽。首先,limit-at是能够达到的速率,然后如果有更多的能用带宽,他将使用这些带宽(上边例子里是512kbps)
注意:对于正确设置的队列树所有limit-at的值得总和应该小于或低于总的带宽。这里是25,6kbps + 76,8kbps + 409,6kbps = 512kbps.


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多