Let's say I have two Ethernet interfaces (eth0 and eth1).  I am trying to shape multiple TCP connections to 56K from one 100MBit pipe.

CLIENT  ----------  ETH0  --------  ETH1  ----------  SERVER
192.168.1.1     192.168.1.254   172.16.1.254      172.16.1.1

For example, I want the client to be able to make multiple TCP connections (.1.1:80, .1.1:8081, .1.1:8082) all at 56K from the server, which obviously has the ability to deliver 100MBit.

My CBQ file looks like so:
        DEVICE=eth0,100MBit,10Mbit
        RATE=56Kbit
        WEIGHT=5Kbit
        PRIO=5
        RULE=192.168.1.1/24:80
        RULE=192.168.1.1/24:8081
        RULE=192.168.1.1/24:8082
        RULE=192.168.1.1/24:8083
        RULE=192.168.1.1/24:8084
        RULE=192.168.1.1/24:8085

Is it possible to use iptables to make all the connections' destination ports appear to be port 80?  How, and to which interface, should I apply the rules?

Also, when is CBQ applied?  Prerouting? Postrouting? Is it applied pre- or post-routing specific to the interface, or to the kernel?


Tom Masse
Engineer, Network Operations
Gómez, Inc.

T 781.768.2134
F 781.466.1434

Maximize Your Internet Channel Effectiveness
http://www.gomez.com/