TC-HTB.SH: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<pre> #!/bin/bash function tc-htb() { UPLINK=$3 DOWNLINK=$4 DEV=$2 case $1 in start) echo "clean existing down- and uplink qdiscs, hide errors" tc qdisc del d…“) |
Thomas (Diskussion | Beiträge) |
||
| Zeile 9: | Zeile 9: | ||
start) | start) | ||
echo "clean existing down- and uplink qdiscs, hide errors" | echo "clean existing down- and uplink qdiscs, hide errors" | ||
| − | tc qdisc del dev $DEV root | + | tc qdisc del dev $DEV root > /dev/null 2>&1 |
| − | tc qdisc del dev $DEV ingress | + | tc qdisc del dev $DEV ingress > /dev/null 2>&1 |
| − | echo set mangle tables | + | echo set mangle tables |
| − | iptables -t mangle -D POSTROUTING -o $DEV -j prio-1 | + | iptables -t mangle -D POSTROUTING -o $DEV -j prio-1 > /dev/null 2>&1 |
| − | iptables -t mangle -F prio-1 | + | echo flush prio-1 |
| + | iptables -t mangle -F prio-1 > /dev/null 2>&1 | ||
| + | echo new prio-1 | ||
iptables -t mangle -N prio-1 | iptables -t mangle -N prio-1 | ||
| + | echo add rule to prio-1 | ||
iptables -t mangle -A prio-1 -d 192.168.240.200 -j MARK --set-mark 10 | iptables -t mangle -A prio-1 -d 192.168.240.200 -j MARK --set-mark 10 | ||
| − | + | echo jump to prio-1 | |
| − | |||
| − | |||
iptables -t mangle -A POSTROUTING -o $DEV -j prio-1 | iptables -t mangle -A POSTROUTING -o $DEV -j prio-1 | ||
echo install root HTB, point default traffic to 20 | echo install root HTB, point default traffic to 20 | ||
| Zeile 27: | Zeile 28: | ||
tc class add dev $DEV parent 1:1 classid 1:10 htb rate $((40*$UPLINK/100))mbit ceil ${UPLINK}mbit prio 1 | tc class add dev $DEV parent 1:1 classid 1:10 htb rate $((40*$UPLINK/100))mbit ceil ${UPLINK}mbit prio 1 | ||
tc class add dev $DEV parent 1:1 classid 1:20 htb rate $((60*$UPLINK/100))mbit ceil ${UPLINK}mbit prio 2 | tc class add dev $DEV parent 1:1 classid 1:20 htb rate $((60*$UPLINK/100))mbit ceil ${UPLINK}mbit prio 2 | ||
| − | |||
| − | |||
echo mangle mark to classes | echo mangle mark to classes | ||
tc filter add dev $DEV protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10 | tc filter add dev $DEV protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10 | ||
| Zeile 51: | Zeile 50: | ||
tc -s qdisc ls dev $DEV | tc -s qdisc ls dev $DEV | ||
tc -s class ls dev $DEV | tc -s class ls dev $DEV | ||
| + | ;; | ||
| + | *) | ||
| + | echo "$0 start DEV UP-MB DOWN-MB | stop | status DEV" | ||
;; | ;; | ||
esac | esac | ||
} | } | ||
| + | |||
</pre> | </pre> | ||
Aktuelle Version vom 1. Oktober 2014, 15:26 Uhr
#!/bin/bash
function tc-htb()
{
UPLINK=$3
DOWNLINK=$4
DEV=$2
case $1 in
start)
echo "clean existing down- and uplink qdiscs, hide errors"
tc qdisc del dev $DEV root > /dev/null 2>&1
tc qdisc del dev $DEV ingress > /dev/null 2>&1
echo set mangle tables
iptables -t mangle -D POSTROUTING -o $DEV -j prio-1 > /dev/null 2>&1
echo flush prio-1
iptables -t mangle -F prio-1 > /dev/null 2>&1
echo new prio-1
iptables -t mangle -N prio-1
echo add rule to prio-1
iptables -t mangle -A prio-1 -d 192.168.240.200 -j MARK --set-mark 10
echo jump to prio-1
iptables -t mangle -A POSTROUTING -o $DEV -j prio-1
echo install root HTB, point default traffic to 20
tc qdisc add dev $DEV root handle 1: htb default 20
echo shape everything at $UPLINK speed
tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}mbit
echo set low an high priority 40% 60% speed
tc class add dev $DEV parent 1:1 classid 1:10 htb rate $((40*$UPLINK/100))mbit ceil ${UPLINK}mbit prio 1
tc class add dev $DEV parent 1:1 classid 1:20 htb rate $((60*$UPLINK/100))mbit ceil ${UPLINK}mbit prio 2
echo mangle mark to classes
tc filter add dev $DEV protocol ip parent 1:0 prio 1 handle 10 fw flowid 1:10
tc filter add dev $DEV protocol ip parent 1:0 prio 2 handle 20 fw flowid 1:20
echo all get stochastic fairness
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
echo ingress qdisc
tc qdisc add dev $DEV handle ffff: ingress
echo ingres filter
tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNLINK}mbit burst 10k drop flowid :1
;;
stop)
echo delete mangle
iptables -t mangle -F prio-1
iptables -t mangle -D POSTROUTING -o $DEV -j prio-1
echo delete qdisc
tc qdisc del dev $DEV root 2> /dev/null > /dev/null
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
;;
status)
tc -s qdisc ls dev $DEV
tc -s class ls dev $DEV
;;
*)
echo "$0 start DEV UP-MB DOWN-MB | stop | status DEV"
;;
esac
}