tc simulace pomalé sítě a filtrování požadavků

Založil sgflt, 02. 04. 2016, 16:22:32

Předchozí téma - Další téma

sgflt

Zdravím,

mám menší problém s konfigurací filtru pro rozhraní.


#!/bin/bash
VETH_1="veth09840d5"

tc qdisc del dev $VETH_1 root

tc qdisc add dev $VETH_1 root handle 1: htb default 14
tc class add dev $VETH_1 parent 1: classid 1:0 htb rate 1000Mbps

tc class add dev $VETH_1 parent 1:0 classid 1:2 htb rate 1000Mbps
tc class add dev $VETH_1 parent 1:0 classid 1:3 htb rate 1000Mbps
tc class add dev $VETH_1 parent 1:0 classid 1:4 htb rate 1000Mbps
tc class add dev $VETH_1 parent 1:0 classid 1:5 htb rate 1000Mbps


tc qdisc add dev $VETH_1 parent 1:2 handle 12: netem loss 0% 1% delay 30ms 10ms
tc qdisc add dev $VETH_1 parent 1:3 handle 13: netem loss 0% 1% delay 2ms 10ms
tc qdisc add dev $VETH_1 parent 1:4 handle 14: netem loss 0% 1% delay 10ms 10ms
tc qdisc add dev $VETH_1 parent 1:5 handle 15: netem loss 0% 1% delay 15ms 10ms

tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.3 flowid 1:2
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.4 flowid 1:3
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.5 flowid 1:4
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.6 flowid 1:5


Problém je v tom, že match ip dst 172.17.0.3 nezabere, ale match ip dst 172.17.0.3/24 už zabírá. Jenže potřebuji filtrovat dle konkrétních adres a né sítí.

Google v tomhle také není moc nápomocen.

Děkuji za případné rady.

EDIT:
Tak filtr na host funguje, ale jen pokud se zachytává ip adresa, která je přiřazená danému rozhraní. Jenže potřebuju zpomalit ostatní ip adresy.