Bandwidth-Control

Mikrotik 隊列和限制總上行頻寬

  • November 6, 2013

使用 Mikrotik 路由器(嵌入式 Linux 的形式),我創建了與源 IP 地址匹配的每台機器的簡單隊列。

4 個機器隊列中的每一個都有用於 Tx/Rx 的無限突發 3Mbps/3Mbps。

在同時在所有 4 台機器上進行 speedtest.net 期間,每台機器顯示 3Mbps(並且在那裡被正確限制),但是上行鏈路的總頻寬達到 12Mbps(我需要將其設置為上行最大 10Mbps)。

無論其他隊列在做什麼,我都想將通過上行鏈路埠的實際流量限制為 10Mbps(我需要這個擷取所有隊列才能對上行鏈路速度有最終決定權)。

例如我需要:

方案 A

  • 機器 A 傳輸 @ 3Mbps
  • 機器 B 傳輸 @ 3Mbps
  • 機器 C 傳輸 @ 3Mbps
  • 機器 D 傳輸 @ 0Mbps 上行鏈路速度 = 9Mbps

方案 B

  • 機器 A 試圖以 3Mbps 傳輸
  • 機器 B 試圖以 3Mbps 傳輸
  • 機器 C 試圖以 3Mbps 傳輸
  • 機器 D 試圖以 3Mbps 的速度傳輸
  • 上行鏈路速度 = 10Mbps
  • 機器A、B、C、D的實際傳輸速度= 2.5Mbps

這是為了允許對頻寬隊列進行輕微的超額訂閱,因為並非所有隊列都將一直以 3Mbps 的速度傳輸。

這是可能的嗎?如果是這樣,人們將如何去做呢?

您可能想要使用隊列樹,而不是使用簡單的隊列。請參閱:http ://wiki.mikrotik.com/wiki/Manual:Queue#Queue_Tree

簡而言之,您需要一個用於上傳的頂級隊列和一個用於下載的單獨隊列,因此在每個方向將 src-address 更改為 dest-address 時複製此隊列。

  1. 創建一個最大 10Mbps 的隊列:

/queue tree add name=all_up limit-at=10M parent=machine_ingress_interface 2. 使用數據包標記按源或目標 IP 標記每個數據包。例如,來自機器 A 的流量被標記為 machine_a_up:

/ip firewall mangle add action=mark chain=prerouting new-packet-mark=machine_a_up src-address=192.168.1.2 3. 創建一個隊列以調整使用指定父隊列標記的流量:

/queue tree add name=machine_a_up packet-mark=machine_a_up parent=all_up

或者,查看 PCQ。它可以用更少的工作做你想做的事。

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