Mikrotik 简单队列,限制 IP 范围

Mikrotik 简单队列,限制 IP 范围

我正在使用微量元素 RB201UiAS管理我的网络。为了避免为每个 IP 创建简单队列,我为 IP 范围创建了队列。

简单队列的屏幕截图

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

问题是:使用此配置

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

或者

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

当前配置:

# 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

答案1

除非你使用PCQ 队列类型,则限制将应用于定义范围内的所有 IP。

PCQ(每个连接队列)您可以根据在 PCQ 上定义的标准(目标/源地址、目标/源端口或这些的任意组合)对每个 IP 应用所需的限制。

摘自MikroTik官方文档

PCQ 的引入是为了优化大规模 QoS 系统,其中大多数队列对于不同的子流完全相同。例如,可以为一个特定客户端 (IP) 或与服务器的连接下载或上传子流。

PCQ 算法非常简单 - 首先它使用选定的分类器来区分一个子流与另一个子流,然后对每个子流应用单独的 FIFO 队列大小和限制,然后将所有子流组合在一起并应用全局队列大小和限制。

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 个子流的 PCQ 队列,而不是设置 100 个下载速度限制为 1000kbps 的队列

还有一个示例MikroTik 维基

维基百科摘录:

有两种方法可以实现这一点:使用 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 队列类型 - 一种用于下载,一种用于上传。dst-address 是用户下载流量的分类器,src-address 是上传流量的分类器:

    /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 将创建一个简单的队列,如下所示:

/queue simple add target-addresses=192.168.0.0/24 queue=PCQ_upload/PCQ_download

答案2

谢谢查0s的回答我设法创建了公平限制,而无需创建数百个简单队列。

给其他尝试做同样事情的观众的一个提示。

添加队列类型后要小心配置下载/上传限制为队列类型速率消除(无限制)目标上传和目标下载来自简单队列

我的例子:


 /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-Klasat

相关内容