On Tue, 2005-06-28 at 17:34 +0300, Vlad LUPESCU wrote: > Sal, > Am si eu o intrebare/problema cum vreti sa-i spuneti. Ea suna cam asa: Am o > banda metro de 50Mbits si extern de 2Mbits. Am un GW cu 2 placi de retea. Pe > eth0 am ip-ul dat de ISP. Am 2 clase pe care fac FW cf indicatiilor ISP-ului > si sunt rutate /23. Acum: > - am incercat sa fac un script HTB care sa poata face garantari SEPARAT pe > rutele de ext/metro. Ex: (clasele mele sunt xxx.xxx.178.0/23) pe ip-ul 178.7 > vreau 256Kbits ext si 8Mbits metro; pe IP-ul 178.200 vreau 64kbits ext si > 1Mbit metro. Ratele de upload sa fie la jumatatea celor de dw (daca pot sa le > introduc eu manual ar fi perfect). > - un prieten mi-a dat urmatorul script: > #!/bin/bash > ETH_IN="eth1" > ETH_OUT="eth0" > BANDA_TOTALA="2Mbit" > # pentru neclasificati ar trebui sa fie banda minima - 1k - aici ar trebui > sa ajunga trafic necunoscut, > # care nu e organizat in shape-uri > BANDA_NECLASIFICATI="8kbit" > > #Shape-uri generale > /sbin/tc qdisc del dev $ETH_IN root > /sbin/tc qdisc del dev $ETH_OUT root > /sbin/tc qdisc add dev $ETH_IN root handle 1 htb default 10 r2q 2 > /sbin/tc qdisc add dev $ETH_OUT root handle 1 htb default 10 r2q 2 > /sbin/tc class add dev $ETH_IN parent 1: classid 1:2 htb rate $BANDA_TOTALA > /sbin/tc class add dev $ETH_OUT parent 1: classid 1:2 htb rate $BANDA_TOTALA > /sbin/tc class add dev $ETH_IN parent 1:2 classid 1:10 htb rate > $BANDA_NECLASIFICATI prio 4 > /sbin/tc class add dev $ETH_OUT parent 1:2 classid 1:10 htb rate > $BANDA_NECLASIFICATI prio 4 > > #Shape-uri client 1 - IP 194.126.178.1 si 194.126.179.0/28 > /sbin/tc class add dev $ETH_IN parent 1:2 classid 1:101 htb rate 1024kbit > ceil 1100kbit quantum 65000 prio 4 burst 10k > /sbin/tc class add dev $ETH_OUT parent 1:2 classid 1:101 htb rate 1024kbit > ceil 1100kbit quantum 65000 prio 4 burst 10k > /sbin/tc filter add dev $ETH_IN parent 1:0 protocol ip prio 100 u32 match ip > dst 194.126.178.7/32 classid 1:101 > /sbin/tc filter add dev $ETH_OUT parent 1:0 protocol ip prio 100 u32 match ip > src 194.126.178.7/32 classid 1:101 > #/sbin/tc filter add dev $ETH_IN parent 1:0 protocol ip prio 100 u32 match ip > dst 194.126.179.0/28 classid 1:101 > #/sbin/tc filter add dev $ETH_OUT parent 1:0 protocol ip prio 100 u32 match > ip src 194.126.179.0/28 classid 1:101 > > > #Shape-uri client 2 - IP 194.126.178.128/25 > #/sbin/tc class add dev $ETH_IN parent 1:2 classid 1:102 htb rate 15Mbit ceil > 15Mbit quantum 65000 prio 4 burst 10k > #/sbin/tc class add dev $ETH_OUT parent 1:2 classid 1:102 htb rate 20Mbit > ceil 30Mbit quantum 65000 prio 4 burst 10k > #/sbin/tc filter add dev $ETH_IN parent 1:0 protocol ip prio 100 u32 match ip > dst 194.126.178.128/25 classid 1:102 > #/sbin/tc filter add dev $ETH_OUT parent 1:0 protocol ip prio 100 u32 match > ip src 194.126.178.128/25 classid 1:102 > > > # in exemplul asta clientul 1 are 2 subnet-uri si banda download = banda > upload = 10 Mb garantati si 20 Mb limita > # iar clientul 2 are un subnet si banda download fixata la 15Mb si upload > 20Mb garantat si 30 Mb limita superioara > > # ATENTIE la filtrele pe eth-uri. Intotdeauna se pun la plecarea pe > respectivul eth. > # Ex. pt. pachete catre 194.126.178.2 download-ul va intra pe eth0 si va > # iesi pe eth1 asa ca se pune filtrul pt. download pe eth1 cu dst > # iar upload-ul va intra pe eth1 (dinspre client) si va iesi pe eth0 (spre > # provider) asa ca se va pune filtrul pe eth0 cu src > > > el a mentionat faptul ca acest script face garantarile si limitele doar pt > banda externa. Testand pe ip-ul 178.7 .. stupoare: scriptul limiteaza TOT in > valorile introduse de mine. Am si un script care foloseste iptables+mangle > insa isi pierde regulile (nu stiu din ce cauza) dupa aproximativ 5 minute. > > - mentionez faptul ca am toate clasele de metro intr-un fisier numit clases. > > Pls help pt k sunt disperat! > Vlad > > --- > Detalii despre listele noastre de mail: http://www.lug.ro/ > > Ce va trebui sa faci este sa citesti www.lartc.org. Acolo vei intelege despre ce este vorba, cum se fac limitarile, etc. Simplist de tot spus, solutiile tale sunt cam urmatoarele: - vb cu ISP sa iti trimita extern si metro pe vlan-uri separate, apoi cu vconfig faci vlanurile si limitarile pe ele (daca reusesti, sa imi zici si mie, ca nu am incercat) - vb cu ISP sa iti dea doua conexiuni fizice, una pe metro, una pe extern (doua fibre). Asa vei putea sa faci separarea foarte frumos, pe fiecare interfata reala...Atentie: varianta asta costa, ferea! - marchezi pachetele de metropolitan, si faci shaping pe aceasta marcare. Detalii la lartc. - faci reguli pentru fiecare client care sa contina adresele de metropolitan. CPU consuming, bad results, bad logic...
--- Detalii despre listele noastre de mail: http://www.lug.ro/
