ustaw klase z predkoscia uploadu i dwie podklasy, jedna wydzielona na ruch z serwera z najnizszym prio i druga domysla gdzie poleci cala reszta ruchu z wyzszym prio. dla obydwu interfejsow.
ograniczenie downloadu do serwera to chyba raczej tylko na imq :)
Cytuj:
#!/bin/bash
TC="/sbin/tc"
INET=eth1
UL=32
ULg1=15
# dodatkowe ograniczenie pasma wychodzacego z routera do internetu w/g uslug
# aby gosc z zewnatrz nie zagarnol calego pasma np. przy odwiedzaniu strony www
# usuwa reguly
$TC qdisc del dev $INET root &>/dev/null
#--------------------------------------- UL
# Tworzymy glowna kolejke na interfejsie
$TC qdisc add dev $INET root handle 10:0 htb r2q 1 default 20
# Glowna klasa
$TC class add dev $INET parent 10:0 classid 10:1 htb rate $((UL*8))kbit ceil $((UL*8))kbit quantum 800 \
burst 0k cburst 0k
# klasa 10
$TC class add dev $INET parent 10:1 classid 10:10 htb rate 1kbit ceil $((ULg1*8))kbit quantum 800 \
burst 0k cburst 0k prio 7
# klasa 20
$TC class add dev $INET parent 10:1 classid 10:20 htb rate 1kbit ceil $((UL*8))kbit quantum 800 \
burst 0k cburst 0k prio 1
# sprawiedliwy podzial uslug
$TC qdisc add dev $INET parent 10:10 esfq perturb 10 quantum 800
$TC qdisc add dev $INET parent 10:20 esfq perturb 10 quantum 800
# -filtrowanie w/g portow zrodlowych wysylanych do netu z routera
# --- pakiety 80 tcp
$TC filter add dev $INET parent 10:0 protocol ip prio 7 u32 match ip sport 80 0xffff \
match ip protocol 6 0xff flowid 10:10
# --- pakiety 999 tcp
$TC filter add dev $INET parent 10:0 protocol ip prio 1 u32 match ip sport 999 0xffff \
match ip protocol 6 0xff flowid 10:10
# --- pakiety 20 tcp
$TC filter add dev $INET parent 10:0 protocol ip prio 5 u32 match ip sport 20 0xffff \
match ip protocol 6 0xff flowid 10:10
# --- pakiety 21 tcp
$TC filter add dev $INET parent 10:0 protocol ip prio 5 u32 match ip sport 21 0xffff \
match ip protocol 6 0xff flowid 10:10
# --- pakiety 25 tcp
$TC filter add dev $INET parent 10:0 protocol ip prio 5 u32 match ip sport 25 0xffff \
match ip protocol 6 0xff flowid 10:10