Vyhrazování pásem - HTB

Martin Lebeda mlebeda na centrum.cz
Úterý Říjen 12 10:17:41 CEST 2004


hoj lidi,

snažím se vyhradit kanály pro příchozí provoz, ale nedaří se mi. Četl
jsem článek na Root (a předtím jsem zkoušel i CBQ a démona shaperd) i
archív konference. Struktura je jednoduchá - uživatelé protokolu SSH
(a později i telnet a rdesktop) nemají poznat, zda je linka zatížená
a mají mít vždy absolutní přednost před zbývajícím provozem. Pokusil
jsem se to provést pomocí HTB na jádře 2.4.26 a tc utility z
iproute2-ss991023, jenže požadovaný efekt se nedostavil. Sice je
vidět mírné zlepšení, ale odezva na znak je stále asi 1/2sec - to
nestačí, mám 512kbit linku a pokud vyhradím pro výše uvedený provoz
část linky, bez půjčování kapacity, jedou terminály ok.

Moje nastavení síťě (zkráceno):
./tc -s -d qdisc ls
 qdisc pfifo_fast 0: dev ipsec0 [Unknown qdisc, optlen=20]
 qdisc sfq 20: dev eth0 quantum 1514b limit 128p flows 128/1024
perturb 3sec
 qdisc sfq 10: dev eth0 quantum 1514b limit 128p flows 128/1024
perturb 3sec
 qdisc htb 1: dev eth0 r2q 10 default 30 direct_packets_stat 160099
ver 3.16
 qdisc pfifo_fast 0: dev eth1 [Unknown qdisc, optlen=20]
 qdisc pfifo_fast 0: dev tap0 [Unknown qdisc, optlen=20]
 qdisc pfifo_fast 0: dev tap1 [Unknown qdisc, optlen=20]

Nastavovací script:

./tc qdisc del dev eth0 root
./tc qdisc add dev eth0 root handle 1 htb default 30
./tc class add dev eth0 parent 1: classid 1:2 htb rate 510Kbit \
    burst 15k

./tc class add dev eth0 parent 1:2 classid 1:10 htb rate 256Kbit \
   ceil 510Kbit burst 15k prio 1
./tc qdisc add dev eth0 parent 1:10 handle 10 sfq perturb 3
./tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match \
   ip sport 22 0xffff match ip dport 22 0xffff classid 1:10
./tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match \
   ip dport 22 0xffff match ip sport 22 0xffff classid 1:10

./tc class add dev eth0 parent 1:2 classid 1:20 htb rate 256kbit \
   ceil 500kbit burst 15k prio 9
./tc qdisc add dev eth0 parent 1:20 handle 20 sfq perturb 3
./tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 match \
   ip src 192.168.10.0/24 classid 1:20
./tc filter add dev eth0 protocol ip parent 1:0 prio 5 u32 match \
   ip dst 192.168.10.0/24 classid 1:20

Co dělám špatně? Poslední rada kterou jsem dostal od přítele :-) bylo
použij ALTQ na FreeBSD, linux to neumí - je to pravda? Pomohu si
použitím FreeBSD?

-- 
Martin Lebeda
  ...nebruc, taky jsi se ucil...


Další informace o konferenci Linux