Mikrotik 隊列和限制總上行頻寬
使用 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 時複製此隊列。
- 創建一個最大 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。它可以用更少的工作做你想做的事。