OpenWRT topic - OS, alkalmazások fórum

üzenetek

hozzászólások


Tamy
(senior tag)

Átnyálaztam, de hazudnék, ha azt mondanám sokat tanultam belőle. Annyit megcsináltam a leírtak alapján, hogy letiltogattam amire úgy gondoltam, hogy nincs szükség, meg egy sort hozzáadtam: "tc qdisc add dev "$DEV" egress" (valószínűleg az is hülyeség), de ettől persze még nem fog működni :(

#!/bin/sh

insmod cls_fw >/dev/null 2>&1
insmod cls_u32 >/dev/null 2>&1
insmod sch_htb >/dev/null 2>&1
insmod sch_sfq >/dev/null 2>&1
insmod sch_ingress >/dev/null 2>&1

DEV="eth0.2"
LIMIT_IPS="192.168.2.100"
# LIMIT_DOWN=200
# LIMIT_DOWN_BURST=400
LIMIT_UP=400

start() {
tc qdisc del dev "$DEV" root
# tc qdisc add dev "$DEV" root handle 77: htb
# tc class add dev "$DEV" parent 77: classid 77:1 htb rate 20000kbit
# tc class add dev "$DEV" parent 77:1 classid 77:10 htb rate ${LIMIT_DOWN}kbit ceil ${LIMIT_DOWN_BURST}kbit prio 2
tc qdisc add dev "$DEV" parent 77:10 handle 78: sfq perturb 10
# tc qdisc add dev "$DEV" ingress
tc qdisc add dev "$DEV" egress
tc filter add dev "$DEV" parent 77: protocol ip prio 2 handle 80 fw flowid 77:10
tc filter add dev "$DEV" parent ffff: protocol ip prio 1 handle 79 fw police rate ${LIMIT_UP}kbit mtu 6k burst 6k drop

for ip in $LIMIT_IPS; do
iptables -t mangle -I PREROUTING -s $ip -j MARK --set-mark 79
iptables -t mangle -I POSTROUTING -d $ip -j MARK --set-mark 80
done
}

stop() {
tc qdisc del dev $DEV root
iptables -F -t mangle
}

restart() {
stop
sleep 1
start
}

show() {
tc -s qdisc ls dev $DEV
}

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 $DEV:"
show
echo ""
;;

*)
echo "Usage: $0 {start|stop|restart|show}"
;;
esac

exit 0

[ Szerkesztve ]

üzenetek