妈妈再也不用担心我BT全开在线视频会卡了:家用路由高阶形态RouterOS之PCQ QoS
首先,什么是RouterOS
RouterOS是Mikrotik公司推出的一个专业级路由系统,简称ROS,相比小伙伴们热衷的第三方ROM什么什么WRT啦,在他面前通通都是过家家,之前这货复杂得必须得专业IT才玩得转,近两年开始提供了QuickSet页面,简化了常用设置,大大降低了入门的门槛,普通家用PPPoE拨号上网的环境,基本上就是填个账号密码就能设置好,跟普通家用路由已经几无区别
ROS单卖软件授权,L4授权45美金,L5授权95美金,L6授权250美金,可以安装在X86的多网卡PC上把整台电脑变成一台强大的路由器,同时它也搭载在Mikrotik自家的路由器上随硬件一起销售
关于Mikrotik推出的路由器,ZDM上偶有几篇帖子提到过,对于不上机架的几款SOHO型号,基本上搭载的都是L4授权的ROS系统,完全是买软件送硬件的节奏,而且因为是商用设备出身,所以它的稳定性完全不用担心,对于对家庭网络环境有一定追求并且懂一些网络知识的小伙伴,Mikrotik的路由一定会是你贴心的小棉袄,顺手的瑞士军刀
小众路由器:Mikrotik RB951Ui-2HnD ROS我在张大妈上面找了半天,只有少数几个帖子提这个路由器,确实,这个也比较小众的,但是功能确实强大,什么极路由等等,都应该甘拜下风吧~...
家庭局域网 篇二:路由&交换机&AP上一篇讲NAS的请参考家庭局域网篇一:NAS华为RH2285v1存储服务器5822290BigGunMarine这篇晒单的结构是这样的前言路由器交换机AP路由器脚本简单应用-花...对了,顺便介绍一下我现在在用的是Mikrotik RB750Gr2,体积非常小,113x89x28mm,面积上跟6s差不多大,只是要厚一点,最大4w功耗完全不发热,5口全千兆,支持的同时连接数接近9w,相比之下OpenWRT哪怕是刷在贵几倍的家用路由上也只能带1w6左右的连接数,你就知道ROS的强悍不是随便吹吹的了
下面借用一下官方的图片,照片就不拍了,塞弱电箱好久了,懒得挖出来
MikroTik RB750Gr2 hEX 千兆 RouterOS 路由器小身材大能量,迷你千兆有线路由好了,回来说正题吧,什么是QoS
Qos全拼Quality of Service,顾名思义服务质量,指的是网络服务的质量对家用环境来说,最现实的问题就是你在下载最新大片的时候,LD跳起来吼我的欧巴怎么老在缓冲啊
,或者LD在更新iPhone,你的LOL就开始卡成球了
这种网络环境就叫做差的环境,大家总有人没办法很开心的上网
问题的根源其实不复杂,就是带宽有限,要么是总的上传下载速度有限,要么是上传下载的连接数有限
怎么解决这个问题
最简单粗暴的方法就是限速,迅雷里面给速度封顶,限上传,限下载,限到那边不再吼了,阿弥陀佛睡觉前应该不用跪键盘了
设迅雷限速大家应该都会,但是如果是iPhone在更新系统,那就要麻烦多了,首先要到路由上去找到iPhone的IP,然后对这个IP设置限速,完了隔天还得记得去取消限速,因为IP往往是动态的,下次开机说不定就是你的电脑在用这个被限速的IP
每天这么倒腾,还能不能好好过日子了
什么是PCQ
ROS为了改善这个问题,提出了一种简单有效的Qos组织管理方法PCQ,全称PerConnectionQueue
简单来说,可以把网络堵塞问题看作是大家在食堂打饭,窗口就一个,迅雷下载可以认为是男生们,呼啦啦一群一群的,一来一只篮球队,一来一只足球队,排队哗的一下就能涨起来,视频播放可以认为是女生们,数量没那么多,大概总是三两结伴,所以问题就变成怎样做能够让女生尽快打到饭,缩短女生的排队等待时间了
PCQ的做法,就是简单的把男生和女生直接分成两个队伍,让窗口的师傅交替打饭,排后面的男生牺牲一下多等几分钟,三两个女生能排进一个比较短的队伍,能少等几分钟,但是如果舞蹈课下课一下子来了一大群女生,把女生队伍排到门口了,那也就没办法了,师傅也是继续交替打饭,男生女生大家一起等吧,说不定还能聊起来成几对
引用一张官网Wiki的图可以很清楚的看到这个思路,假设总带宽是512k,当只有1个用户使用的时候,他可以独占512k的带宽,如果有2个用户在同时访问网络,那么他们会对等分配最大带宽,每人可以占256k,如果有7个用户,那么每人可以占到73k
但是这并不意味着有2个用户在访问网络的时候,每人只能用256k了,如果一个用户很闲,那么另一个用户可以自动得到剩下的所有带宽,就好像前面打饭的例子,如果那两三个女生已经打好走了,那么窗口的师傅就可以专心服务男生队伍,整个男生队伍的打饭速度就会直接加倍,因为窗口的师傅是不会因为女生队伍没有人了而闲下来空等的
怎么配置PCQ
ROS从2.9开始引入PCQ,在5.0做了重新实现大大提升了效率,现在最新的版本是6.33.5,最新的patch看着修正的东西都不是我在用的部分,所以我就没更新了,我用的版本还是6.33.3
首先,我们的上传和下载的带宽是相互独立的,而且往往是不对等的,所以必须要对上传和下载的流量分别做Qos配置,用Mangle把上传和下载的数据包分别标记出来,从pppoe-out进入路由的包显然都是下载包,我的路由只在2口上挂了千兆交换机,其他口空置,所以从2口过来的数据包统统都标记成上传包
/ip firewall mangle> export
add action=mark-packet chain=prerouting comment="Mark packet for QoS (download)" in-interface=pppoe-out1 new-packet-mark=pkt-download
add action=mark-packet chain=prerouting comment="Mark packet for QoS (upload)" in-interface=ether2-master-local new-packet-mark=pkt-upload
然后需要对上传和下载建立两个队列类型,对于下载数据来说,需要根据目标地址列队,比如是发给iPhone的数据统统排一个队,发给PC的数据排进另一个队,对于上传数据来说,需要反过来根据源地址列队,比如iPhone发出的数据排一个队,PC发出的数据排另一个队,如果这个分类规则弄错,比如下载按照源地址列队的话,那么BT连接上的无数对端,每个对端发过来的数据都会独立组成一个小队伍,大家都往前挤的结果必然是队伍会变得很粗很粗,然后打饭的大叔很快就会忘记刚才打到哪一只队伍了,而且即使你排在某一条队伍的第二个,你也不知道到底什么时候才能轮到你
对于ROS 6.1还是6.3以上版本,系统其实已经帮你建立好了pcq-download-default和pcq-upload-default这两个pcq类型,不用修改任何设置,直接使用系统默认类型,就能工作得很好,具体哪个版本开始出现的,随便啦,反正最新版一定是有的啦
/queue type> print
5 * name="pcq-upload-default" kind=pcq pcq-rate=0 pcq-limit=50KiB pcq-classifier=src-address pcq-total-limit=2000KiB pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=128 pcq-dst-address6-mask=128
6 * name="pcq-download-default" kind=pcq pcq-rate=0 pcq-limit=50KiB pcq-classifier=dst-address pcq-total-limit=2000KiB pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=128 pcq-dst-address6-mask=128
最后分别建立上传和下载的队列树,保证男生女生按照分类乖乖排队,不许乱跑插队
把第一步用Mangle标记出来的上传下载数据,套用第二步的队列类型,来组织队伍,所有标记为pkt-download的数据包,按照pcq-download-default的规则列队,所有标记为pkt-upload的数据包,按照pcq-upload-default的规则列队
我的宽带是50M下载4M上传,直接设置在上传下载队列树的总的Max-Limit里面就可以,让各个队列们大家自己分吧
/queue tree> print
0 name="PCQ-download" parent=global packet-mark=pkt-download limit-at=0 queue=pcq-download-default priority=8 max-limit=50M burst-limit=0 burst-threshold=0 burst-time=0s
1 name="PCQ-upload" parent=global packet-mark=pkt-upload limit-at=0 queue=pcq-upload-default priority=8 max-limit=4M burst-limit=0 burst-threshold=0 burst-time=0s
打完收工,BT走起,终于可以开开心心过小日子了
PCQ不能做什么
简单来说PCQ是不做具体业务分析,不做优先级控制,只是对不同主机平摊保障最小带宽,能简单有效的解决不同电脑之间带宽分配问题,我在NAS上不限速BT全开的时候,iPad上可以继续看超清欧巴,PC上可以欢快的LOL,非常适合家庭使用
但是因为PCQ没有具体业务分析,不区分端口,不区分协议,所以如果我在PC上全速开了BT,那么这台PC上就几乎干不了什么其他事情了,浏览网页之类的数据请求,会完全淹没在我自己的BT洪流中,虽然边上的iPad仍然在流畅的看超清欧巴
然后PCQ也不太适合商用的环境,公司网络不能指望PCQ一招鲜,因为公司电脑动辄几十台几百台,会议室在开重要的音视频会议,怎么能跟工位里新来的小伙下载系统补丁平分公司出口带宽呢,公司网络需要根据不同的业务类型,甚至不同的座位区域,建立不同的带宽保障计划
其他
关于PCQ的一些细节比如PCQ-Rate和Max-Limit的区别,Burst突发请求控制之类,这里就不展开了,有兴趣的可以自己去Mikrotik的文档里挖
然后比较热门的QoS的规则还有好多,比如HTB等级令牌桶,小包优先之类,这些规则ROS都可以做
,但是涉及的知识细节会多不少,权当抛砖引玉吧,有兴趣的小伙伴可以自己回头放狗慢慢搜







校验提示文案
你们这些SOHO路由器都有web注入的漏洞,楼主的750竟然还敢开web界面?
信不信暴露在公网上,我分分钟拿到你admin权限?
我们安全实验室针对市面上50多种路由器和操作系统有过渗透方面的实验。
我是做数通网络出生的,所谓的梅林,dd-wrt之类的,我感觉就是玩具,给没有专业知识的小白玩的。实际上其实很垃圾(相对论,相比上述的商业路由os差太远了。)
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
你们这些SOHO路由器都有web注入的漏洞,楼主的750竟然还敢开web界面?
信不信暴露在公网上,我分分钟拿到你admin权限?
我们安全实验室针对市面上50多种路由器和操作系统有过渗透方面的实验。
我是做数通网络出生的,所谓的梅林,dd-wrt之类的,我感觉就是玩具,给没有专业知识的小白玩的。实际上其实很垃圾(相对论,相比上述的商业路由os差太远了。)
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案