Re: Weighted packet shaping?

Linux Advanced Routing and Traffic Control

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

 



> Mark Williams (MWP) wrote:
> >Ok.
> >
> >My Linux (which is connected to the ADLS modem) box runs HTTP, FTP, etc 
> >services and also runs bittorrent, edonkey,
> >etc.
> >I have two other PCs (both windows) which connect to the internet via the 
> >Linux
> >box (MASQ).
> >
> >Now, i want data like SSH, ICMP, DNS from any source to ppp0 to get top 
> >priority.
> >I want the two windows PCs to get 2nd priority.
> >I want services to get 3rd, and the rest (torrents, etc) to get the lowest
> >priority.
> >
> >I have this setup atm using HTB and SFQ.
> >
> >Now this is what happens:
> >I have bittorrent going as fast as possible outbound.
> >I then use my linux box to send FTP data over the same link.
> >
> >Im finding that packet shaping is splitting the outbound bandwidth 
> >(256kbit)
> >equally between the two.
> >
> >This is not what im after...  want the windows box to take more bandwidth 
> >off
> >bittorrent than 50% like it is atm.
> >
> >Does this explain my problem better?
> 
> Yes, you can do this with htb.
> 
> You'll need to back off a bit from 256kbit to allow for overheads - this 
> is tweakable with patch Ed posted to the list - you could also shape 
> incoming, but you would need IMQ which involves patching/doing new kernel.
> 
> For now try making a parent with rate and ceil 220kbit.
> Have 4 child/leaf classes like - (assuming 1 is highest priority)
> 
> class 1 rate 120 ceil 220 prio 0
> class 2 rate 50 ceil 220 prio 1
> class 3 rate 25 ceil 220 prio 2
> class 4 rate 25 ceil 220 prio 3
> 
> There are other tweaks you can try, it depends how much you care about 
> latency. You could also share the windows boxes bandwidth by IP.
> 
> I don't do it quite like the above - so if it doesn't work, say and I'll 
> think again.

Well im currently using:

    #root device
    $TC qdisc add dev $INTERFACE root handle 1: htb default 25

    #root class
    $TC class add dev $INTERFACE parent 1: classid 1:1 htb rate 256kbit

    #20 - ICMP, DNS, SYN, SSH
    $TC class add dev $INTERFACE parent 1:1 classid 1:20 htb rate 128kbit ceil 256kbit prio 1
    $TC qdisc add dev $INTERFACE parent 1:20 handle 20: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20

    #21 - HTTP/FTP out
    $TC class add dev $INTERFACE parent 1:1 classid 1:21 htb rate 128kbit ceil 256kbit prio 2
    $TC qdisc add dev $INTERFACE parent 1:21 handle 21: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 21 fw flowid 1:21

    #22 - All cool.comp traffic
    $TC class add dev $INTERFACE parent 1:1 classid 1:22 htb rate 128kbit ceil 256kbit prio 3
    $TC qdisc add dev $INTERFACE parent 1:22 handle 22: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22

    #23 - All ian.comp traffic
    $TC class add dev $INTERFACE parent 1:1 classid 1:23 htb rate 64kbit ceil 256kbit prio 4
    $TC qdisc add dev $INTERFACE parent 1:23 handle 23: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 23 fw flowid 1:23

    #24 - HTTP/FTP in
    $TC class add dev $INTERFACE parent 1:1 classid 1:24 htb rate 64kbit ceil 256kbit prio 5
    $TC qdisc add dev $INTERFACE parent 1:24 handle 24: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 24 fw flowid 1:24

    #25 - Everything else
    $TC class add dev $INTERFACE parent 1:1 classid 1:25 htb rate 20kbit ceil 64kbit prio 8
    $TC qdisc add dev $INTERFACE parent 1:25 handle 25: sfq perturb 10
    $TC filter add dev $INTERFACE parent 1:0 prio 0 protocol ip handle 25 fw flowid 1:25

Ill do some more tests and link to a rates graph when done.
It should illustrate the problem.

Thanks again,
 Mark.
_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

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