Networking

Mikrotik 簡單隊列,限制 IP 範圍

  • March 21, 2022

我正在使用Mikrtotik 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

除非您使用PCQ queue type,否則限制將應用於定義範圍內的所有 IP。

使用PCQ(每個連接隊列),您可以根據您在 PCQ 上定義的標準(dst/src 地址、dst/src 埠或這些的任意組合)對每個 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 Wiki上也有一個範例

摘錄維基:

有兩種方法可以做到這一點:使用 mangle 和隊列樹,或者使用簡單的隊列。

  1. 使用數據包標記上傳/下載標記所有數據包:(讓我們假設 ether1-LAN 是 Internet 的公共介面,而 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
  1. 設置兩種 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
  1. 最後,需要兩條隊列規則,一條用於下載,一條用於上傳:
/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

引用自:https://serverfault.com/questions/730553