wifi "dinamikus" sávszélesség korlátozás

üdv mindenkinek!!
olyan kérdésem lenne, hogy lesz a napokban egy digitv-s netünk (30mbit/20mbit) vagyunk 3-an wifin, és úgy szeretném korlátozni a sávszélt, hogy ha 3-an használjuk akkor ossza el egyenlően 3fele, tehát 1 valaki ne tudjon 1/3 sebességnél többel tölteni, ha viszont csak 2-en vagyunk akkor 2felé ossza, ha egyedül, akkor pedig az egy aktív emberke kapja az egészet.. milyen routerrel/apvel lehet ilyen szintű beállítást csinálni, ill. hogyan. ha drága lenne ez a fajta router, vagy gáz az állítása: van egy p300asom egy x-mentes slackware-el, egypár háló/wifikatyival, ezt használnám routernek, ezesetben egy iptables leírást kérnék..
nagyon köszönöm!
ui: ezer bocs ha ezt már tárgyaltátok valahol, nem találtam..

Hozzászólások

Nem probaltam, de elmeletileg a

htb(8)

tudja.

Hello, szerintem vegyél egy Tomato által támogatt routert, és QoS-t állítsd be a céljaidnak megfelelően a grafikus felületén.

* Linksys WRT54G v1-v4, WRT54GS v1-v4, WRT54GL v1.x, WRTSL54GS (no USB support)
* Buffalo WHR-G54S, WHR-HP-G54, WZR-G54, WBR2-G54, WBR-G54, WZR-HP-G54, WZR-RS-G54, WZR-RS-G54HP, WVR-G54-NF, WHR2-A54-G54, WHR3-AG54
* Asus WL500G Premium (no USB support), WL500GE, WL520GU (no USB support)
* Sparklan WX6615GT, Fuji RT390W, Microsoft MN-700

Ha Linux Traffic Control érdekes részletesebben, akkor ide látogass el: http://lartc.org/

Én ezt a scriptet használom traffic shapingre.
Ha valami nem világos, kérdezz.

#!/bin/bash

dev=eth0
lup=100
eup=40000
extip=xxx.xxx.xxx.xxx/32
##--
app_ts="/sbin/iptables -t mangle -A POSTROUTING"
tcp="-p tcp -m tcp"
udp="-p udp -m udp"
icmp="-p icmp -m icmp"
mark="-j MARK --set-mark"

case "$1" in
start)
# add HTB root qdisc
tc qdisc add dev $dev root handle 1: htb default 15
# add main rate limit
tc class add dev $dev parent 1: classid 1:0 htb rate ${lup}mbit
# add leaf classes
tc class add dev $dev parent 1:0 classid 1:999 htb rate ${eup}kbit ceil ${eup}kbit burst 3k prio 0
tc class add dev $dev parent 1:0 classid 1:998 htb rate $[$eup/2]kbit ceil ${eup}kbit burst 3k prio 1
tc class add dev $dev parent 1:0 classid 1:997 htb rate $[$eup/2]kbit ceil ${eup}kbit burst 3k prio 2
tc class add dev $dev parent 1:0 classid 1:996 htb rate $[$eup/3]kbit ceil ${eup}kbit burst 3k prio 3
én pl ezt a 996-os leafet használnám, és megjelölném a 3 gép ipjéről jövő packetokat. lentebb látod
tc class add dev $dev parent 1:0 classid 1:995 htb rate ${lup}mbit ceil ${lup}mbit burst 3k prio 4

# add fwmark entries to calssify different types of traffic
$app_ts -p tcp -m length --length :64 $mark 999
$app_ts $icmp $mark 999
$app_ts $udp $mark 996
$app_ts $tcp --dport 22 $mark 998 #ssh
$app_ts $tcp --sport 22 $mark 998 #ssh
$app_ts $tcp --dport 80 $mark 997 #web
$app_ts $tcp --dport 443 $mark 997 #web-ssl
$app_ts $tcp --sport 80 $mark 997 #web
$app_ts $tcp --sport 443 $mark 997 #web-ssl
$app_ts $tcp --dport 25 $mark 997 #mail
$app_ts $tcp --sport 25 $mark 997 #mail
$app_ts $tcp --sport 20 $mark 996 #local ftp data
$app_ts $tcp --sport 21 $mark 996 #local ftp
$app_ts $tcp --sport 51000:52000 $mark 996 #local ftp data
$app_ts $tcp --sport 445 $mark 998 #samba
$app_ts -d 192.168.0.0/21 $mark 995
$app_ts -s gép1 $mark 996
$app_ts -s gép2 $mark 996
$app_ts -s gép2 $mark 996

# filter traffic into classes by fwmark
tc filter add dev $dev parent 1:0 protocol ip prio 0 handle 999 fw flowid 1:999
tc filter add dev $dev parent 1:0 protocol ip prio 1 handle 998 fw flowid 1:998
tc filter add dev $dev parent 1:0 protocol ip prio 2 handle 997 fw flowid 1:997
tc filter add dev $dev parent 1:0 protocol ip prio 3 handle 996 fw flowid 1:996
tc filter add dev $dev parent 1:0 protocol ip prio 4 handle 995 fw flowid 1:995

# setting up TOS
iptables -A PREROUTING -t mangle -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --sport smtp -j TOS --set-tos Maximize-Reliability
iptables -A PREROUTING -t mangle -p tcp --sport ntp -j TOS --set-tos Maximize-Reliability
iptables -A PREROUTING -t mangle -p tcp --sport www -j TOS --set-tos Minimize-Delay
iptables -A PREROUTING -t mangle -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput

iptables -A OUTPUT -t mangle -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
iptables -A OUTPUT -t mangle -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
iptables -A OUTPUT -t mangle -p tcp --sport smtp -j TOS --set-tos Maximize-Reliability
iptables -A OUTPUT -t mangle -p tcp --sport ntp -j TOS --set-tos Maximize-Reliability
iptables -A OUTPUT -t mangle -p tcp --sport www -j TOS --set-tos Minimize-Delay
iptables -A OUTPUT -t mangle -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
iptables -A OUTPUT -t mangle -p tcp --sport 445 -j TOS --set-tos Maximize-Throughput
iptables -A OUTPUT -t mangle -p tcp --sport 445 -j TOS --set-tos Minimize-Delay

echo "Remote outbound shaping added to $dev. Rate: ${eup}kbit/sec."
;;
stop)
tc qdisc del dev $dev root 2> /dev/null > /dev/null
iptables -t mangle -F

echo "Shaping removed on $dev."
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: ts {start|stop|status|restart}"
exit 1
esac

exit 0