[LARTC] htb & filter on classes

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux