O controle de largura de banda HTB em tc modela apenas o tráfego saída , portanto, para limitar a largura de banda entre um servidor e uma conexão TCP cliente, a modelagem deve ser aplicada a ambas as interfaces de ponte . (Graças a 0x534B41)
Estou tentando limitar a largura de banda entre um servidor e cliente iperf simples, usando uma terceira máquina passiva que atua como uma ponte. Sem interferência, iperf retorna uma largura de banda de ~ 90 Mbits / seg. Meu objetivo é criar um qdisc de raiz que envie todo o tráfego não classificado (tudo) para uma classe HTB filho, onde minha largura de banda é definida, que será direcionada para um qdisc de folha, onde os parâmetros tc adicionais serão definidos assim que eu começar a trabalhar. Minha implementação é breve:
sudo tc qdisc add dev $interface root handle 1: htb default 10
sudo tc class add dev $interface parent 1:0 classid 1:10 htb rate $bandwidth burst $burst
sudo tc qdisc add dev $interface parent 1:10 handle 10:0 netem #other stuff goes here
Quando esse script bash é implementado na ponte com $interface = eth1
, $bandwidth = 500kbps
, $burst = 15k
, vejo uma diminuição na largura de banda iperf, mas não próximo do valor obrigatório (geralmente ~ 5Mbps).
Existe algum erro no meu script? Estou usando indevidamente a variável burst? Por favor ajude.
ATUALIZAÇÃO: Após investigações posteriores, descobri que esse controle de tráfego funciona bem quando aplicado à placa ethernet que faz interface com o SERVER, mas o problema ocorre quando os mesmos comandos são aplicados ao lado CLIENT. Isso é verdade quando toda a configuração é invertida.
O controle de largura de banda HTB em tc modela apenas o tráfego saída , portanto, para limitar a largura de banda entre um servidor e uma conexão TCP cliente, a modelagem deve ser aplicada a ambas as interfaces de ponte . (Graças a 0x534B41)
Tags bash traffic-shaping tc iperf htb