Pe data de Vin 14 Oct 2005 15:12, Alex 'CAVE' Cernat a scris: > Salut > > Se da un router in care intra o banda de 1M (orice) si iese 'intern' > pe mai multe interfete. Garantarea in prezent e cu HTB facut dupa > ip-ul public (fiecare clasa de clienti are ip public separat, pentru > simplitate). Binenteles ca avand mai multe interfete de iesire > automat a trebuit folosit IMQ, iar garantarea mergea fara problema. > > Practic schema este cam asa: > - root qdisk > - leaf1 (ip1) > - leaf2 (ip2) ... etc > si apoi trimit pentru fiecare ip destinatie pachetul in leaf-ul > asociat lui > > Intre timp s-a facut un upgrade la conexiune, cu 1M international si > 2M total (metro+extern). Ma strofoc acum sa-mi dau seama cum draq pot > sa modific garantarea astfel incat sa mearga asa cum doresc. Sarim > peste marcare de pachete international si kestii legate de genul > asta, ca nu e bai, dar ajung la partea de garantare, pe care as > dori-o exact ca inainte, doar ca garantare pe international si > garantare pe total (metro+extern). Garantarea pe extern clar ramane > ca mai inainte, ca nu s-a schimbat nimic. Dar problema e ca metro nu > e separat in nici un fel, ci ar fi total din care scad > internationalul. M-am gandit sa fac separat pe metro si > international, dar nu rezolv nimic, deoarece se pierde banda la > garantari in felul asta, deci pica.
Nu sunt expert in HTB dar iti zic cum as face eu. Exemplul o sa til dau cu sintaxa folosita in tctools (http://www.bvnet.ro/tctools/). define client1 192.168.1.3; define client2 192.168.1.4; define client3 192.168.1.5; dev imq0(htb, default 2){ class tot(rate 2000kbit ceil 2000kbit){ class international(rate 1000kbit ceil 1000kbit){ class client1_i(rate 250kbit ceil 1000kbit){qdisc (pfifo,limit 50);} class client2_i(rate 250kbit ceil 1000kbit){qdisc (pfifo,limit 50);} class client3_i(rate 500kbit ceil 1000kbit){qdisc (pfifo,limit 50);} filter(protocol ip u32 match ip dst @client1 classid $client1_i); filter(protocol ip u32 match ip dst @client2 classid $client2_i); filter(protocol ip u32 match ip dst @client3 classid $client3_i); } class metropolitan(rate 1000kbit ceil 2000kbit){ class client1_m(rate 250kbit ceil 2000kbit){qdisc (pfifo,limit 50);} class client2_m(rate 250kbit ceil 2000kbit){qdisc (pfifo,limit 50);} class client3_m(rate 500kbit ceil 2000kbit){qdisc (pfifo,limit 50);} filter(protocol ip u32 match ip dst @client1 classid $client1_m); filter(protocol ip u32 match ip dst @client2 classid $client2_m); filter(protocol ip u32 match ip dst @client3 classid $client3_m); } } //pacheltele metro pp. ca sunt marcate cu 5 filter(protocol ip prio 1 handle 5 fw classid $metropolitan); } Este doar un exemplu de cum as face eu acum la prima vedere. > > Daca as fi avut o singura interfata 'interna' se putea face spre > exemplu garantare de total pe imq si apoi inca una de international > pe eth1, si scapam ieftin. Exista cumva vreo solutie prin care pot sa > trec traficul prin mai mult de o interfata IMQ (desi ma cam indoiesc > de lucru asta)? Pai cine te opreste sa trimiti prin mai multe IMQ-uri cu iptables? Nu am incercat dar nici nu am citit pe undeva ca un pachet nu poate trece dacat printr-un IMQ. > > Am o vaga impresie ca e mult mai usor decat pare, insa stau si citesc > documentatii dar nu-mi pica fisa. Si mai e si vineri. > > Mersi > > Alex > -- Cu placere, Octavian CHELU _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug