Como adicionar interface de latência e limite de largura de banda usando tc?

3

Eu sei que posso adicionar latência a uma interface usando este comando:

# tc qdisc add dev eth0 root netem delay 50ms

Além da latência, quero limitar a largura de banda dessa interface a 100kbps.

Como posso fazer isso?

Eu vi alguns exemplos de como limitar a largura de banda. Por exemplo:

# tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 10mbit 

# tc class add dev eth0 parent 1: classid 1:1 cbq rate 512kbit \
  allot 1500 prio 5 bounded isolated 

# tc filter add dev eth0 parent 1: protocol ip prio 16 u32 

Mas se eu tentar executar esses comandos depois de configurar o atraso de latência, recebo erros parecidos com isto:

RTNETLINK answers: File exists

Por exemplo:

# tc qdisc add dev eth0 root netem delay 97ms
# tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 10kbit
RTNETLINK answers: File exists

Eu realmente quero poder fazer as duas coisas: limitar a largura de banda e introduzir um atraso de latência. Alguém sabe como fazer isso?

    
por Runcible 29.06.2016 / 22:17

1 resposta

3

No seu exemplo, você está tentando adicionar dois qdiscs raiz na saída. O segundo comando falha porque você já tem um qdisc raiz e apenas um é permitido. Em vez disso, crie o qdisc raiz, em seguida, uma classe filha para ele e, em seguida, adicione seu segundo qdisc como um filho da classe. Por exemplo:

tc qdisc add dev eth0 root handle 1:0 cbq avpkt 1000 bandwidth 10kbit
tc class add dev eth0 parent 1:0 classid 1:1 cbq rate 512kbit \
    allot 1500 prio 5 bounded isolated
tc qdisc add dev eth0 parent 1:1 netem delay 97ms

Neste exemplo, atribuímos a raiz qdisc à alça 1: 0. Em seguida, especificamos a classe como um filho de 1: 0 e fornecemos a alça 1: 1. Em seguida, adicionamos o segundo qdisc como filho de 1: 1.

Depois de executar esses comandos, a execução de tc qdisc deve mostrar tanto o qdisc do cbq quanto o qdisc do netem. O Roteamento avançado Linux & O HOWTO de controle de tráfego fornece mais informações sobre qdiscs.

    
por 03.09.2016 / 22:30