我正在使用Mikrtotik RB201UiAS来pipe理我的networking。 为了避免为每个IP创build简单队列,我已经为IP范围创build了队列。
问题是:使用这个configuration
要么
当前configuration:
# oct/21/2015 15:25:55 by RouterOS 6.23 # software id = U3SW-9LU3 # /queue simple add dst=ether1 max-limit=5M/10M name=Klasat target=172.16.2.0/25 add dst=ether1 max-limit=5M/10M name=Administrata target=172.16.2.128/26 add dst=ether1 max-limit=1M/1M name=DVR target=172.16.2.192/27 add dst=ether1 name=Sallat target=172.16.2.224/28 add dst=ether1 name=Unlimited target=172.16.2.240/28
除非使用PCQ队列types ,否则限制将应用于定义范围内的所有IP。
使用PCQ(每个连接队列),您可以根据您在PCQ(dst / src地址,dst / src端口或这些端口的任意组合)上定义的标准在每个IP上应用所需的限制。
来自MikroTik官方文档 :
引入PCQ来优化海量QoS系统,其中大部分队列对于不同的子stream完全相同。 例如,可以下载或上传一个特定的客户端(IP)或连接到服务器的子stream。
PCQalgorithm非常简单 – 首先使用select的分类器来区分一个子stream,然后对每个子stream应用单独的FIFO队列大小和限制,然后将所有子stream组合在一起,并应用全局队列大小和限制。
PCQ参数:
pcq-classifier (dst-address | dst-port | src-address | src-port; default: "") : selection of sub-stream identifiers pcq-rate (number) : maximal available data rate of each sub-steam pcq-limit (number) : queue size of single sub-stream (in KB) pcq-total-limit (number) : maximum amount of queued data in all sub-streams (in KB)因此,我们可以拥有100个支持100个子stream的PCQ队列,而不是有100个1000kbps的下载队列
MikroTik Wiki也有一个例子
Wiki摘录:
如何做到这一点有两种方法:使用mangle和队列树,或使用简单的队列。
标记包标记上传/下载的所有数据包:(让ether1-LAN是公用的互联网接口,ether2-LAN是连接客户端的本地接口
/ip firewall mangle add chain=prerouting action=mark-packet in-interface=ether1-LAN new-packet-mark=client_upload /ip firewall mangle add chain=prerouting action=mark-packet in-interface=ether2-WAN new-packet-mark=client_download设置两个PCQ队列types – 一个用于下载,另一个用于上载。 dst-address是用户下载stream量的分类器,src-address用于上传stream量:
/queue type add name="PCQ_download" kind=pcq pcq-rate=64000 pcq-classifier=dst-address /queue type add name="PCQ_upload" kind=pcq pcq-rate=32000 pcq-classifier=src-address最后,需要两个队列规则,一个用于下载,一个用于上传:
/queue tree add parent=global-in queue=PCQ_download packet-mark=client_download /queue tree add parent=global-out queue=PCQ_upload packet-mark=client_upload如果不喜欢使用mangle和队列树,可以跳过第1步,执行第2步,第3步将创build一个简单的队列,如下所示:
/queue simple add target-addresses=192.168.0.0/24 queue=PCQ_upload/PCQ_download
由于Cha0s的回答,我设法创造了公平的限制而不创build数百个简单的队列。
其他观众试图做同样的事情的说明。
添加队列types以configuration 队列types速率的下载/上传限制并删除 (无限制)目标上传和目标从简单队列下载
我的例子:
/queue type add kind=pcq name=pcq-download-Klasat pcq-classifier=dst-address pcq-rate=2M add kind=pcq name=pcq-upload-Klasat pcq-classifier=src-address pcq-rate=2M /queue simple add dst=ether1 name=Klasat queue=pcq-upload-Klasat/pcq-download-Klasat target=172.16.2.0/25 total-queue=pcq-download-Klasa