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