HTB-Link sharing - nefunguje s "vypujcovanim"

Lumir Unzeitig lumir.unzeitig na gatc.com
Čtvrtek Duben 11 11:43:45 CEST 2002


Dobry den,

pokousel jsem se rozdelit provoz na jednom rozhrani na 2 casti tak, aby
kazda trida mela pri plnem zatizeni linky k dispozici minimalni pasmo a v
pripade nevyuziti dala pasmo k dispozici druhe tride, tj. sdileni linky s
"vypujcovanim".
Cely provoz je rozdelen pomoci jednoho u32 filtru filtrujici podle zdrojove
IP adresy v paketech (ODYSSEUS) (viz HTB konfigurace).

Pokud nastavim "vypujcovani" celeho pasma u obou trid (viz script)  a
zatizim plne linku 3 FTP sessionami, 1 na ODYSSEUS a 2 nekam jinam (EMWAC),
pasmo se nerozdeli v pozadovanem pomeru(10/118), ale vypada to, ze kazda
session obsadi cca 1/3 (HTB statistika ).
Pokud nastavim maximalni pasma stejne s minimalnimi (rate=ceil  ...bez
vypujcovani), funguje to tak, jak ma-pomer je OK.

Zarizeni je router s linkou 128kbps k ISP, eth2 je rozhrani k internimu
firewalu.

Tusi nekdo, proc mi to nefunguje ?
Jestli nekomu funguje "vypujcovani", prosim, zaslete skript.




Diky

Lumir Unzeitig






HTB konfigurace
*******************
BURST=2
BAND=128   #kbps cele pasmo od ISP
BAND1=10   #kbps download z odysseus.fi.muni.cz
BAND2=$(($BAND-$BAND1))  #ostatni download

    #Root handle qdisc
    #*****************
    tc qdisc add dev eth2 root handle 1: htb default 200

    #Root class for 128kbps
    #**********************
    tc class add dev eth2 parent 1: classid 1:1 htb \
                            rate ${BAND}kbit ceil ${BAND}kbit burst 2k


    #Subclass 1:100 download z odysseus.fi.muni.cz
    #------------------------------------------------
      #Subclass definition
      tc class add dev eth2 parent 1:1 classid 1:100 htb \
                      rate ${BAND1}kbit ceil ${BAND}kbit burst ${BURST}kbit
      #Filter
      tc filter add dev eth2 parent 1: protocol ip prio 1 u32 match ip src
147.251.48.205/32 flowid 1:100

      #qdisc - SFQ
      tc qdisc add dev eth2 parent 1:100 handle 1000: sfq perturb 10


    #Subclass 1:200 - ostatni provoz
    #--------------------------------
     #Subclass definition
     tc class add dev eth2 parent 1:1 classid 1:200 htb \
                     rate ${BAND2}kbit ceil ${BAND}kbit burst ${BURST}k

     #qdisc - SFQ
     tc qdisc add dev eth2 parent 1:200 handle 2000: sfq perturb 10
************************


HTB statistika
*****************
---[ eth2: queueing disciplines ]-------------------------

qdisc sfq 2000: quantum 1514b limit 128p flows 128/1024 perturb 10sec
 Sent 7383739 bytes 8792 pkts (dropped 0, overlimits 0)

 qdisc sfq 1000: quantum 1514b limit 128p flows 128/1024 perturb 10sec
 Sent 3301615 bytes 2285 pkts (dropped 0, overlimits 0)

 qdisc htb 1: r2q 10 default 200 dcache 0
 deq_util 1/1000000 deq_rate 23 trials_per_deq 1
 dcache_hits 0 direct_packets 0
 Sent 10685354 bytes 11077 pkts (dropped 0, overlimits 0)


---[ eth2: configured classes ]---------------------------

class htb 1:1 root prio 0 rate 128Kbit ceil 128Kbit burst 2Kb/8 mpu 0b
cburst 1762b/8 mpu 0b quantum 1638 level 3
 Sent 10686868 bytes 11078 pkts (dropped 0, overlimits 0)
 rate 14044bps 10pps
 lended: 2017 borrowed: 0 giants: 0 injects: 0
 tokens: 26801 ctokens: 12550

class htb 1:100 parent 1:1 leaf 1000: prio 0 rate 10Kbit ceil 128Kbit burst
2Kb/8 mpu 0b cburst 1762b/8 mpu 0b quantum 128 level 0
 Sent 3301615 bytes 2285 pkts (dropped 0, overlimits 0)
 rate 4393bps 2pps
 lended: 500 borrowed: 1785 giants: 0 injects: 0
 tokens: -829440 ctokens: 12550

class htb 1:200 parent 1:1 leaf 2000: prio 0 rate 118Kbit ceil 128Kbit burst
2Kb/8 mpu 0b cburst 1762b/8 mpu 0b quantum 1510 level 0
 Sent 7385253 bytes 8793 pkts (dropped 0, overlimits 0)
 rate 9658bps 8pps
 lended: 8561 borrowed: 232 giants: 0 injects: 0
 tokens: 11514 ctokens: 12550


---[ eth2: filters for classes ]---------------------------

filter parent 1: protocol ip pref 1 u32
filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800
bkt 0 flowid 1:100
  match 93fb30cd/ffffffff at 12

********************



Další informace o konferenci Linux