# Flush tc qdiscs: /sbin/tc qdisc del dev eth1 root >/dev/null 2>&1 # Create root qdiscs: /sbin/tc qdisc add dev eth1 root handle 2: htb default 1000 # Create root class : /sbin/tc class add dev eth1 parent 2: classid 2:1 htb rate 3584kbit ceil 3584kbit burst 0 prio 1 # Create default class : /sbin/tc class add dev eth1 parent 2: classid 2:1000 htb rate 3500kbit ceil 3350kbit burst 0 prio 5 # Create class: /sbin/tc class add dev eth1 parent 2:1 classid 2:44 htb rate 64kbit ceil 72kbit burst 8kbit prio 1 quantum 1536 # Create filter: /sbin/tc filter add dev eth1 protocol ip parent 2:0 prio 1 handle 244 fw flowid 2:44 # Iptables rules: /sbin/iptables -F -t mangle /sbin/iptables -A PREROUTING -t mangle -p udp -s 172.16.0.185/32 --sport 10000:10100 -d 172.16.1.0/24 -j MARK --set-mark 244 Now the statistics: server:~# iptables -vnx -L -t mangle Chain PREROUTING (policy ACCEPT 47149617 packets, 16079655958 bytes) pkts bytes target prot opt in out source destination 10732 643632 MARK udp -- * * 172.16.0.185 172.16.1.0/24 udp spts:10000:10100 MARK set 0xf4 The are iptables marked packages. Now the classes statistics: baco:~# tc -s -d cl sh dev eth1 class htb 2:44 parent 2:1 prio 1 quantum 1536 rate 64000bit ceil 72000bit burst 1023b/8 mpu 0b overh ead 0b cburst 1608b/8 mpu 0b overhead 0b level 0 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 131070 ctokens: 183067 class htb 2:1 root rate 3584Kbit ceil 3584Kbit burst 2Kb/8 mpu 0b overhead 0b cburst 2Kb/8 mpu 0b ov erhead 0b level 7 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) lended: 0 borrowed: 0 giants: 0 tokens: 4680 ctokens: 4680 class htb 2:1000 root prio 5 quantum 43750 rate 3500Kbit ceil 3350Kbit burst 2Kb/8 mpu 0b overhead 0 b cburst 2017b/8 mpu 0b overhead 0b level 0 Sent 54534126 bytes 270559 pkts (dropped 0, overlimits 0) rate 274344bit 123pps lended: 270559 borrowed: 0 giants: 0 tokens: 4505 ctokens: 4661 All the trafic going trhough the default class :(