tc / netem e iptables: Atrasar o tráfego somente do ip e da porta especificados

1

Eu tenho um roteador Ubuntu com 2 interfaces de rede. eth0 é a rede privada e eth1 é a internet. O que eu quero é o seguinte: Todos os pacotes (principalmente o udp) que vêm de um IP privado especificado (por exemplo, 192.168.0.4) para uma porta de destino específica (por exemplo, 5200) devem ser atrasados em 500 ms.

Eu tentei várias coisas, incluindo esta , este e isso . O único resultado é que nenhum atraso é adicionado.

Se possível, quero decidir usar iptables , quais pacotes devem ser atrasados.

Aqui estão alguns dos erros que recebi:

root@ubuntu:~# tc qdisc del dev eth1 root
root@ubuntu:~# tc qdisc ls dev eth1
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
root@ubuntu:~# tc qdisc add dev eth1 root handle 1: htb default 20
root@ubuntu:~# tc class add dev eth1 parent 1: classid 1:1 pfifo_fast
Error: Qdisc "pfifo_fast" is classless.
root@ubuntu:~# tc class add dev eth1 parent 1: classid 1:1 prio
Error: Qdisc "prio" is classless.
root@ubuntu:~# tc class add dev eth1 parent 1: classid 1:10 netem delay 500ms
Error: Qdisc "netem" is classless.
root@ubuntu:~# tc class add dev eth1 parent 1:10 netem delay 500ms
Error: Qdisc "netem" is classless.

O que estou fazendo de errado?

    
por rollstuhlfahrer 16.01.2013 / 20:09

1 resposta

1

você está tentando aplicar 'netem' a uma classe, não a um qdisc.

A ideia básica é que você tem que criar o qdisc raiz, (como você fez) aplicar uma classe a isso, que pode ter classes filhas, essas classes filhas devem ter o mesmo método de tráfego que o pai (neste caso htb). essas classes de folhas podem ter um qdisc aplicado a elas, e é aí que você especificaria netem (ou pfifo_fast, ou outras formas classful ou classless) e suas configurações.

(ou, se você quiser ser global sobre isso, você pode aplicar netem ao qdisc raiz sem usar uma classe, (portanto '' netem 'é sem classe'))

root qdisc - > classe interna (pai) - > classe folha (criança) - > qdisc

aqui estão alguns tc doc antigos que achei bem claros, embora O netem não era aparentemente uma opção quando isso foi escrito ou atualizado.

    
por 30.09.2017 / 00:20