Traffic Shaping multiple incoming broadband sources?

Linux Advanced Routing and Traffic Control

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

 



Hi, complete newb and I apologise for it.
 
I have a setup where my linux box has multiple broadband connection where I am routing certain things over certain interfaces, currently 2 links eth2 is a 1500/256 and eth3 is a 512/512, eth0 is the link to the LAN for users. What I am trying to do is traffic shape the information going out eth0 to the local users by the interface the traffic arrived from (eth2 or eth3), but I am not having much luck.
 
If i just do it as a normal interface and do the max bandwidth as 2012 max bandwidth it works but the queues are sort of screwed up since different types of traffic are mostly coming in from 1 interface not another etc etc.
 
Here is what i attempted to do.....
 
Each parent queue i tried to apply to the handle the mark of the interface eth2 is a mark of 0x03 and eth3 is a mark of 0x04 (i use the same marks for routing some port related traffic out different interfaces).
 
I have probably made some basic mistake I should be smacked around the head and shoulders repeatedly with a nerf bat for, but I need to ask what i have missed.
 
Or maybe a better way of designing the traffic shaping rules?
 
James
 
# setup root queue
tc qdisc add dev eth0 root handle 1: htb
 
# Setup incoming from eth2 1500k link
tc class add dev eth0 parent 1:0 classid 1:2 htb rate 1350kbit quantum 1500
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 0x03 fw flowid 1:2
tc class add dev eth0 parent 1:2 classid 1:210 htb rate 168kbit ceil 224kbit prio 1 quantum 1500
tc class add dev eth0 parent 1:2 classid 1:220 htb rate 362kbit ceil 640kbit prio 2 quantum 1500
tc class add dev eth0 parent 1:2 classid 1:230 htb rate 640kbit ceil 960kbit prio 3 quantum 1500
tc class add dev eth0 parent 1:2 classid 1:240 htb rate 180kbit ceil 240kbit prio 4 quantum 1500
tc qdisc add dev eth0 parent 1:210 handle 210: sfq perturb 10
tc qdisc add dev eth0 parent 1:220 handle 220: sfq perturb 10
tc qdisc add dev eth0 parent 1:230 handle 230: sfq perturb 10
tc qdisc add dev eth0 parent 1:240 handle 240: sfq perturb 10
tc filter add dev eth0 parent 1:2 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:210
tc filter add dev eth0 parent 1:2 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:210
tc filter add dev eth0 parent 1:2 protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:210
tc filter add dev eth0 parent 1:2 protocol ip prio 10 u32 match ip tos 0x04 0xff flowid 1:220
tc filter add dev eth0 parent 1:2 protocol ip prio 11 u32 match ip tos 0x08 0xff flowid 1:230
tc filter add dev eth0 parent 1:2 protocol ip prio 12 u32 match ip tos 0x02 0xff flowid 1:240
tc filter add dev eth0 parent 1:2 protocol ip prio 12 u32 match ip tos 0x00 0xff flowid 1:240
tc filter add dev eth0 parent 1:2 protocol ip prio 13 handle 0x03 fw flowid 1:220
 
# Setup incoming from eth3 512k link
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 512kbit quantum 1500
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 0x04 fw flowid 1:1
tc class add dev eth0 parent 1:1 classid 1:110 htb rate 168kbit ceil 224kbit prio 1 quantum 1500
tc class add dev eth0 parent 1:1 classid 1:120 htb rate 320kbit ceil 448kbit prio 2 quantum 1500
tc class add dev eth0 parent 1:1 classid 1:130 htb rate 16kbit ceil 224kbit prio 3 quantum 1500
tc class add dev eth0 parent 1:1 classid 1:140 htb rate 64kbit ceil 96kbit prio 4 quantum 1500
tc qdisc add dev eth0 parent 1:110 handle 110: sfq perturb 10
tc qdisc add dev eth0 parent 1:120 handle 120: sfq perturb 10
tc qdisc add dev eth0 parent 1:130 handle 130: sfq perturb 10
tc qdisc add dev eth0 parent 1:140 handle 140: sfq perturb 10
tc filter add dev eth0 parent 1:1 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:110
tc filter add dev eth0 parent 1:1 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:110
tc filter add dev eth0 parent 1:1 protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:110
tc filter add dev eth0 parent 1:1 protocol ip prio 10 u32 match ip tos 0x04 0xff flowid 1:120
tc filter add dev eth0 parent 1:1 protocol ip prio 11 u32 match ip tos 0x08 0xff flowid 1:130
tc filter add dev eth0 parent 1:1 protocol ip prio 12 u32 match ip tos 0x02 0xff flowid 1:140
tc filter add dev eth0 parent 1:1 protocol ip prio 12 u32 match ip tos 0x00 0xff flowid 1:140
tc filter add dev eth0 parent 1:1 protocol ip prio 13 handle 0x04 fw flowid 1:120

 
_______________________________________________
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