Mikrotik简单队列,限制IP的范围

我正在使用Mikrtotik RB201UiAS来pipe理我的networking。 为了避免为每个IP创build简单队列,我已经为IP范围创build了队列。

简单队列的屏幕截图

  • 目标:172.16.2.0/25
  • Dst:ether1
  • 目标上传:5M
  • 目标下载:5M

问题是:使用这个configuration

  • 每个IP (从1到127)将有5M Tx / Rx的限制

要么

  • 所有IP (从1到127)将有5M Tx / Rx的限制

当前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和队列树,或使用简单的队列。

  1. 标记包标记上传/下载的所有数据包:(让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 
  2. 设置两个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 
  3. 最后,需要两个队列规则,一个用于下载,一个用于上传:

     /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