Portál AbcLinuxu, 29. prosince 2025 19:32
. Patchni si kernel a iptables na imq (cca před 7-14 dny jsem o tom tady napsal článek). Kernel zkompiluj klidně s defaultním nastavením imq, tj. počet zařízení 2 a schéma zapojení BA (testuji AB, ale zatím nic moc :-/ ). Mno, až to budeš mít, tak načti modul imq s parametrem pro jedno rozhraní : modprobe imq numdevs=1
iptables -t mangle -A POSTROUTING -j IMQ --todev 0
ip link set imq0 up
)
#!/bin/sh
DEV=imq0
DWLDSPD=1024kbit
DWLDSPDMAX=512kbit
DWLDSPDMIN=56kbit
TC='/usr/local/sbin/tc'
IPT='/usr/local/sbin/iptables'
# smaže kořen bývalého stromu
$TC qdisc del dev $DEV root > /dev/null > /dev/null
# vytvoříme nový kořen
$TC qdisc add dev $DEV root handle 1:0 htb default 150
# nastavíme rychlost pro kořen tohoto stromu
$TC class add dev $DEV parent 1:0 classid 1:1 htb rate ${DWLDSPD}
#vytvoříme jednotlivé třídy
$TC class add dev $DEV parent 1:1 classid 1:101 htb rate ${DWLDSPDMIN} ceil ${DWLDSPDMAX}
$TC class add dev $DEV parent 1:1 classid 1:102 htb rate ${DWLDSPDMIN} ceil ${DWLDSPDMAX}
$TC class add dev $DEV parent 1:1 classid 1:150 htb rate ${DWLDSPDMIN} ceil ${DWLDSPDMAX}
#na jednotlivé třídy hodiíme sfq / popř. esfq
$TC qdisc add dev $DEV parent 1:101 handle 101:0 sfq perturb 10
$TC qdisc add dev $DEV parent 1:102 handle 102:0 sfq perturb 10
$TC qdisc add dev $DEV parent 1:150 handle 150:0 esfq perturb 10
#omarčíme ipéčka
$IPT -t mangle -A POSTROUTING -j MARK --set-mark 150
$IPT -t mangle -A POSTROUTING -d 192.168.2.11 -j MARK --set-mark 101
$IPT -t mangle -A POSTROUTING -d 192.168.2.12 -j MARK --set-mark 102
#a filtrujem ...
$TC filter add dev $DEV parent 1:0 protocol ip handle 101 fw classid 1:101
$TC filter add dev $DEV parent 1:0 protocol ip handle 102 fw classid 1:102
$TC filter add dev $DEV parent 1:0 protocol ip handle 150 fw classid 1:150
Tak, nejspíš to nebude fungovat, ale ty si to jistě už dopiluješ sám, ne? 
. Toto není zrovna jednoduchá věc a nějaký klikací SW, který by to všechno zvládnul nejni
. Když ti daný postup typu "nastuduj si" je proti srsti, tak si někoho zaplať, nebo přejdi na něco jiného ... bla, bla, bla ...toto je stále dokola a čím dál víc unavující :-/
In file included from trickled.c:33:
/usr/include/netinet/in.h:136: error: two or more data types in declaration specifiers
make: *** [trickled.o] Error 1
Jdu se pustit do IMQ 
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.