Re: Prioritizing forwarded traffic over locally generated traffic

Linux Advanced Routing and Traffic Control

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

 



On Thursday 23 September 2004 18:09, Neil Greatorex wrote:
> Hi,
>
> I'm a complete newbie at this traffic shaping / QoS stuff so please excuse
> me if this is a silly question. I've searched and searched on Google and I
> just end up confusing myself even more, so I thought I'd post my question
> to this list and see whether someone can help me!

Sure.

> Basically, I am running a Linux box as a NAT router on my home network
> (machine name marvin). I want to use mldonkey on the router box for P2P
> downloads. What I wish to do, is to have any traffic that originates on the
> internal LAN take priority over traffic that is generated from mldonkey on
> marvin. I don't wish to restrict the maximum bandwidth for the P2P
> downloads on a permanent basis if I can help it - so that all the bandwidth
> is used all of the time.

So you'd like to classify p2p traffic from mldonkey (Overnet/Kad/eDonkey) such 
that it is granted a lower priority than other traffic?  Not a problem.  
However, because those three protocols use random ports, you cannot classify 
'edonkey' traffic based on port.  You can use either ipp2p or L7-Filter to 
match these flows based on layer 7 pattern matching, though.

> My plan was to use the PREROUTING and OUTPUT chains of the mangle table to
> mark the packets, and then use some form of qdisc/class structure that will
> prioritise one over the other.

I believe you can use the POSTROUTING chain of the mangle table and nab all 
traffic.  L7-Filter has a nice graphic[1] available.

[1] http://l7-filter.sourceforge.net/PacketFlow.png

> The aim of this is to have an upload that would normally take say 20
> seconds from a machine on the LAN still take 20 seconds when mldonkey is
> uploading - so the NAT traffic will take all the bandwidth away from
> mldonkey. The closer to this aim I can get the better!

That makes sense, although the time interval is relative to the data size and 
protocol being used, so it isn't a useful measure for the rest of us.  What's 
the link size?  What's the file / data size?

> To test implementations, I am using SFTP to upload a file from both a
> machine on my internal network (named slartibartfast), and marvin (the
> router machine) simultaneously. The perfect behaviour would be for the
> upload on slartibartfast to take 20 seconds, and the upload on marvin to
> take 40.

Which implementations have you tried to use?  I'd imagine Wondershaper?  
Others?

> I have tried various setups of qdiscs and classes, using various examples
> from all over the web (including the LARTC FAQ/cookbook) but I haven't been
> able to get anywhere near my aim. All of the attempts I've made have led to
> both uploads taking near enough 40 seconds, as they are both running at 50%
> of the available bandwidth. I would like it to give almost all the
> bandwidth to slartibartfast for the first 20 seconds, and then all the
> bandwidth to marvin for the remaining time.

The problem is likely that you cannot effectively match p2p flows that use the 
'edonkey' protocols.  (Actually, the latest L7-Filter pattern matches do not 
yet match eMule's new Kad network, so you'll still need to either disable 
support for that in mldonkey or deal with latency issues that arise.)

> I would really appreciate it if someone could tell me whether:
> a) This setup is actually possible!

Absolutely!

> b) If using the mangle table chains is correct for this

I believe so.

> c) If it is, the easiest/best/fastest way to implement it. Just some hints
> for the right direction would be fine!

You might explore my guide[2].  I have a setup quite similar to the one you 
wish to implement, except on my router does not generate any traffic.  (I 
have mldonkey running on an internal machine instead.)

[2] http://trekweb.com/~jasonb/articles/traffic_shaping/

> Many thanks in advance,
> Neil Greatorex
>

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

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