I am trying to do some simple filtering with htb and the following class
hierarchy:
1:
|
1:10
/ \
1:100 1:200
/ \
1:1000 ...
Internal traffic should go to 1:200 and external traffic to 1:100 with
further distinction based on dst ip made there.
The problem is that I just don''t get the second distinction (filter on
class
1:100) right. I have not found any working example where filters were not
attached to qdiscs but on classes instead. Is it possible to do so? If yes:
am I using the right syntax (parent 1:100)?
The packets just get dropped in class 1:100 although the filter should
definitely match and enqueue them into 1:1000.
Is there anything like a default filter on class basis which always
matches or do I have to use something like "match ip dst 0.0.0.0/0"?
Here are the commands I''m using:
##########
tc qdisc add dev eth1 root handle 1: htb default 100
tc class add dev eth1 parent 1: classid 1:10 htb rate 10mbit ceil 10mbit
burst 20k
# external traffic
tc class add dev eth1 parent 1:10 classid 1:100 htb rate 1mbit ceil 1mbit
burst 10k
# internal traffic
tc class add dev eth1 parent 1:10 classid 1:200 htb rate 9mbit ceil 9mbit
burst 10k
tc class add dev eth1 parent 1:100 classid 1:1000 htb rate 0.5mbit ceil
0.5mbit burst 2k prio 10
# filters
tc filter add dev eth1 pref 1 protocol ip parent 1: u32 match ip src
195.58.166.176/28 flowid 1:200
tc filter add dev eth1 pref 1 protocol ip parent 1:100 u32 match ip dst
195.58.0.0/16 flowid 1:1000
##########
Many thanks in advance,
Andreas Lehrbaum
0On Tuesday 30 April 2002 01:11, office@kabelweb.at wrote:> I am trying to do some simple filtering with htb and the following class > hierarchy: > > 1: > > 1:10 > / \ > 1:100 1:200 > / \ > 1:1000 ... > > Internal traffic should go to 1:200 and external traffic to 1:100 with > further distinction based on dst ip made there. > The problem is that I just don''t get the second distinction (filter on > class 1:100) right. I have not found any working example where filters were > not attached to qdiscs but on classes instead. Is it possible to do so? If > yes: am I using the right syntax (parent 1:100)?The syntax is OK. But I don''t think htb can do this (yet). Devik ? Stef -- stef.coene@docum.org "Using Linux as bandwidth manager" http://www.docum.org/ #lartc @ irc.openprojects.net
You have to use dst 0.0.0.0/0 to direct "other" flows to 1:100. The default kw has global and definitive meaning - when it is used no other filter is tested. Whe default is 100 is will not test filters here. It is by-design, it could be changed but use dst 0.0.0.0/0 flowid 1:100 now. devik On Tue, 30 Apr 2002 office@kabelweb.at wrote:> I am trying to do some simple filtering with htb and the following class > hierarchy: > > 1: > | > 1:10 > / \ > 1:100 1:200 > / \ > 1:1000 ... > > Internal traffic should go to 1:200 and external traffic to 1:100 with > further distinction based on dst ip made there. > The problem is that I just don''t get the second distinction (filter on class > 1:100) right. I have not found any working example where filters were not > attached to qdiscs but on classes instead. Is it possible to do so? If yes: > am I using the right syntax (parent 1:100)? > > The packets just get dropped in class 1:100 although the filter should > definitely match and enqueue them into 1:1000. > > Is there anything like a default filter on class basis which always > matches or do I have to use something like "match ip dst 0.0.0.0/0"? > > Here are the commands I''m using: > > ########## > tc qdisc add dev eth1 root handle 1: htb default 100 > tc class add dev eth1 parent 1: classid 1:10 htb rate 10mbit ceil 10mbit > burst 20k > > # external traffic > tc class add dev eth1 parent 1:10 classid 1:100 htb rate 1mbit ceil 1mbit > burst 10k > > # internal traffic > tc class add dev eth1 parent 1:10 classid 1:200 htb rate 9mbit ceil 9mbit > burst 10k > > tc class add dev eth1 parent 1:100 classid 1:1000 htb rate 0.5mbit ceil > 0.5mbit burst 2k prio 10 > > # filters > tc filter add dev eth1 pref 1 protocol ip parent 1: u32 match ip src > 195.58.166.176/28 flowid 1:200 > tc filter add dev eth1 pref 1 protocol ip parent 1:100 u32 match ip dst > 195.58.0.0/16 flowid 1:1000 > ########## > > Many thanks in advance, > > Andreas Lehrbaum > _______________________________________________ > LARTC mailing list / LARTC@mailman.ds9a.nl > http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/ > >