From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Furniss Date: Sun, 18 Jan 2004 18:53:57 +0000 Subject: Re: [LARTC] HTB + ESFQ in nat router for shape incoming by ip Message-Id: <04011818535700.00676@amd> List-Id: References: <400A82DF.7060003@rosanegra.org> In-Reply-To: <400A82DF.7060003@rosanegra.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: lartc@vger.kernel.org On Sunday 18 January 2004 12:58 pm, JaNzUn wrote: > Hi, i=B4ve read about this problem but i didn=B4t find any solution. > > I have a router with nat like that: > internet - eth0 - Router - eth1 - Lan > > I made a htb script for shaping outgoing in eth0 and it works great. The > problem begin with the incoming traffic... Like other people said, when > somebody in the lan uses the tipical download accelerator, the line is > out because the bandwidth is divided by conexions. So, i decided to use > htb (with one class, filter and iptables mark per ip) for shaping an > ceil traffic if it isn=B4t in use. All ok. Now i need to shape by ip, so i > use esfq... but nothing happend. > A few lines of my script can be read here: (Only for 2 ips, there are a > lot of them, but i do the test with two machines, one with daccelerator > an other with simple download). > > $tc qdisc add dev eth1 root handle 2:0 htb default 20 > $tc class add dev eth1 parent 2:0 classid 2:2 htb rate 10mbit ceil > 100mbit $tc class add dev eth1 parent 2:2 classid 2:9 htb rate 10mbit > prio 2 $tc class add dev eth1 parent 2:2 classid 2:10 htb rate $DOWN > ceil $TDOWN prio 2 > $tc class add dev eth1 parent 2:2 classid 2:11 htb rate $DOWN ceil > $TDOWN prio 2 > $tc class add dev eth1 parent 2:2 classid 2:20 htb rate 10kbit ceil > 100mbit prio 2 > > $tc qdisc add dev eth1 parent 2:10 handle 10: esfq perturb 10 hash dst > $tc qdisc add dev eth1 parent 2:11 handle 11: esfq perturb 10 hash dst > > $tc filter add dev eth1 parent 2:0 protocol ip prio 2 handle 1 fw > classid 2:9 > $tc filter add dev eth1 parent 2:0 protocol ip prio 2 handle 10 fw > classid 2:10 > $tc filter add dev eth1 parent 2:0 protocol ip prio 2 handle 11 fw > classid 2:11 > > iptables -A POSTROUTING -t mangle -o eth1 -p tcp --destination > 192.168.1.88 -j MARK --set-mark 10 > iptables -A POSTROUTING -t mangle -o eth1 -p tcp --destination > 192.168.1.222 -j MARK --set-mark 11 > > I know rates are a bit stranges, but its only a test and htb works > fine. The problem is the esfq, not work! > > Has anybody make to work esfq? In this case, could you put a real script > with it? > Or... anybody knows any metod to split incoming traffic by ip testing > and working? > > Thanks. I think if you want esqf to do dst filtering, then you should use htb to=20 seperate interactive traffic and have just one class for everyones bulk=20 traffic with one esqf attached. You are already splitting with htb the ips = to 10 and 11 then giving them one queue each - they should go to one esqf. I'm not sure, but shouldn't you use flowid rather than classid in the $tc=20 filter add lines. Andy. _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/