sávszélesség korlátozás (speciális eset)

Fórumok

sávszélesség korlátozás (speciális eset)

Hozzászólások

Az alapokkal tiszában vagyok, a kérdésem az lenne, hogyan lehet ip címtől függetlenül olyan szabályt kreálni ami pl egy webszerver forgalmát úgy korlátozná, hogy minden kliens max 1Mbit-tel tudjon letölteni? Tehát nem összesen ennyivel mindenki, hanem ha beesik egy kérés akkor az autómatikusan csak 1Mbit-et kapjon és az összes többi is. Tehát 1Mbit/IP ahol az IP ismeretlen, vagyis csak akkor válik ismertté, amikor jön tőle kérés és ez az IP bármi lehet.

squid a webszerver elle es delay_pools?

[quote:46141cc267="polya"]squid a webszerver elle es delay_pools?

köszi maradnék a HTB nél, ugyanis később másra is kellhet

Keress ra a googlen a monowall-a.
Erdekes egy cucc ;)

[quote:d40ed9bfe0="radulovity"]Keress ra a googlen a monowall-a.
Erdekes egy cucc ;)

ismerem a monowallt. szóval nekem konkrétabb dolog kéne, linux 2.6.x packet scheduleres megoldás, tc alkalmazásával.
örülök természetesen a segítségnek, de inkább konkrét htb megoldás érdekelne tc-vel, mint valami olyasmi, hogy próbáld proxyval hátha megy, esetleg monowall, vagy ipcop hátha tud ilyet. köszi

Ez egy regi RH-s szkriptem egy hasonloan spec esetre. A lenyege az, hogy a tc-t csak meghatarozott csomagokra alkalmazza, amit elozoleg a packet markerrel megjeloltel. Nem biztos, hogy ebbe az allapotaba pikkpakkra menni fog, de a modszert ki tudod lesni belole. En arra hasznaltam, hogy a belso netmegosztasnal lekorlatoztam 20 Kb/s-re minden kliens _atmeno_ forgalmat, amelyek az eth1-re iranyultak, de ha a csomagok nem kifele mentek, hanem csak a samban akartak tallozni akkor pedig maradt nekik a korlatozas nelkuli 100Mb/s. Ezt a megoldast mas esetekre tudod igy hasznalni.

[code:1:4512f2bc26]# cat /home/tony/projects/scripts/trctl/trctld
#!/bin/bash
TC=/sbin/tc
DNLD=20Kbit # DOWNLOAD Limit
DWEIGHT=20Kbit # DOWNLOAD Weight Factor ~ 1/10 of DOWNLOAD Limit
UPLD=25KBit # UPLOAD Limit
UWEIGHT=2Kbit # UPLOAD Weight Factor

tc_start() {

$TC qdisc add dev eth0 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
$TC class add dev eth0 parent 11:0 classid 11:1 cbq rate $DNLD weight $DWEIGHT allot 1514 prio 1 avpkt 1000 bounded
$TC filter add dev eth0 parent 11:0 protocol ip handle 3 fw flowid 11:1

$TC qdisc add dev eth1 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
$TC class add dev eth1 parent 11:0 classid 11:1 cbq rate $DNLD weight $DWEIGHT allot 1514 prio 1 avpkt 1000 bounded
$TC filter add dev eth1 parent 11:0 protocol ip handle 4 fw flowid 11:1

}

tc_stop() {

$TC qdisc del dev eth0 root
$TC qdisc del dev eth1 root

}

tc_restart() {

tc_stop
sleep 1
tc_start

}

tc_show() {

echo "eth0:"
$TC qdisc show dev eth0
$TC class show dev eth0
$TC filter show dev eth0
echo ""

echo ""
echo "eth1:"
$TC qdisc show dev eth1
$TC class show dev eth1
$TC filter show dev eth1
echo ""

}

case "$1" in

start)

echo -n "Starting traffic limitation: "
tc_start
echo "done"
;;

stop)

echo -n "Stopping traffic limitation: "
tc_stop
echo "done"
;;

restart)

echo -n "Restarting bandwidth limitation: "
tc_restart
echo "done"
;;

show)

tc_show
;;

*)

echo "Usage: /etc/init.d/tc.sh {start|stop|restart|show}"
;;

esac

exit 0
[/code:1:4512f2bc26]