Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- eth="eth0"
- ifb="ifb0"
- DOWNLOAD="95"
- UPLOAD="95"
- start() {
- /bin/ifconfig $ifb up
- /sbin/tc qdisc add dev $eth root handle 1: htb default 50
- /sbin/tc class add dev $eth parent 1: classid 1:1 htb rate $[$UPLOAD-1]Mbit ceil $[$UPLOAD-1]Mbit burst 15k
- /sbin/tc class add dev $eth parent 1:1 classid 1:10 htb rate $[$UPLOAD*4]Kbit ceil $[$UPLOAD*6]Kbit burst 2k prio 0
- /sbin/tc class add dev $eth parent 1:1 classid 1:20 htb rate $[$UPLOAD*6]Kbit ceil $[$UPLOAD*8]Kbit burst 2k prio 1
- /sbin/tc class add dev $eth parent 1:1 classid 1:30 htb rate $[$UPLOAD-20]Mbit ceil $[$UPLOAD-3]Mbit burst 128k prio 2
- /sbin/tc class add dev $eth parent 1:1 classid 1:40 htb rate $[$UPLOAD/10]Mbit ceil $[$UPLOAD-3]Mbit burst 15k prio 3
- /sbin/tc class add dev $eth parent 1:1 classid 1:50 htb rate $[$UPLOAD/10]Mbit ceil $[$UPLOAD-10]Mbit burst 15k prio 7
- /sbin/tc qdisc add dev $eth parent 1:10 handle 10: sfq perturb 10
- /sbin/tc qdisc add dev $eth parent 1:20 handle 20: sfq perturb 10
- /sbin/tc qdisc add dev $eth parent 1:30 handle 30: sfq perturb 10
- /sbin/tc qdisc add dev $eth parent 1:40 handle 40: sfq perturb 10
- /sbin/tc qdisc add dev $eth parent 1:50 handle 50: sfq perturb 10
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 1 u32 match ip dport 53 0xffff flowid 1:10
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 1 u32 match ip sport 53 0xffff flowid 1:10
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 2 u32 match ip protocol 1 0xff flowid 1:20
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 2 u32 match ip sport 8143 0xffff flowid 1:30
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 2 u32 match ip dport 8143 0xffff flowid 1:30
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 3 u32 match ip sport 80 0xffff flowid 1:30
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 3 u32 match ip dport 80 0xffff flowid 1:30
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 4 u32 match ip sport 443 0xffff flowid 1:30
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 4 u32 match ip dport 443 0xffff flowid 1:30
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 4 u32 match ip sport 5938 0xffff flowid 1:40
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 4 u32 match ip dport 5938 0xffff flowid 1:40
- /sbin/tc filter add dev $eth parent 1:0 protocol ip prio 7 u32 match ip src 172.16.81.97/32 flowid 1:50
- /sbin/tc qdisc add dev $eth handle ffff: ingress
- /sbin/tc filter add dev $eth parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev $ifb
- #------------------------------------#
- /sbin/tc qdisc add dev $ifb root handle 1: htb default 50
- /sbin/tc class add dev $ifb parent 1: classid 1:1 htb rate $[$DOWNLOAD-1]Mbit ceil $[$DOWNLOAD-1]Mbit burst 15k
- /sbin/tc class add dev $ifb parent 1:1 classid 1:10 htb rate $[$DOWNLOAD*4]Kbit ceil $[$DOWNLOAD*6]Kbit burst 2k prio 0
- /sbin/tc class add dev $ifb parent 1:1 classid 1:20 htb rate $[$DOWNLOAD*6]Kbit ceil $[$DOWNLOAD*8]Kbit burst 2k prio 1
- /sbin/tc class add dev $ifb parent 1:1 classid 1:30 htb rate $[$DOWNLOAD-20]Mbit ceil $[$DOWNLOAD-3]Mbit burst 128k prio 2
- /sbin/tc class add dev $ifb parent 1:1 classid 1:40 htb rate $[$DOWNLOAD/10]Mbit ceil $[$DOWNLOAD-3]Mbit burst 15k prio 3
- /sbin/tc class add dev $ifb parent 1:1 classid 1:50 htb rate $[$DOWNLOAD/10]Mbit ceil $[$DOWNLOAD-10]Mbit burst 15k prio 7
- /sbin/tc qdisc add dev $ifb parent 1:10 handle 10: sfq perturb 10
- /sbin/tc qdisc add dev $ifb parent 1:20 handle 20: sfq perturb 10
- /sbin/tc qdisc add dev $ifb parent 1:30 handle 30: sfq perturb 10
- /sbin/tc qdisc add dev $ifb parent 1:40 handle 40: sfq perturb 10
- /sbin/tc qdisc add dev $ifb parent 1:50 handle 50: sfq perturb 10
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 1 u32 match ip sport 53 0xffff flowid 1:10
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 1 u32 match ip dport 53 0xffff flowid 1:10
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:20
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 1 u32 match ip sport 8143 0xffff flowid 1:30
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 1 u32 match ip dport 8143 0xffff flowid 1:30
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 2 u32 match ip sport 80 0xffff flowid 1:30
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 2 u32 match ip dport 80 0xffff flowid 1:30
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 3 u32 match ip sport 443 0xffff flowid 1:30
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 3 u32 match ip dport 443 0xffff flowid 1:30
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 1 u32 match ip sport 5938 0xffff flowid 1:40
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 1 u32 match ip dport 5938 0xffff flowid 1:40
- /sbin/tc filter add dev $ifb parent 1:0 protocol ip prio 7 u32 match ip dst 172.16.81.97/32 flowid 1:50
- echo "Shape on $eth and $ifb was started"
- }
- stop() {
- /sbin/tc qdisc del dev $ifb root 2>/dev/null
- /sbin/tc qdisc del dev $eth handle ffff: ingress 2>/dev/null
- /sbin/tc qdisc del dev $eth root 2>/dev/null
- /bin/ifconfig $ifb down
- echo "Shape on $eth and $ifb is down"
- }
- restart() {
- stop
- start
- }
- $@
Advertisement
Add Comment
Please, Sign In to add comment