Limitação de largura de banda usando td qdiscs

5

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.

    
por Ian 15.03.2014 / 21:54

1 resposta

2

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)

    
por 22.03.2014 / 01:02