Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Ironman в Dec 13, 2005, 18:26



Титла: TC (HTB) Problem
Публикувано от: Ironman в Dec 13, 2005, 18:26
Здравейте на всички,
ето я въпросната ситуация ситуацуята :
ETH0 = LAN
ETH1 = ISP1 (1Megabit Net + 2 Megabita Peer)
ETH2 = ISP2 (Download - 2Megabita , Upload 512Kilobita)

Известно време ползвах htb.init но той не съвпаташе с нуждите ми за шейпване, а и плюс това не работеше нормално... но както и да е, сега се занимавам директно с "TC", всичко е прекрасно освен едно нещто - шейпва се само калса който съм задал за DEFAULT.
Ето част от сорса който съм написал за да се види нагледно

######################################################################################
#               Sheipwane na DOWNLOADA                  || ETH0 ||           #
######################################################################################
DEVDN=eth0
### syzdawane na ROOT clasowete za syotwetniqt $DEVDN
/sbin/tc qdisc add dev $DEVDN root handle 1: htb default 21
/sbin/tc class add dev $DEVDN parent 1: classid 1:1 htb rate 10Mbit
### default
/sbin/tc class add dev $DEVDN parent 1:1 classid 1:10 htb rate 1Mbit
###
### klasowe za download rate
/sbin/tc class add dev $DEVDN parent 1:1 classid 1:20 htb rate 128Kbit ceil 256Kbit
/sbin/tc class add dev $DEVDN parent 1:1 classid 1:21 htb rate 256Kbit ceil 512Kbit
/sbin/tc class add dev $DEVDN parent 1:1 classid 1:22 htb rate 512Kbit ceil 1024Kbit
###
### klasowe za portowe
/sbin/tc class add dev $DEVDN parent 1:1 classid 1:11 htb rate 6Mbit burst 10k quantum 1500
/sbin/tc class add dev $DEVDN parent 1:1 classid 1:12 htb rate 1024Kbit burst 10k quantum 1500
# Porowe koito izpolzwat do 6MB rate
/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip sport 22 0xffff flowid 1:11
# Portowe koito izpolzwat do 1MB rate
/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip sport 80 0xffff flowid 1:12
### default
/sbin/tc qdisc add dev $DEVDN parent 1:20 handle 20: sfq perturb 10
/sbin/tc qdisc add dev $DEVDN parent 1:21 handle 21: sfq perturb 10
/sbin/tc qdisc add dev $DEVDN parent 1:22 handle 22: sfq perturb 10
### potrebiteli na skorost do 256Kbit
/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.85/32 flowid 1:20
/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.86/32 flowid 1:20
/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.87/32 flowid 1:20
### potrebiteli na skorost do 512Kbit
#/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.67/32 flowid 1:21
#/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.68/32 flowid 1:21
#/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.69/32 flowid 1:21
### potrebiteli na skorost do 1024Kbit
/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.66/32 flowid 1:22
/sbin/tc filter add dev $DEVDN protocol ip parent 1: prio 1 u32 match ip dst 82.103.87.193/32 flowid 1:22
###
до тук всичко е супер, но шейпъра работи само за клас 1:21, и съответно ако сменя DEFAULT на 22, работи само на 1:22 и т.н. Имам някакви бегли помисли, че всичко е заради SFQ опашката .. ама не съм сигурен и дори и да е така, незнам с какво точно да я заменя.
Впърпсът ми е: Как мога да се преборя с този проблем ?

П.П. пробвал съм почти всички варианти .. например с приоритизация... маркиране на пакетите с iptables и после касифицирането им ... и какво ли още не, обаче нестава и нестава. за това решх да попитам дали някои не се е сблъсквал с подобен проблем.

----
Операционната система е Slackware 10.1


Титла: TC (HTB) Problem
Публикувано от: mrvoland в Dec 14, 2005, 02:21
искам само да ти кажа че според брат ми geroy а и според мен SFQ е доста по-прецизен като шейпър

можеш да сложиш най-начало
tc qdisc del dev ethX root handle 1: htb default 30
за да зитрие всичко

при мен default-a e
tc qdisc add dev ethX root handle 1: htb default 30

а тук класовете са така
tc class add dev eth1 parent 1:1 classid 1:100 htb rate 256kbit ceil 256kbit burst 150k
tc class add dev eth1 parent 1:1 classid 1:200 htb rate 128kbit ceil 128kbit burst 15k

за SFQ следва...
tc qdisc add dev eth1 parent 1:100 handle 100: sfq perturb 10
tc qdisc add dev eth1 parent 1:200 handle 200: sfq perturb 10

съответно blacklist-а е следния :)
U32="tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32"
$U32 match ip src 195.177.248.102/32 match ip dst 195.177.249.4/32 flowid 1:100
$U32 match ip src 195.177.248.102/32 match ip dst 195.177.249.5/32 flowid 1:100

пробвай това... може пък да проработи...
провери и в ядрото дали е напускано всичко което е нужно


Титла: TC (HTB) Problem
Публикувано от: Ironman в Dec 14, 2005, 14:21
Да като сложих default класа на htb root да е 30 всичко се оправи. Но това е НЕСЪЩЕТСТВУВАЩ клас ?!
Аз лично си го обяснявам така: когато зададеш default клас, и когато в този клас/канал има свободен повече bandwidth от колкото си задал на потребителите му, остатъка почва да се разпределя между останалите класове според потребността ... мисля, че е нещо такова. ако греша моля да ме поправите, защото доста време се борих с това нещо и искам да разбера каква бе точната причина за неуспеха ми до сега  ;)


Титла: TC (HTB) Problem
Публикувано от: mrvoland в Dec 16, 2005, 18:04
мисля че си прав :)
важното е че си си решил проблема :)