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@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
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@mailman.ds9a.nl
[mailto:lartc-bounces@mailman.ds9a.nl] On Behalf Of Arman
Sent: donderdag 24 mei 2007 12:46
To: lartc@mailman.ds9a.nl
Subject: [LARTC] 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@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc
http://lartc.org/wondershaper/ On 5/24/07, beere@vertis.nl <beere@vertis.nl> 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@mailman.ds9a.nl [mailto:lartc-bounces@mailman.ds9a.nl] > On Behalf Of Arman > Sent: donderdag 24 mei 2007 12:46 > To: lartc@mailman.ds9a.nl > Subject: [LARTC] 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@mailman.ds9a.nl > http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc > >-- Marco