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/