http://lartc.org/wondershaper/ On 5/24/07, beere@xxxxxxxxx <beere@xxxxxxxxx> wrote:
I can send you mine, it's a modified version of one I found somewhere on the net to be able to limit bandwith on a linux router. I did no cleaning up or anything #!/bin/bash # tc uses the following units when passed as a parameter. # kbps: Kilobytes per second # mbps: Megabytes per second # kbit: Kilobits per second # mbit: Megabits per second # bps: Bytes per second # Amounts of data can be specified in: # kb or k: Kilobytes # mb or m: Megabytes # mbit: Megabits # kbit: Kilobits # To get the byte figure from bits, divide the number by 8 bit # # # Name of the traffic control command. TC=/sbin/tc IPTABLES=/sbin/iptables # The network interface we're planning on limiting bandwidth. IF1=eth1.106 # Interface IF2=eth0 # Interface # Download limit (in mega bits) DNLD=100mbit # DOWNLOAD Limit # Upload limit (in mega bits) UPLD=100mbit # UPLOAD Limit # IP address of the machine we are controlling #IP=81.18.0.0/24 #Host IP #IP=0.0.0.0/0 #Host IP # Filter options for limiting the intended interface. IN="$TC filter add dev $IF2 protocol ip parent 1:0 prio 1" OUT="$TC filter add dev $IF1 protocol ip parent 2:0 prio 1" start() { # All traffic originating from IF1 gets marked $IPTABLES -t mangle -D PREROUTING -i $IF1 -j MARK --set-mark 106 >/dev/null 2>&1 $IPTABLES -t mangle -A PREROUTING -i $IF1 -j MARK --set-mark 106 # INBOUND matches on fwmark 106 and gets shaped when it leaves the IF2 interface $TC qdisc add dev $IF2 root handle 1: htb default 30 $TC class add dev $IF2 parent 1: classid 1:1 htb rate $DNLD $IN handle 106 fw flowid 1:1 printf "\n" printf "Shaping traffic incoming on $IF1 ==> $IF2 to max. $DNLD" # OUTBOUND matches all traffic heading out IF1 gets shaped, no filter needed $TC qdisc add dev $IF1 root handle 2: htb default 1 $TC class add dev $IF1 parent 2: classid 2:1 htb rate $UPLD # $OUT u32 match ip src $IP flowid 2:1 printf "\n" printf "Shaping traffic incoming on $IF2 ==> $IF1 to max. $UPLD\n" # The first line creates the root qdisc, and the next line # creates a child qdiscs that respectively are used to shape download # and upload bandwidth. The third line defines a filter if required. } stop() { # Stop the bandwidth shaping. $TC qdisc del dev $IF1 root $TC qdisc del dev $IF2 root $IPTABLES -t mangle -D PREROUTING -i $IF1 -j MARK --set-mark 106 } restart() { # Self-explanatory. stop sleep 1 start } show() { # Display status of traffic control status. # $TC -s qdisc ls dev $IF1 $TC -s qdisc ls dev $IF2 } case "$1" in start) echo -n "Starting bandwidth shaping: " start echo "done" ;; stop) echo -n "Stopping bandwidth shaping: " stop echo "done" ;; restart) echo -n "Restarting bandwidth shaping: " restart echo "done" ;; show) echo "Bandwidth shaping status for $IF2:" show echo "" ;; *) pwd=$(pwd) echo "Usage: tc.bash {start|stop|restart|show}" ;; esac exit 0 From: lartc-bounces@xxxxxxxxxxxxxxx [mailto:lartc-bounces@xxxxxxxxxxxxxxx] On Behalf Of Arman Sent: donderdag 24 mei 2007 12:46 To: lartc@xxxxxxxxxxxxxxx Subject: tc-htb traffic shaping script Hi, Is there any tested good HTB script for traffic shaping available like as that of CBQ available at. http://freshmeat.net/projects/cbq.init I am n new bie and need to work on htb. -- Regards, M Arman _______________________________________________ LARTC mailing list LARTC@xxxxxxxxxxxxxxx http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
-- Marco _______________________________________________ LARTC mailing list LARTC@xxxxxxxxxxxxxxx http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc