Cytuj:
Błądzisz synu. To jest już dawno nieaktualne. i co ma do tego imq?
TATO! nie opieprzaj syna

, mozna na imq i po eth, .. wola Pana.., jak kto koncepcje ma.., nie sledze "promocji" qos-a dla nnd, rchtb tutaj przez wielu uzywanego, czy nice czy cos innego..,tak wiec nie wiem o jakichś tam problemach rozwiązanych czy nie.. ,, i tak kazdy zastosuje cos co mu odpowiadac, czy dzialac bedzie.
No, ale tak na serio , stosowalem swego czasu cos w stylu (przyklad dla download dla lan + oczywiscie SQUID wziety pod uwage):
#===========================================================
# wyjscie IF_LAN
#===========================================================
echo
echo -e "Output dev = \e[1;32m$INTDEV\e[0m"
$TC qdisc add dev $INTDEV root handle 2: htb default 2
for x in $INTNET ; do
echo -e "Setting LAN $x downlink speed to = \e[1;31m${DOWNLINK_SPEED_LAN}\e[0m"
done
$TC class add dev $INTDEV parent 2: classid 2:2 htb rate ${DOWNLINK_SPEED_ALL} burst 10k prio 1 quantum $quant
$TC class add dev $INTDEV parent 2: classid 2:1 htb rate ${DOWNLINK_SPEED_LAN} burst 20k prio 2 quantum $quant
$TC qdisc add dev $INTDEV parent 2:1 handle 3: esfq perturb 20 limit 128 depth 128 hash classic
for x in $INTNET ; do
$TC filter add dev $INTDEV parent 2: protocol ip pref 1 u32 match ip src $x flowid 2:1
done
$TC filter add dev $INTDEV parent 2: protocol ip pref 1 u32 match ip protocol 1 0xff flowid 2:1
$TC filter add dev $INTDEV parent 2: protocol ip pref 2 u32 match ip protocol 6 0xff match ip sport 80 0xffff match ip tos ${SQUID_HIT_TOS} 0xff flowid 2:1
$TC filter add dev $INTDEV parent 2: protocol ip pref 2 u32 match ip protocol 6 0xff match ip sport ${PROXY_PORT} 0xffff match ip tos ${SQUID_HIT_TOS} 0xff flowid 2:1
K=2
grep "^HOST" $CONFIG_QOS | grep -v "^#" | awk '{ print $2, $3, $4, $5, $6 }' | while read IP DL_RATE DL_CEIL PRIO UL_RATE ; do
echo -e "Setting $IP downlink speed to = \e[1;31m$DL_RATE/$DL_CEIL\e[0m with prio = \e[1;31m$PRIO\e[0m"
$TC class add dev $INTDEV parent 2:2 classid 2:${K}0 htb rate $DL_RATE burst 6k prio $PRIO ceil $DL_CEIL quantum $quant
$TC qdisc add dev $INTDEV parent 2:${K}0 handle ${K}0: esfq perturb 20 limit 128 depth 128 hash dst
$TC filter add dev $INTDEV parent 2: protocol ip pref 2 u32 match ip dst $IP flowid 2:${K}0
((K++))
done
#===========================================================
# wejscie IF_LAN
#===========================================================
echo
echo -e "Input dev = \e[1;32m$INTDEV\e[0m"
$TC qdisc add dev $INTDEV handle ffff: ingress
for x in $INTNET ; do
echo -e "Setting LAN $x uplink speed to = \e[1;31m${UPLINK_SPEED_LAN}\e[0m"
done
for x in $INTNET ; do
$TC filter add dev $INTDEV parent ffff: protocol ip pref 1 u32 match ip dst $x police rate ${UPLINK_SPEED_LAN} burst 10k drop flowid :1
done
$TC filter add dev $INTDEV parent ffff: protocol ip pref 1 u32 match ip protocol 1 0xff police rate ${UPLINK_SPEED_LAN} burst 10k drop flowid :1
K=2
#ludki-pętla
grep "^HOST" $CONFIG_QOS | grep -v "^#" | awk '{ print $2, $3, $4, $5, $6 }' | while read IP DL_RATE DL_CEIL PRIO UL_RATE ; do
echo -e "Setting $IP uplink speed to = \e[1;31m$UL_RATE\e[0m"
$TC filter add dev $INTDEV parent ffff: protocol ip pref 2 u32 match ip src $IP police rate $UL_RATE burst 10k drop flowid :${K}
((K++))
done
}
to tylko taki przyklad (poglądowo), proste rozwiazanie, dzialajace dobrze, nie wymagajace "klepania linijek", "bawienia" sie w layer czy ipp2p bo dziala to jak nalezy (o ingress mozna w necie znaleźć)(do tego trzeba config wyliczajacy zmienne jeszcze - w tym przypadku ), a jesli MISS to idzie kolejka ludka zgodnie z CONFIG QOS, czyli awk '{ print $2, $3, $4, $5, $6 }' | while read IP DL_RATE DL_CEIL PRIO UL_RATE ), i nie trzeba bawic sie w
mark-"owanie" czy cos innego jeszcze, wszystko samo sie robi

, no i analogicznie uplink do tego trza , no i jest gicior , squdzik idzie elegant (moze nie zgodnie z postem do konca, ale moze komus przydać sie) lub nasunac pomysl na indywidualna koncepcje, aaach... ide spac