Haliho!

Leirom, mit szeretnek, leirom, mit csinaltam, es valaki mondja meg, miert
nem mukodik! :-)

Szoval van egy tuzfal, rajta van a tc. Van eth1 interface, a LAN. Van eth4
interface, az Internet. Vannak egyeb interfeszek.

kapcsolat csak a LAN-bol indulhat, igy az osszes tobbi interfeszen akarmi
erkezik, az mind a LAN-ba iranyulo forgalom. (Kiveve az Internet felol a
DMZ iranyt, de ezt ne keverjuk bele, nem jelentos a forgalom).

Amit szeretnek:

Az internet felol maximum 1,5 megabit savszelesseggel johetnek lefele a
dolgok.
Az interneten egy bizonyos szamitogeprol jovo dolgok legalabb fel
megabitet kapjanak ebbol a masfelbol. De ha mas nem foglalja, akkor akar
mind a masfelet.
A tobbi internetes forgalomnak nincs fenntartott savszelesseg. Ha a
megkulonboztetett forgalom nincs, akkor ez sokat hasznalhat.

A tobbi forgalom, pl. ami a mas interfeszeken erkezik be, az korlatozas
nelkul mehet a LAN fele (az azert jo lenne, ha az internetet nem tudna
elnyomni, de igazan ettol nem felek, a LAN savszelessege sokkal nagyobb,
mint a tobbi iface egyutt)

Ezt csinalom (bemasolom kommentekkel egyutt, szoljatok, ha mast irtam,
mint amit a komment mond)

#A bentrol kezdemenyezett, es az interneten kulon kezelt gep fele meno, es
#onnan vissza erkezo forgalmat megjelolom

iptables -t mangle -A PREROUTING -p tcp -m state --state ESTABLISHED -d $VPN -j 
mark --set-mark 11

#Ez egy teszt, a sajat gepemrol indulo akarmilyen forgalmat megjelolom (ez
#lenne az, kesobb, ami a mas interfeszekrol a LAN-ba megy, korlatozas
#nelkul)

iptables -t mangle -A PREROUTING -p tcp -m state --state ESTABLISHED -s 
192.168.189.226 -j MARK --set-mark 42

tc qdisc add dev $LANIF root handle 1: htb default 25

#LAN fele osszes
tc class add dev $LANIF parent 1: classid 1:1 htb rate 90mbit

#!Internet -> LAN
tc class add dev $LANIF parent 1:1 classid 1:10 htb rate 64kbit ceil 90mbit
tc qdisc add dev $LANIF parent 1:10 handle 10: sfq perturb 10

#Internet -> LAN
tc class add dev $LANIF parent 1:1 classid 1:20 htb rate 1.5mbit ceil 1.5mbit

#Ez lenne a VPN szamara biztositott fel mega
tc class add dev $LANIF parent 1:20 classid 1:21 htb rate 512kbit ceil 1.5mbit
tc qdisc add dev $LANIF parent 1:21 handle 21: sfq perturb 10

#Ez legyen a sima internet forgalom, alacsonyan indul, es felmehet a teljes 
masfel megaig, ha nincs mas.
tc class add dev $LANIF parent 1:20 classid 1:25 htb rate 128kbit ceil 1.5mbit
tc qdisc add dev $LANIF parent 1:25 handle 25: sfq perturb 10

tc filter add dev $LANIF parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:21

tc filter add dev $LANIF parent 1:0 prio 0 protocol ip handle 42 fw flowid 1:10

Ez alapjan en azt varnam, hogy legyen az eth1 interfeszen egy 90 megabites
korlat, amibol az 1:20-as osztaly felhasznalhat max. 1,5 megabitet, az
1:10-es osztaly meg az osszeset, amit az 1:20 nem hasznalt fel.
Az 1:20 masfel megabitjebol az 1:21 garantaltan kap felet, felso hatar
masfel, az 1:25 garantaltan kap 128-at, felso hatar masfel. (Ezert ha
mindkettonek nagyobb a savszelessege, mint a neki garantalt, akkor a vpn
dupla annyit kap a maradekbol, mint a 25-os).

Ugy gondolom, hogy beeshet forgalom a 10:, 21:, 25:-os helyre.

Azt varnam, hogy ha a sajat gepemrol forgalmazok (a teszt egy nagy file
letoltese scp-vel a tuzfalrol, LANon), akkor tc nelkul majdnem a drot
altal birt sebesseget kellene kapnom, tc-vel sajat geprol az 1:10-be
kellene essen a forgalom, es ugyanigy majdnem a drot altal birt sebesseget
kellene megkapnom, mas geprol forgalmazva meg a 25-osbe kellene beleesnie,
es max. masfellel kellene jonnie.

Ezzel szemben, ha tc ki van kapcsolva, akkor sajat geprol 5,1MB/s
sebesseggel toltom le, bekapcsolt tc mellett kb. 120-130KB/s sebesseggel.

Emellett a tc azt allitja, hogy nem kerult egy fia csomag sem a 10:-esbe:

qdisc htb 1: dev eth1 r2q 10 default 25 direct_packets_stat 0
 Sent 144670941 bytes 170574 pkts (dropped 92, overlimits 94583)
qdisc sfq 10: dev eth1 parent 1:10 limit 128p quantum 1514b perturb 10sec
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 21: dev eth1 parent 1:21 limit 128p quantum 1514b perturb 10sec
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
qdisc sfq 25: dev eth1 parent 1:25 limit 128p quantum 1514b perturb 10sec
 Sent 144670941 bytes 170574 pkts (dropped 92, overlimits 0)

A tuzfal jelolte:

einstein:~# iptables -L -v -t mangle
Chain PREROUTING (policy ACCEPT 15M packets, 8723M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MARK       tcp  --  any    any     anywhere             
vpn.domain.hu       state ESTABLISHED MARK set 0xb
 2420  234K MARK       tcp  --  any    any     gnagy.ceg.lan        anywhere    
        state ESTABLISHED MARK set 0x2a

Szoval mintha valami a szuressel nem lenne OK. De nem tudom, mi.

Alapvetoen az osztalyok es a qdisc-ek rendben vannak? Igy, ahogy
elkepzeltem mukodhet majd?

Nem gond ugye, hogy en az altalam kezdemenyezett kapcsolatokra szurok az
iptables-szel, es a bejovo agat korlatozom?

Lehet, hogy feleslegesen hoztam letre az 1:10-et, es az 1:1 ala mehetne a
10: de gondolom nem emiatt nem mukodik.

Koszi,
G
_________________________________________________
linux lista      -      [email protected]
http://mlf2.linux.rulez.org/mailman/listinfo/linux

válasz