Re: my shaping rules wont work on nat box

Linux Advanced Routing and Traffic Control

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

 



Markus Schulz wrote:

you must mark your traffic in FORWARD or POSTROUTING chain. OUTPUT is only for locally generated traffic.

I have a 1 mbit upstream cable service (approx 120kbytes/sec)
Ok, here is my plan:

+---------+
| root 1: |
+---------+
    |
+---------------------------------------+
| class 1:1  (1 mbit send speed total)  |
+---------------------------------------+
| | +-------------------+ +--------------------------+ |1:2 Default 1 mbit | |1:3 Capped outbound 105 Kb| +-------------------+ +--------------------------+
                                     |                                  |
                                1:31                               1:32
                            50k ceil 105K               50K ceil 105k
                             prio 2                             prio 1
                           FTP traffic                    Email, ACK

This allows me to set a cap on 1:3 and then divide that cap into 2 classes. 1:31 for lower prio FTP traffic and 1:32 for higher prio email and ACK traffic. This allows the FTP to consume all 105K until i send an email or download a huge file, then the email or ACK from the download can borrow from the ftp due to its higher priority.

All other traffic will be lumped into the default 1:2 (I think)

I will use these rules:

iptables -t mangle -I POSTROUTING -o eth1 -j BW-OUT
iptables -t mangle -A BW-OUT -m mark --mark 0 -j MARK --set-mark 20
iptables -t mangle -A BW-OUT -p tcp --sport 59999 -j MARK --set-mark 26
iptables -t mangle -A BW-OUT -p tcp --sport 50000:51000 -j MARK --set-mark 26 iptables -t mangle -A BW-OUT -p tcp -m length --length :64 -j MARK --set-mark 30
iptables -t mangle -A BW-OUT -m tcp -p tcp --dport 25 -j MARK --set-mark 35

tc qdisc add dev eth1 root handle 1: htb default 20
tc class add dev eth1 parent 1: classid 1:1 htb rate 1mbit
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 1mbit
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 105kbps

tc class add dev eth1 parent 1:3 classid 1:31 htb rate 50kbps ceil 105kbps prio 2 tc class add dev eth1 parent 1:3 classid 1:32 htb rate 50kbps ceil 105kbps prio 1

tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:2 tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 26 fw flowid 1:31 tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 30 fw flowid 1:32 tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 35 fw flowid 1:32

This should work on my linux router on eth1 which is the interface facing the internet.
I am assuming that the POSTROUTING chain is the correct way to do this.

Any issues here?

nix4me
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

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