我正在使用微量元素 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 和队列树,或者使用简单队列。
用数据包标记上传/下载标记所有数据包:(假设 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 队列类型 - 一种用于下载,一种用于上传。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
最后,需要两个队列规则,一个用于下载,一个用于上传:
/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