All of lore.kernel.org
 help / color / mirror / Atom feed
From: nix4me <nix4me@cfl.rr.com>
To: lartc@vger.kernel.org
Subject: [LARTC] outbound shaping
Date: Fri, 26 Nov 2004 13:25:34 +0000	[thread overview]
Message-ID: <41A72ECE.1020406@cfl.rr.com> (raw)
In-Reply-To: <41A3FECE.4070507@cfl.rr.com>

24.xxx.xxx.xxx
       |router|
192.168.1.1
       |switch|
192.168.1.100 & 192.168.1.101

I am running proftpd on (192.168.1.101) with the port set to 65437 and 
with passive ports set to 50000-51000.  Proftpd allows you to specify a 
range of ports to use on passive transfers.  I need to be able to limit 
my outbound ftp traffic to 40 Kbytes per second.
The only way I can see to do this is limit by marking packets with 
iptables.  I am marking traffic on 65436 which is the active ftp data 
port (65437-1) and 50000-60000.  Outbound shaping is working 
fine....however....inbound ftp traffic is also being shaped to 40K.  I 
have no idea why.

Seems to me the below rules should mark outbound packets and shape only 
outbound packets.  I dont understand why inbound packets are getting shaped.
 
Here is the script:
#!/bin/bash
#shaping passive and active outbound ftp traffic on an internal computer 
without affecting inbound and lan speed

# mark the outbound passive ftp packets on ports 50000-51000
iptables -t mangle -D OUTPUT -o eth0 -j MYSHAPER-OUT 2> /dev/null > 
/dev/null
iptables -t mangle -F MYSHAPER-OUT 2> /dev/null > /dev/null
iptables -t mangle -X MYSHAPER-OUT 2> /dev/null > /dev/null

iptables -t mangle -N MYSHAPER-OUT
iptables -t mangle -I OUTPUT -o eth0 -j MYSHAPER-OUT

iptables -t mangle -A MYSHAPER-OUT -p tcp --sport 65436 -j MARK 
--set-mark 20
iptables -t mangle -A MYSHAPER-OUT -p tcp --sport 50000:51000 -j MARK 
--set-mark 20
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 26
# clear it
tc qdisc del dev eth0 root

#add the root qdisk
tc qdisc add dev eth0 root handle 1: htb default 26

#add main rate limit class
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit

#add leaf classes
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 40kbps
tc class add dev eth0 parent 1:1 classid 1:26 htb rate 100mbit

#filter traffic into classes
tc filter add dev eth0 parent 1:0  prio 0 protocol ip handle 20 fw 
flowid 1:20
tc filter add dev eth0 parent 1:0  prio 0 protocol ip handle 26 fw 
flowid 1:26

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

  parent reply	other threads:[~2004-11-26 13:25 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-24  3:23 [LARTC] outbound shaping nix4me
2004-11-25 20:11 ` Stef Coene
2004-11-25 22:05 ` nix4me
2004-11-26  6:00 ` gypsy
2004-11-26 13:25 ` nix4me [this message]
2004-11-26 13:25 ` nix4me
2004-11-26 21:14 ` gypsy
2004-11-26 22:32 ` nix4me
2004-11-27  0:46 ` Andy Furniss
2004-11-27  0:54 ` nix4me
2004-11-27  1:28 ` Andy Furniss
2004-11-27  4:28 ` gypsy
2004-11-27 13:40 ` nix4me
2004-11-27 14:01 ` nix4me
2004-11-29  3:32 ` Jason Boxman
2004-12-14 10:04 ` Daniel Bartlett

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=41A72ECE.1020406@cfl.rr.com \
    --to=nix4me@cfl.rr.com \
    --cc=lartc@vger.kernel.org \
    /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 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.