Infelizmente, não tenho muita experiência com administração de sistemas e configuração de sistemas Linux, então, por favor, não seja tão duro comigo; ainda estou aprendendo ;)
Configuração de rede:
172.21.0.1 - o servidor com modelagem de tráfego.
172.21.0.2 - o segundo servidor que armazena arquivos solicitados pelos clientes via HTTP.
172.21.0.6 e 172.21.0.7 - dois dispositivos clientes.
Estou tentando configurar a modelagem de tráfego para clientes WireGuard:
tc qdisc add dev wg0 parent root handle 1:0 hfsc default 10
# Root class
tc class add dev wg0 parent 1: classid 1:1 hfsc sc rate 1gbit ul rate 1gbit
# Reserved traffic
# Guaranteed bandwidth of 500 Mbit/s and a maximum of 1 Gbit/s
tc class add dev wg0 parent 1:1 classid 1:10 hfsc sc rate 500mbit ul rate 1gbit
# Client traffic
# Guaranteed bandwidth of 500 Mbit/s and a maximum of 1 Gbit/s
tc class add dev wg0 parent 1:1 classid 1:20 hfsc sc rate 500mbit ul rate 1gbit
# Shaping for individual client 6
tc class add dev wg0 parent 1:20 classid 1:3006 hfsc sc rate 100kbit ul rate 100kbit
tc filter add dev wg0 protocol ip parent 1:0 prio 1 u32 match ip dst 172.21.0.6/32 flowid 1:3006
# Shaping for individual client 7
tc class add dev wg0 parent 1:20 classid 1:3007 hfsc sc rate 100kbit ul rate 100kbit
tc filter add dev wg0 protocol ip parent 1:0 prio 1 u32 match ip dst 172.21.0.7/32 flowid 1:3007
tc -pretty filtro mostra dev wg0
filter parent 1: protocol ip pref 2 u32 chain 0
filter parent 1: protocol ip pref 2 u32 chain 0 fh 800: ht divisor 1
filter parent 1: protocol ip pref 2 u32 chain 0 fh 800::801 order 2049 key ht 800 bkt 0 *flowid 1:3006 not_in_hw
match IP dst 172.21.0.6/32
filter parent 1: protocol ip pref 2 u32 chain 0 fh 800::802 order 2050 key ht 800 bkt 0 *flowid 1:3007 not_in_hw
match IP dst 172.21.0.7/32
tc -graph classe mostra dev wg0
+---(1:) hfsc
+---(1:1) hfsc sc m1 0bit d 0us m2 1Gbit ul m1 0bit d 0us m2 1Gbit
+---(1:10) hfsc sc m1 0bit d 0us m2 500Mbit ul m1 0bit d 0us m2 1Gbit
+---(1:20) hfsc sc m1 0bit d 0us m2 500Mbit ul m1 0bit d 0us m2 1Gbit
+---(1:3007) hfsc sc m1 0bit d 0us m2 100Kbit ul m1 0bit d 0us m2 100Kbit
+---(1:3006) hfsc sc m1 0bit d 0us m2 100Kbit ul m1 0bit d 0us m2 100Kbit
|
| |
Ao tentar baixar um arquivo de ambos os clientes ao mesmo tempo, apenas um obtém 100 kbit, enquanto o outro obtém 0 kbit :(
O que estou fazendo errado? Servidor: Debian 12 rodando em KVM.
PS: O limite de 100 kbit/s é apenas para testar a funcionalidade do modelador de tráfego.
Eu também apreciaria sugestões sobre como reescrever a configuração. Talvez eu esteja fazendo isso completamente errado, e pode haver uma maneira mais otimizada (como configurar uma única classe para toda a sub-rede, para que todos os clientes WireGuard tenham um limite individual de 100 kbit).