* [LARTC] tc u32 match !port
@ 2007-05-02 10:36 Salatiel Filho
2007-05-02 15:20 ` Alejandro Ramos Encinosa
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Salatiel Filho @ 2007-05-02 10:36 UTC (permalink / raw)
To: lartc
How can i redirect all traffic that not come from port 80 to a flow ?
i was thing about some like
tc filter add dev imq1 parent 1: protocol ip prio 7 u32 match ip sport
!80 ......
But this not work.
Another doubt, if i have two rules that intersects , for example ,
one filter with u32 match ip src 10.10.10.10 flowid 1:10
and other with u32 match sport 80 0xffff flowid 1:11 , which one will
work in case of a packet to 10.10.10.10 with sport 80 ???
[]'s
Salatiel
"O maior prazer do inteligente é bancar o idiota
diante de um idiota que banca o inteligente".
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LARTC] tc u32 match !port
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
@ 2007-05-02 15:20 ` Alejandro Ramos Encinosa
2007-05-03 12:57 ` Andy Furniss
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Alejandro Ramos Encinosa @ 2007-05-02 15:20 UTC (permalink / raw)
To: lartc
On Wednesday 02 May 2007 10:36, Salatiel Filho wrote:
> How can i redirect all traffic that not come from port 80 to a flow ?
>
> i was thing about some like
>
> tc filter add dev imq1 parent 1: protocol ip prio 7 u32 match ip sport
> !80 ......
Maybe you should try with iptables/tc solution:
iptables -t <table> -A <chain> -p tcp --sport ! 80 0xffff -j MARK --set-mark 5
tc filter add dev imq1 parent 1: handle 5 fw flowid ...
>
> But this not work.
>
> Another doubt, if i have two rules that intersects , for example ,
> one filter with u32 match ip src 10.10.10.10 flowid 1:10
> and other with u32 match sport 80 0xffff flowid 1:11 , which one will
> work in case of a packet to 10.10.10.10 with sport 80 ???
From all filters in the current tc node, those with current priority, will
match in the same order you declare them. Maybe you want to do something
like:
|-------------|
| 10.10.10.10 |
|-------------|
/ \
/ \
|---------| |----------|
| default | | sport 80 |
|---------| |----------|
then you will have the traffic from 10.10.10.10 going to the subtree root, and
the traffic that also has port 80 as source, will go to the right child of
the tree. Maybe the rules will like as the following:
iptables -t mangle -A PREROUTING -s 10.10.10.10 -j MARK --set-mark 4
...
// parent (node 10.10.10.10 on *figure*)
tc class add dev imq1 parent 1:1 classid 1:10 htb rate ...
// "default" node
tc class add dev imq1 parent 1:10 classid 1:11 htb rate ...
// "sport 80" node
tc class add dev imq1 parent 1:10 classid 1:12 htb rate ...
...
// filter to match the traffic that will go to "sport 80" node
tc filter add dev imq1 protocol ip parent 1: prio 1 u32 match ip src
10.10.10.10 match ip sport 80 0xffff flowid 1:20
// filter to match the rest of the traffic from 10.10.10.10 (going
to "default")
tc filter add dev imq1 protocol ip parent 1: prio 1 u32 match ip src
10.10.10.10 flowid 1:20
--
Alejandro Ramos Encinosa <alex@uh.cu>
Fac. Matemática Computación
Universidad de La Habana
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LARTC] tc u32 match !port
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
2007-05-02 15:20 ` Alejandro Ramos Encinosa
@ 2007-05-03 12:57 ` Andy Furniss
2007-05-05 17:28 ` Salatiel Filho
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Andy Furniss @ 2007-05-03 12:57 UTC (permalink / raw)
To: lartc
Salatiel Filho wrote:
> How can i redirect all traffic that not come from port 80 to a flow ?
>
> i was thing about some like
>
> tc filter add dev imq1 parent 1: protocol ip prio 7 u32 match ip sport
> !80 ......
>
> But this not work.
>
> Another doubt, if i have two rules that intersects , for example ,
> one filter with u32 match ip src 10.10.10.10 flowid 1:10
> and other with u32 match sport 80 0xffff flowid 1:11 , which one will
> work in case of a packet to 10.10.10.10 with sport 80 ???
You need to use prio to order the rules - anything after a rule that
matches port 80 will be ! 80 - you cannot make a rule that negates
matches directly. If the structure of your htb etc is deep you can make
filters attach to parents other than root, but you need to filter the
traffic to those flowids first. You can match more than one thing with
one filter rule so you can match prio X src ip and 80 then follow with
prio (X+1) src ip.
Andy.
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LARTC] tc u32 match !port
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
2007-05-02 15:20 ` Alejandro Ramos Encinosa
2007-05-03 12:57 ` Andy Furniss
@ 2007-05-05 17:28 ` Salatiel Filho
2007-05-05 18:56 ` Andy Furniss
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Salatiel Filho @ 2007-05-05 17:28 UTC (permalink / raw)
To: lartc
>On 5/3/07, Andy Furniss <lists@andyfurniss.entadsl.com> wrote:
> Salatiel Filho wrote:
> > How can i redirect all traffic that not come from port 80 to a flow ?
> >
> > i was thing about some like
> >
> > tc filter add dev imq1 parent 1: protocol ip prio 7 u32 match ip sport
> > !80 ......
> >
> > But this not work.
> >
> > Another doubt, if i have two rules that intersects , for example ,
> > one filter with u32 match ip src 10.10.10.10 flowid 1:10
> > and other with u32 match sport 80 0xffff flowid 1:11 , which one will
> > work in case of a packet to 10.10.10.10 with sport 80 ???
>
> You need to use prio to order the rules - anything after a rule that
> matches port 80 will be ! 80 - you cannot make a rule that negates
> matches directly. If the structure of your htb etc is deep you can make
> filters attach to parents other than root, but you need to filter the
> traffic to those flowids first. You can match more than one thing with
> one filter rule so you can match prio X src ip and 80 then follow with
> prio (X+1) src ip.
>
> Andy.
>
>
Well , i am having a few troubles making this work.
I have some like this in pseudo tc rulez :)
Root class
Class 1 parent ROOT prio 0 filter u32 match sport 80 dst 10.0.0.254
Class 2 paret ROOT prio 0 filter u32 match dport 22
Class 3 parent ROOT prio 7 filter u32 match dst 10.0.0.254
default
Shouldn't traffic from source port 80 and destination 10.0.0.254 go
through class 1 ?
I can not make a way to this work, traffic to 10.0.0.254 is always
falling in to class 3 :/
Am i missing something ?
--
[]'s
Salatiel
"O maior prazer do inteligente é bancar o idiota
diante de um idiota que banca o inteligente".
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LARTC] tc u32 match !port
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
` (2 preceding siblings ...)
2007-05-05 17:28 ` Salatiel Filho
@ 2007-05-05 18:56 ` Andy Furniss
2007-05-05 19:21 ` Salatiel Filho
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Andy Furniss @ 2007-05-05 18:56 UTC (permalink / raw)
To: lartc
Salatiel Filho wrote:
> Well , i am having a few troubles making this work.
> I have some like this in pseudo tc rulez :)
> Root class
> Class 1 parent ROOT prio 0 filter u32 match sport 80 dst 10.0.0.254
> Class 2 paret ROOT prio 0 filter u32 match dport 22
> Class 3 parent ROOT prio 7 filter u32 match dst 10.0.0.254
> default
>
> Shouldn't traffic from source port 80 and destination 10.0.0.254 go
> through class 1 ?
> I can not make a way to this work, traffic to 10.0.0.254 is always
> falling in to class 3 :/
> Am i missing something ?
prio 1 is the top prio for filters 0 ends up much lower.
I think two prio 1s should work in order of entry, but I would use 1 and
2 to be sure. I have seen reverse order of entry if you don't use prio
at all ...
tc -s filter ls dev $DEV parent X:Y
should help you see what's going on.
Andy.
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LARTC] tc u32 match !port
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
` (3 preceding siblings ...)
2007-05-05 18:56 ` Andy Furniss
@ 2007-05-05 19:21 ` Salatiel Filho
2007-05-05 21:38 ` Andy Furniss
2007-05-06 3:29 ` Salatiel Filho
6 siblings, 0 replies; 8+ messages in thread
From: Salatiel Filho @ 2007-05-05 19:21 UTC (permalink / raw)
To: lartc
On 5/5/07, Andy Furniss <lists@andyfurniss.entadsl.com> wrote:
> Salatiel Filho wrote:
>
> > Well , i am having a few troubles making this work.
> > I have some like this in pseudo tc rulez :)
> > Root class
> > Class 1 parent ROOT prio 0 filter u32 match sport 80 dst 10.0.0.254
> > Class 2 paret ROOT prio 0 filter u32 match dport 22
> > Class 3 parent ROOT prio 7 filter u32 match dst 10.0.0.254
> > default
> >
> > Shouldn't traffic from source port 80 and destination 10.0.0.254 go
> > through class 1 ?
> > I can not make a way to this work, traffic to 10.0.0.254 is always
> > falling in to class 3 :/
> > Am i missing something ?
>
> prio 1 is the top prio for filters 0 ends up much lower.
>
> I think two prio 1s should work in order of entry, but I would use 1 and
> 2 to be sure. I have seen reverse order of entry if you don't use prio
> at all ...
>
> tc -s filter ls dev $DEV parent X:Y
>
> should help you see what's going on.
>
> Andy.
>
>
>
>
Changed to this:
tc qdisc add dev imq1 root handle 1: htb default 5 r2q 1
tc class add dev imq1 parent 1: classid 1:5 htb rate 8kbit ceil 8kbit
prio 7 quantum 1500 # DEFAULT
tc class add dev imq1 parent 1: classid 1:2 htb rate 1024kbit ceil
1024kbit prio 0 quantum 1500
tc filter add dev imq1 parent 1: protocol ip prio 1 u32 match ip dst
192.168.10.1 match ip sport 80 0xffff flowid 1:2 # FROM HTTP DEST TO
192.168.10.1
tc class add dev imq1 parent 1: classid 1:3 htb rate 1024kbit ceil
1024kbit prio 0 quantum 1500
tc class add dev imq1 parent 1:3 classid 1:900 htb rate 1024kbit ceil
1024kbit prio 7 quantum 1500
tc filter add dev imq1 parent 1: protocol ip prio 7 u32 match ip dst
192.168.10.1 flowid 1:900 # ANY OTHER TRAFFIC TO 192.168.10.1
But all traffic is still flowing to 1:900 :/
--
[]'s
Salatiel
"O maior prazer do inteligente é bancar o idiota
diante de um idiota que banca o inteligente".
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LARTC] tc u32 match !port
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
` (4 preceding siblings ...)
2007-05-05 19:21 ` Salatiel Filho
@ 2007-05-05 21:38 ` Andy Furniss
2007-05-06 3:29 ` Salatiel Filho
6 siblings, 0 replies; 8+ messages in thread
From: Andy Furniss @ 2007-05-05 21:38 UTC (permalink / raw)
To: lartc
Salatiel Filho wrote:
> On 5/5/07, Andy Furniss <lists@andyfurniss.entadsl.com> wrote:
>> Salatiel Filho wrote:
>>
>> > Well , i am having a few troubles making this work.
>> > I have some like this in pseudo tc rulez :)
>> > Root class
>> > Class 1 parent ROOT prio 0 filter u32 match sport 80 dst
>> 10.0.0.254
>> > Class 2 paret ROOT prio 0 filter u32 match dport 22
>> > Class 3 parent ROOT prio 7 filter u32 match dst 10.0.0.254
>> > default
>> >
>> > Shouldn't traffic from source port 80 and destination 10.0.0.254 go
>> > through class 1 ?
>> > I can not make a way to this work, traffic to 10.0.0.254 is always
>> > falling in to class 3 :/
>> > Am i missing something ?
>>
>> prio 1 is the top prio for filters 0 ends up much lower.
>>
>> I think two prio 1s should work in order of entry, but I would use 1 and
>> 2 to be sure. I have seen reverse order of entry if you don't use prio
>> at all ...
>>
>> tc -s filter ls dev $DEV parent X:Y
>>
>> should help you see what's going on.
>>
>> Andy.
>>
>>
>>
>>
>
> Changed to this:
>
> tc qdisc add dev imq1 root handle 1: htb default 5 r2q 1
> tc class add dev imq1 parent 1: classid 1:5 htb rate 8kbit ceil 8kbit
> prio 7 quantum 1500 # DEFAULT
>
> tc class add dev imq1 parent 1: classid 1:2 htb rate 1024kbit ceil
> 1024kbit prio 0 quantum 1500
> tc filter add dev imq1 parent 1: protocol ip prio 1 u32 match ip dst
> 192.168.10.1 match ip sport 80 0xffff flowid 1:2 # FROM HTTP DEST TO
> 192.168.10.1
>
> tc class add dev imq1 parent 1: classid 1:3 htb rate 1024kbit ceil
> 1024kbit prio 0 quantum 1500
> tc class add dev imq1 parent 1:3 classid 1:900 htb rate 1024kbit ceil
> 1024kbit prio 7 quantum 1500
> tc filter add dev imq1 parent 1: protocol ip prio 7 u32 match ip dst
> 192.168.10.1 flowid 1:900 # ANY OTHER TRAFFIC TO 192.168.10.1
>
> But all traffic is still flowing to 1:900 :/
Hmm that should work - as long as imq1 hooks in prerouting and after nat
if it goes to 1:900 and not 1:5 I suppose it is seeing the address OK.
This is ingress traffic and you are downloading from an http server?
The way you have set up htb the classes won't share bandwidth.
What does tc -s filter ls dev imq1 show?
Andy.
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [LARTC] tc u32 match !port
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
` (5 preceding siblings ...)
2007-05-05 21:38 ` Andy Furniss
@ 2007-05-06 3:29 ` Salatiel Filho
6 siblings, 0 replies; 8+ messages in thread
From: Salatiel Filho @ 2007-05-06 3:29 UTC (permalink / raw)
To: lartc
On 5/5/07, Andy Furniss <lists@andyfurniss.entadsl.com> wrote:
> Salatiel Filho wrote:
> > On 5/5/07, Andy Furniss <lists@andyfurniss.entadsl.com> wrote:
> >> Salatiel Filho wrote:
> >>
> >> > Well , i am having a few troubles making this work.
> >> > I have some like this in pseudo tc rulez :)
> >> > Root class
> >> > Class 1 parent ROOT prio 0 filter u32 match sport 80 dst
> >> 10.0.0.254
> >> > Class 2 paret ROOT prio 0 filter u32 match dport 22
> >> > Class 3 parent ROOT prio 7 filter u32 match dst 10.0.0.254
> >> > default
> >> >
> >> > Shouldn't traffic from source port 80 and destination 10.0.0.254 go
> >> > through class 1 ?
> >> > I can not make a way to this work, traffic to 10.0.0.254 is always
> >> > falling in to class 3 :/
> >> > Am i missing something ?
> >>
> >> prio 1 is the top prio for filters 0 ends up much lower.
> >>
> >> I think two prio 1s should work in order of entry, but I would use 1 and
> >> 2 to be sure. I have seen reverse order of entry if you don't use prio
> >> at all ...
> >>
> >> tc -s filter ls dev $DEV parent X:Y
> >>
> >> should help you see what's going on.
> >>
> >> Andy.
> >>
> >>
> >>
> >>
> >
> > Changed to this:
> >
> > tc qdisc add dev imq1 root handle 1: htb default 5 r2q 1
> > tc class add dev imq1 parent 1: classid 1:5 htb rate 8kbit ceil 8kbit
> > prio 7 quantum 1500 # DEFAULT
> >
> > tc class add dev imq1 parent 1: classid 1:2 htb rate 1024kbit ceil
> > 1024kbit prio 0 quantum 1500
> > tc filter add dev imq1 parent 1: protocol ip prio 1 u32 match ip dst
> > 192.168.10.1 match ip sport 80 0xffff flowid 1:2 # FROM HTTP DEST TO
> > 192.168.10.1
> >
> > tc class add dev imq1 parent 1: classid 1:3 htb rate 1024kbit ceil
> > 1024kbit prio 0 quantum 1500
> > tc class add dev imq1 parent 1:3 classid 1:900 htb rate 1024kbit ceil
> > 1024kbit prio 7 quantum 1500
> > tc filter add dev imq1 parent 1: protocol ip prio 7 u32 match ip dst
> > 192.168.10.1 flowid 1:900 # ANY OTHER TRAFFIC TO 192.168.10.1
> >
> > But all traffic is still flowing to 1:900 :/
>
> Hmm that should work - as long as imq1 hooks in prerouting and after nat
> if it goes to 1:900 and not 1:5 I suppose it is seeing the address OK.
Yes , IMQ hooks in prerouting after nat , i have a very odd setup.
>
> This is ingress traffic and you are downloading from an http server?
Yeah :)
>
> The way you have set up htb the classes won't share bandwidth.
I know , i need this in this class, like a said a odd setup :)
>
> What does tc -s filter ls dev imq1 show?
Right now i can not copy the output here. But when i took a look i had
ZERO packets going through that class :/
>
> Andy.
>
>
>
>
--
[]'s
Salatiel
"O maior prazer do inteligente é bancar o idiota
diante de um idiota que banca o inteligente".
_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2007-05-06 3:29 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-02 10:36 [LARTC] tc u32 match !port Salatiel Filho
2007-05-02 15:20 ` Alejandro Ramos Encinosa
2007-05-03 12:57 ` Andy Furniss
2007-05-05 17:28 ` Salatiel Filho
2007-05-05 18:56 ` Andy Furniss
2007-05-05 19:21 ` Salatiel Filho
2007-05-05 21:38 ` Andy Furniss
2007-05-06 3:29 ` Salatiel Filho
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.