Como desacelerar e compartilhar tráfego de rede de entrada usando o TC (traffic shaping)

1

Estou tentando desacelerar pacotes de entrada para um programa específico, enquanto um segundo terá acesso total à largura de banda não utilizada. Em outras palavras, quero controlar o compartilhamento de largura de banda da rede para priorizar um aplicativo em vez de outro.

Aqui está minha configuração atual, inspirada no link :

# Set up a virtual interface
modprobe ifb
ip link set dev ifb0 up

# Set up eth0 in order to redirect incoming packets
tc qdisc add dev eth0 handle ffff: ingress
# Filter to make the packet going on ifb0
tc filter add dev eth0 protocol ip parent ffff: u32 match u32 0 0 action mirred egress redirect dev ifb0

# ifb0 configuration
tc qdisc add dev ifb0 root handle 2: htb

tc class add dev ifb0 parent 2: classid 2:1 htb rate 1000mbit

tc class add dev ifb0 parent 2:1 classid 2:10 htb rate 999mbit ceil 1000mbit
tc class add dev ifb0 parent 2:1 classid 2:11 htb rate 1mbit ceil 1000mbit

Em seguida, estou aplicando filtros no ifb0 para redirecionar meu pacote em 2:10 (a classe de alta prioridade) ou 2:11 (classe de baixa prioridade).

Os pacotes são atribuídos às classes conforme o esperado, mas a rede é compartilhada de forma justa entre os dois aplicativos (50/50, em vez de 1/99, como seria de se esperar da configuração do HTB).

Na verdade, não vejo por que minha rede é compartilhada de forma justa e minhas taxas / limites não são respeitadas. O que estou fazendo errado aqui?

    
por LittleWhite 24.02.2014 / 11:50

1 resposta

1

Você está configurando o tráfego padrão para lidar com 20, mas este não existe, portanto, nunca corresponderá a nenhuma taxa / limite.

tc qdisc add dev ifb0 root handle 2: htb default 20

_________________________________________^^^^^^^^^^

tente adicionar uma regra classid 2:20

Eu recomendo uma leitura rápida nesta página para mais explicações: link

    
por 24.02.2014 / 20:26