Estou tentando testar o Linux HTB , fazendo o exemplo mais simples apenas para ver se funciona de fato.
Eu estou criando uma raiz e dando a ela 200kbps , então eu crio 3 classes que cada uma recebe uma porção do 200kbps .
- Root -
/ | \
/ | \
/ | \
/ | \
/ | \
/ | \
100kbps 60kbps 40kbps
O que eu quero ver no final é que quando eles correm por 60 segundos eu entendo
a primeira classe usou metade da largura de banda, a segunda 30% da largura de banda e a última classe usou 20% da largura de banda.
Agora vem a configuração para o teste.
Criei a árvore acima e apliquei os filtros.
tc qdisc add dev eno2 root handle 1: htb default 30
tc class add dev eno2 parent 1: classid 1:1 htb rate 200kbps ceil 200kbps
tc class add dev eno2 parent 1:1 classid 1:10 htb rate 100kbps ceil 200kbps
tc class add dev eno2 parent 1:1 classid 1:20 htb rate 60kbps ceil 200kbps
tc class add dev eno2 parent 1:1 classid 1:30 htb rate 40kbps ceil 200kbps
tc filter add dev eno2 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
tc filter add dev eno2 protocol ip parent 1:0 prio 1 u32 match ip dport 25 0xffff flowid 1:20
tc filter add dev eno2 protocol ip parent 1:0 prio 1 u32 match ip dport 36 0xffff flowid 1:30
Para o teste, usei iperf .
Eu abri 3 terminais para os servidores:
sudo iperf -s -p 25 -i 1
sudo iperf -s -p 36 -i 1
sudo iperf -s -p 80 -i 1
Em seguida, conectou os 3 clientes com um parâmetro de quanto tempo de execução (60 segundos).
iperf -c 132.74.120.45 -p 25 -t 60
iperf -c 132.74.120.45 -p 36 -t 60
iperf -c 132.74.120.45 -p 80 -t 60
Os resultados são um pouco estranhos ... parece que cada um usou a mesma quantidade de largura de banda, independentemente da alocação original?
Alémdisso,verifiqueiqueadisciplinadafilaéHTBusandoocomandobmon
,comovocêpodevernafiguraabaixo.
O que estou fazendo de errado?