Титла: 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 мисля че си прав
![]() важното е че си си решил проблема ![]() |