브리지와 qdisc를 사용하여 트래픽의 우선순위를 지정하는 방법은 무엇입니까?

브리지와 qdisc를 사용하여 트래픽의 우선순위를 지정하는 방법은 무엇입니까?

내 네트워크의 Linux 기반 소프트웨어 브리지에서 트래픽의 우선순위를 지정하려고 합니다. 브리지를 호스팅하는 시스템에서 로컬로 트래픽을 생성하면 트래픽의 우선 순위가 올바르게 지정됩니다. 그러나 브리지를 통과하는 다른 노드의 "원격" 트래픽은 우선 순위가 지정되지 않습니다(모든 발신자에게 동일한 대역폭이 할당됨). 어쩌면 누군가가 이유를 알고 있을까요?

I350 네트워크 어댑터(Linux 5.1.8-1-MANJARO #1 SMP PREEMPT Sun Jun 9 20:44:14 UTC 2019 x86_64 GNU/Linux)에 대한 브리지 설정은 다음과 같습니다.

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 트래픽은 TOS 필드를 적절하게 설정하여 iperf3을 사용하여 생성됩니다.

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

답변1

그 사이에 해결책을 찾았습니다 :)

비슷한 문제가 있는 경우 brctl 대신 프록시 ARP를 사용하여 네트워크 연결을 브리지합니다(따라서 레이어 3 적용).

여기에서 자세한 튜토리얼을 찾을 수 있습니다:https://wiki.debian.org/BridgeNetworkConnectionsProxyArp

TOS는 미디어 액세스 제어(MAC) 수준에서 "서비스 품질(QoS)"을 허용합니다.https://en.wikipedia.org/wiki/IEEE_802.1QOSI 모델에 따르면 이러한 메커니즘은 종종 계층 2로 분류됩니다.https://en.wikipedia.org/wiki/OSI_model

그러나 ToS/DSCP는 IP 헤더이므로 계층 3에서 들어오는("원격") 데이터를 처리하는 것으로 보입니다.

관련 정보