Networking
如何使用網橋和 qdisc 對流量進行優先級排序?
我正在嘗試優先處理網路中基於 Linux 的軟體橋的流量。當我在本地(在託管網橋的機器上)生成流量時,流量的優先級正確。但是,“遠端”流量(來自通過網橋的其他節點)沒有優先級(向所有發送者分配相同的頻寬)。也許有人知道為什麼?
針對 I350 網路適配器(Linux 5.1.8-1-MANJARO #1 SMP PREEMPT Sun Jun 9 20:44:14 UTC 2019 x86_64 GNU/Linux)的 Bridge 設置如下:
brctl addbr br0 ip link set dev enp1s0f0 promisc on ip link set dev enp1s0f1 promisc on ip link set dev enp1s0f2 promisc on ip link set dev enp1s0f3 promisc on brctl addif br0 enp1s0f0 brctl addif br0 enp1s0f1 brctl addif br0 enp1s0f2 brctl addif br0 enp1s0f3 ip link set dev br0 up tc qdisc del dev enp1s0f0 root tc qdisc add dev enp1s0f0 root prio tc qdisc del dev enp1s0f1 root tc qdisc add dev enp1s0f1 root prio tc qdisc del dev enp1s0f2 root tc qdisc add dev enp1s0f2 root prio tc qdisc del dev enp1s0f3 root tc qdisc add dev enp1s0f3 root prio ip addr add 192.168.1.1/24 dev br0
UDP 流量是使用 iperf3 生成的,並通過適當地設置 TOS 欄位,例如
Low-Prio Sender: iperf3 -c 192.168.1.140 -u -b 100m -S 0x2 -p 5201 -t 30 Hi-Prio Sender : iperf3 -c 192.168.1.140 -u -b 100m -S 0x0 -p 5202 -t 30
Prio 地圖保留預設設置:priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
與此同時,我設法找到了解決方案:)
如果您遇到類似問題,請使用代理 ARP 橋接網路連接(因此強制執行第 3 層)而不是 brctl
你可以在這裡找到詳細的教程:https ://wiki.debian.org/BridgeNetworkConnectionsProxyArp
TOS 允許“在媒體訪問控制 (MAC) 級別實施服務質量 (QoS)” https://en.wikipedia.org/wiki/IEEE_802.1Q並且根據 OSI 模型,這種機制經常被歸類為第 2 層https://en.wikipedia.org/wiki/OSI_model
但是,由於 ToS/DSCP 屬於 IP 標頭,它們似乎在第 3 層處理傳入(“遠端”)數據