All of lore.kernel.org
 help / color / mirror / Atom feed
* [LARTC] HTB and Openvpn
@ 2004-10-06 10:01 Peter Huetmannsberger
  2004-10-06 10:55 ` Andreas Klauer
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Peter Huetmannsberger @ 2004-10-06 10:01 UTC (permalink / raw)
  To: lartc


Hi!

I have just started with traffic shaping, and after hours of reading 
websites, man pages asf. I am still stumped at one problem I have. 

The interface eth0 is attached to the outside world, and I have an openvpn 
tunnel to another part of the organization using eth0 and port 5001.

The idea was that all traffic going through the tunnel would have top 
priority and the rest share what's left. Sounded simple enough. 

Here's what I did: 

tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit burst 15k
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 700kbit ceil 1mbit 
	burst 15k prio 0
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1kbit ceil 28800 
	burst 15k
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1kbit ceil 1mbit 
	burst 15k prio 1
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
U32="tc filter add dev eth0 protocol ip parent 1:0 prio 0 u32"
$U32  match ip dport 5001 0xffff match ip protocol 17 0xff flowid 1:10
$U32  match ip sport 5001 0xffff match ip protocol 17 0xff flowid 1:10
$U32  match ip dport 5001 0xffff match ip protocol 6 0xff flowid 1:10
$U32  match ip sport 5001 0xffff match ip protocol 6 0xff flowid 1:10

As openvpn uses UDP on port 5001 I tried to use the protocol filter with 
the port filter. 

What happens though is that still about two thirds of the traffic goes 
through 1:30 (default), even though a tcpdump -i eth0 only shows UDP 
traffic on port 5001.

Thus I loose 2/3rds of the traffic to the default qdisc and have no 
guaranteed bandwidth. 

1:20 is only for testing purposes and nothing goes over that one.  

Any idea where I could be wrong? I am sure a lot of this is redundant, but 
as I said, I have only just started with this particular subject. 

Many thanks in advance

Peter Huetmannsberger
Admin Center for Contemporary Art, Linz

_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LARTC] HTB and Openvpn
  2004-10-06 10:01 [LARTC] HTB and Openvpn Peter Huetmannsberger
@ 2004-10-06 10:55 ` Andreas Klauer
  2004-10-06 11:09 ` Peter Huetmannsberger
  2004-10-06 13:30 ` Andreas Klauer
  2 siblings, 0 replies; 4+ messages in thread
From: Andreas Klauer @ 2004-10-06 10:55 UTC (permalink / raw)
  To: lartc

Peter Huetmannsberger wrote:
> The idea was that all traffic going through the tunnel would have top 
> priority and the rest share what's left. Sounded simple enough. 

You could use a prio queue for that. Tunnel on band 0, rest on band 1. 
Downside is that there may be nothing left for the rest to share. :-)

> tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit burst 15k

Why make a 10mbit class when it's not used? I find it hard to tell what 
will happen when the rates don't add up properly.

> tc class add dev eth0 parent 1:1 classid 1:10 htb rate 700kbit ceil 1mbit 
> 	burst 15k prio 0

Since the parent has 10mbit which is never fully used, this class will 
most likely always borrow as much as it can. So although it says 700kbit 
it's really a 1mbit class.

> tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1kbit ceil 28800 
> 	burst 15k

This class does not seem to be used at all, why does it exist?

> tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1kbit ceil 1mbit 
> 	burst 15k prio 1

Another 1mbit class. The parent has 10mbit, so there's no reason why it 
shouldn't be able to borrow another mbit, no matter what the actual 
priority of that class is. Am I wrong? :)

> Any idea where I could be wrong?

Guesswork:

The logic of your class structure is flawed.

How fast is your connection to the outside world? I guess it's 1mbit, 
because you set the ceil of your VPN/rest class to 1mbit? However, the 
parent class of those two is a 10mbit class, so both borrow one 1mbit 
from that (they don't share the same one single mbit). In that case, no 
proper shaping is done at all.

10mbit then would be your LAN?

Then how about this class setup:

1:1      10mbit (LAN interface)
|
\--- 1:2 09mbit (LAN only traffic)
\--- 1:3 01mbit (Outside world traffic)
      |
      \--- 1:31 700kbit (VPN)
      \--- 1:32 300kbit (Rest)

This is (about) the kind of setup I use at home.
Make sure your rates add up.

If you intend to give your (Rest) class 1kbit only, throw HTB away and 
use PRIO instead. If (Rest) doesn't need any bandwidth at all, you can 
as well let it starve completely by using prio. And that's much less 
complicated than HTB.

Andreas
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LARTC] HTB and Openvpn
  2004-10-06 10:01 [LARTC] HTB and Openvpn Peter Huetmannsberger
  2004-10-06 10:55 ` Andreas Klauer
@ 2004-10-06 11:09 ` Peter Huetmannsberger
  2004-10-06 13:30 ` Andreas Klauer
  2 siblings, 0 replies; 4+ messages in thread
From: Peter Huetmannsberger @ 2004-10-06 11:09 UTC (permalink / raw)
  To: lartc


Hi, many thanks for your help. 

I have changed my setup accordingly now, however there are still packets 
showing up on the default qdisc when I go through the tunnel, about half 
the packets don't seem to match. 

Did you see anything wrong with the filter rules. Openvpn uses port 5001 
on both ends, and tcpdump -i eth0 shows udp packets going back and forth 
on port 5001 and no other traffic, yet the default counter goes up along 
with the 1:10 qdisc.

Thanks again. 

.peter


_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LARTC] HTB and Openvpn
  2004-10-06 10:01 [LARTC] HTB and Openvpn Peter Huetmannsberger
  2004-10-06 10:55 ` Andreas Klauer
  2004-10-06 11:09 ` Peter Huetmannsberger
@ 2004-10-06 13:30 ` Andreas Klauer
  2 siblings, 0 replies; 4+ messages in thread
From: Andreas Klauer @ 2004-10-06 13:30 UTC (permalink / raw)
  To: lartc

Peter Huetmannsberger wrote:
> I have changed my setup accordingly now, however there are still packets 
> showing up on the default qdisc when I go through the tunnel, about half 
> the packets don't seem to match. 

If there really only is udp traffic on port 5001, I don't see why your 
rules should match that only partially. If they were wrong, they'd 
either match everything or nothing at all, wouldn't they?

> Did you see anything wrong with the filter rules. Openvpn uses port 5001 
> on both ends, and tcpdump -i eth0 shows udp packets going back and forth 
> on port 5001 and no other traffic, yet the default counter goes up along 
> with the 1:10 qdisc.

I don't know tcpdump - when debugging filter rules, I usually adapt 
these rules to iptables and use iptables log with different prefixes to 
distinct which packets matched which rules (and which didn't match at 
all). If nothing shows up this way, then I too am clueless as to what 
might be wrong. Maybe someone else has a suggestion. :)

I don't have any experience with OpenVPN myself, so I don't know what's 
the best way to match OpenVPN traffic. Using port criteria alone, might 
not be waterproof enough, as long as anyone can use these ports for 
anything. Matching both IP and Port would probably be more reliable.

Andreas
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-10-06 13:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-06 10:01 [LARTC] HTB and Openvpn Peter Huetmannsberger
2004-10-06 10:55 ` Andreas Klauer
2004-10-06 11:09 ` Peter Huetmannsberger
2004-10-06 13:30 ` Andreas Klauer

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.