From: Andrea Arcangeli <andrea@suse.de>
To: Pascal Schmidt <der.eremit@email.de>
Cc: Larry McVoy <lm@bitmover.com>, linux-kernel@vger.kernel.org
Subject: Re: bandwidth for bkbits.net (good news)
Date: Sun, 31 Aug 2003 03:39:28 +0200 [thread overview]
Message-ID: <20030831013928.GN24409@dualathlon.random> (raw)
In-Reply-To: <Pine.LNX.4.44.0308310256420.16308-100000@neptune.local>
On Sun, Aug 31, 2003 at 03:05:37AM +0200, Pascal Schmidt wrote:
> On Sat, 30 Aug 2003, Larry McVoy wrote:
>
> >> All you have to do is drop the incoming packets if they exceed
> >> a certain bandwidth.
> > If you think we haven't done that, think again.
>
> > We're at the wrong end of the pipe to do that, I'm pretty sure that what
> > you are describing simply won't work.
>
> In a way, you're on the right end of the pipe because the system
> that does your traffic shaping is part of the general network, viewed
> from the machines behind the shaper.
>
> Dropping the packets means that the sending side, at least if we're
> talking TCP, will throttle its sending rate. But, depending on the
> distance in hops to the sender, it may take up to a few seconds for
> this to kick in. So I guess that's why it doesn't work for your
> VoIP case - the senders don't notice fast enough that they should
> slow down.
that's because you don't limit the bkbits.net to a fixed rate. If you
want to give priorities, it won't work well because it takes time to be
effective, but if you rate limit hard both ways it has to work, unless
you're under syn-flood ;) The downside is that you will waste bandwith
(i.e. you will hurt the bkbits.net service even when you don't use
voip), but it will work.
This is what I use normally to limit my brother downloads, and it works
fine for me (though I don't often place calls through adsl myself, it's
basically useless since people only uses cellphones here, and last time
I chekced voip wasn't free for cellphones with my isp).
this is the script:
INTERNAL_NET=eth0
EXTERNAL_NET=ppp0
# External net, prioritize with TOS and low prio traffic in MARK chan 6
tc qdisc add dev $EXTERNAL_NET root handle 1: prio bands 5
tc qdisc add dev $EXTERNAL_NET parent 1:1 handle 10: sfq
tc qdisc add dev $EXTERNAL_NET parent 1:2 handle 20: sfq
tc qdisc add dev $EXTERNAL_NET parent 1:3 handle 30: sfq
tc qdisc add dev $EXTERNAL_NET parent 1:4 tbf rate 16kbit buffer 1600 limit 3000
tc qdisc add dev $EXTERNAL_NET parent 1:5 tbf rate 16kbit buffer 1600 limit 3000
tc filter add dev $EXTERNAL_NET protocol ip parent 1:0 prio 4 handle 6 fw flowid 1:4
tc filter add dev $EXTERNAL_NET protocol ip parent 1:0 prio 5 handle 7 fw flowid 1:5
tc qdisc add dev $INTERNAL_NET root handle 1: prio bands 5
tc qdisc add dev $INTERNAL_NET parent 1:1 handle 10: sfq
tc qdisc add dev $INTERNAL_NET parent 1:2 handle 20: sfq
tc qdisc add dev $INTERNAL_NET parent 1:3 handle 30: sfq
tc qdisc add dev $INTERNAL_NET parent 1:4 tbf rate 64kbit buffer 1600 limit 3000
tc qdisc add dev $INTERNAL_NET parent 1:5 tbf rate 64kbit buffer 1600 limit 3000
tc filter add dev $INTERNAL_NET protocol ip parent 1:0 prio 4 handle 8 fw flowid 1:4
tc filter add dev $INTERNAL_NET protocol ip parent 1:0 prio 5 handle 9 fw flowid 1:5
#tc qdisc add dev $EXTERNAL_NET root sfq perturb 30
btw, the sfq is a great idea to have anyways, to provide fariness to
the traffing going out of your network.
then the below scripts will turn it off/on (so he can get full bandwith
while I'm not at my desk or when he's not doing anything very network
intensive ;)
Basically you should run the below with 'start' before placing the call,
and running 'stop' after the call is complete. It may take a few seconds
to rate limit all the connections but it should work fine.
EXTERNAL_NET=ppp0
INTERNAL_NET=eth0
case "$1" in
start)
iptables -t mangle -A PREROUTING -t mangle -j MARK -s 192.168.1.9 --set-mark 6 -i $INTERNAL_NET
iptables -t mangle -A POSTROUTING -t mangle -j MARK -d 192.168.1.9 --set-mark 8
;;
stop)
iptables -t mangle -D PREROUTING -t mangle -j MARK -s 192.168.1.9 --set-mark 6 -i $INTERNAL_NET
iptables -t mangle -D POSTROUTING -t mangle -j MARK -d 192.168.1.9 --set-mark 8
;;
status)
iptables -t mangle -L -v
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
(he's IP 192.168.1.9 of course, you should replace it with bkbits.net
and tweak the 64kbit output/16k input with the input/output bandwith you
want to give to bkbits)
BTW, I still wonder how to rsync the bkcvs coherently? (and I wonder how
can Peter sync it synchronous too if you don't give him a pair of
sequence numbers or a fcntl lock, personally I prefer the sequence
numbers so it works for pure read only too like the rsync on kernel.org)
Andrea
next prev parent reply other threads:[~2003-08-31 1:39 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <q2SH.AA.3@gated-at.bofh.it>
[not found] ` <qfwI.15D.27@gated-at.bofh.it>
[not found] ` <qgCn.2y4.11@gated-at.bofh.it>
2003-08-30 22:58 ` bandwidth for bkbits.net (good news) Pascal Schmidt
2003-08-30 23:07 ` Larry McVoy
2003-08-31 1:05 ` Pascal Schmidt
2003-08-31 1:39 ` Andrea Arcangeli [this message]
2003-08-31 2:18 ` Jeff Sipek
2003-08-31 2:42 ` Andrea Arcangeli
2003-08-31 2:56 ` Larry McVoy
2003-08-31 13:15 ` Alan Cox
2003-08-31 14:45 ` Andrea Arcangeli
2003-08-31 15:31 ` Alan Cox
2003-08-31 15:43 ` Jörn Engel
2003-08-31 15:50 ` Andrea Arcangeli
2003-08-31 17:06 ` Florian Weimer
2003-08-31 21:21 ` Larry McVoy
2003-09-02 7:06 ` Henning P. Schmiedehausen
2003-09-05 8:10 ` Florian Weimer
2003-09-05 15:35 ` Henning Schmiedehausen
2003-09-05 15:50 ` Florian Weimer
2003-09-05 16:10 ` P
2003-09-05 16:43 ` Ricky Beam
2003-09-07 11:55 ` Henning Schmiedehausen
2003-09-07 18:41 ` Ricky Beam
2003-09-08 8:57 ` [COMPLETELY OFF-TOPIC] " Henning Schmiedehausen
2003-09-02 21:52 ` Ricky Beam
2003-09-05 8:16 ` Florian Weimer
2003-08-31 15:44 ` Andrea Arcangeli
2003-08-31 16:22 ` Larry McVoy
2003-08-31 16:33 ` Andrea Arcangeli
2003-08-31 16:48 ` Larry McVoy
2003-08-31 17:06 ` Andrea Arcangeli
2003-08-31 21:18 ` Larry McVoy
2003-08-31 22:49 ` Andrea Arcangeli
2003-08-31 22:52 ` Alan Cox
2003-08-31 22:58 ` Larry McVoy
2003-08-31 23:02 ` Andrea Arcangeli
2003-08-31 23:07 ` Larry McVoy
2003-08-31 23:22 ` Andrea Arcangeli
2003-09-01 0:12 ` Larry McVoy
2003-09-01 0:19 ` Jamie Lokier
2003-09-01 0:33 ` Larry McVoy
2003-09-01 11:43 ` Alan Cox
2003-09-01 16:13 ` Andrea Arcangeli
2003-09-01 16:24 ` Larry McVoy
2003-09-01 16:28 ` Alan Cox
2003-09-01 16:38 ` Andrea Arcangeli
2003-08-31 23:39 ` Roman Zippel
2003-09-01 0:09 ` Larry McVoy
2003-09-01 0:20 ` Larry McVoy
2003-08-31 22:56 ` Larry McVoy
2003-08-31 23:13 ` Andrea Arcangeli
2003-09-01 0:18 ` Jamie Lokier
2003-09-01 0:25 ` Larry McVoy
2003-09-01 0:28 ` Andrea Arcangeli
2003-09-01 0:50 ` Jamie Lokier
2003-09-01 1:10 ` Andrea Arcangeli
2003-09-01 1:33 ` Larry McVoy
2003-09-02 7:11 ` Henning P. Schmiedehausen
2003-09-02 7:01 ` Henning P. Schmiedehausen
2003-08-31 16:23 ` Larry McVoy
2003-08-31 16:36 ` Andrea Arcangeli
2003-08-31 15:38 ` Jörn Engel
2003-09-02 6:55 ` Henning P. Schmiedehausen
2003-08-31 13:47 ` Pascal Schmidt
2003-08-31 14:51 ` Andrea Arcangeli
2003-09-02 6:53 ` Henning P. Schmiedehausen
2003-08-31 6:30 ` Jörn Engel
[not found] <qn1b.2Pr.29@gated-at.bofh.it>
[not found] ` <qoTh.5mt.11@gated-at.bofh.it>
[not found] ` <rdje.1sH.11@gated-at.bofh.it>
2003-09-02 17:49 ` Pascal Schmidt
2003-08-30 1:29 Larry McVoy
2003-08-30 15:03 ` Larry McVoy
2003-08-30 16:10 ` Jörn Engel
2003-08-31 10:13 ` Toon van der Pas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030831013928.GN24409@dualathlon.random \
--to=andrea@suse.de \
--cc=der.eremit@email.de \
--cc=linux-kernel@vger.kernel.org \
--cc=lm@bitmover.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox