Van egy linuxos átjárónk. Az utóbbi időben figyeltem fel rá, hogy ha valaki tölt a 80-as portról valamit, akkor szinte a teljes sávszélességet elviszi. Ezért gondoltam használom az sfq-t imq-val az majd jó lesz. Írja már meg valaki, hogy jól állítom e be:
#eth1: külső interface
#ürítés
tc qdisc del dev eth1 root
tc qdisc del dev imq0 root
#imq felhúzása, sfq beállítása
/sbin/ip link set imq0 up
/sbin/tc qdisc add dev imq0 root sfq perturb 10
#minden befelejövő csomagot az imq-ra irányítunk
iptables -t mangle -A PREROUTING -i eth1 -j IMQ --todev 0
#kifelé menő csomagok
/sbin/tc qdisc add dev eth1 root sfq perturb 10
Előre is köszönöm.
- 4763 megtekintés
Hozzászólások
Hi! Nem nehéz a dolog, nem tudom milyen stádiumban van a dolog, de
-kell kernel patch imq
-kell iptable patch imq
Ennyi!
www.linuximq.net innen be tudod szerezni a patcheket
Itt egy példa:
#!/bin/bash
modprobe imq numdevs=1
ip link set imq0 up
#letoltes
tc qdisc add dev imq0 handle 1: root htb default 11
tc class add dev imq0 parent 1: classid 1:1 htb rate 40kbps
tc class add dev imq0 parent 1:1 classid 1:10 htb rate 10kbps ceil 40kbps prio 0
tc class add dev imq0 parent 1:1 classid 1:20 htb rate 10kbps ceil 30kbps prio 1
tc class add dev imq0 parent 1:1 classid 1:30 htb rate 10kbps ceil 20kbps prio 2
tc qdisc add dev imq0 parent 1:10 handle 11: sfq perturb 10
tc qdisc add dev imq0 parent 1:20 handle 12: sfq perturb 10
tc qdisc add dev imq0 parent 1:30 handle 13: sfq perturb 10
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:10
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 12 fw flowid 1:20
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 13 fw flowid 1:30
iptables -t mangle -N MYSHAPER-IN
iptables -t mangle -I PREROUTING -i eth0 -j MYSHAPER-IN
iptables -t mangle -A MYSHAPER-IN -p tcp --sport ssh -j MARK --set-mark 12
iptables -t mangle -A MYSHAPER-IN -p tcp --dport ssh -j MARK --set-mark 12
iptables -t mangle -A MYSHAPER-IN -m mark --mark 0 -j MARK --set-mark 13
iptables -t mangle -A MYSHAPER-IN -j IMQ
#feltoltes
ip link set eth0 qlen 30
tc qdisc add dev eth0 handle 1: root htb default 13
tc class add dev eth0 parent 1: classid 1:1 htb rate 30kbps burst 1k
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10kbps ceil 30kbps prio 0
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 10kbps ceil 20kbps prio 1
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 10kbps ceil 10kbps prio 2
tc qdisc add dev eth0 parent 1:10 handle 11: sfq perturb 10
tc qdisc add dev eth0 parent 1:20 handle 12: sfq perturb 10
tc qdisc add dev eth0 parent 1:30 handle 13: sfq perturb 10
tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:10
tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 12 fw flowid 1:20
tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 13 fw flowid 1:30
iptables -t mangle -N MYSHAPER-OUT
iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT
iptables -t mangle -A MYSHAPER-OUT -p tcp --sport 0:1024 -j MARK --set-mark 12
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 0:1024 -j MARK --set-mark 12
iptables -t mangle -A MYSHAPER-OUT -p tcp --sport ssh -j MARK --set-mark 11
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport ssh -j MARK --set-mark 11
- A hozzászóláshoz be kell jelentkezni
És amit én leírtam az nem elég a sávszélesség egyenlő osztásához?
- A hozzászóláshoz be kell jelentkezni
Sajna nem lesz elég.
Itt bőven ki van részletezve:
http://tldp.fsf.hu/HOWTO/ADSL-Bandwidth-Management-HOWTO-hu/implementat…
- A hozzászóláshoz be kell jelentkezni
Elvileg a parhuzamos TCP folyamok egyenloen osztozkodnak. Gyakorlatilag ha nagy az RTT, akkor a kesobb indulo nagyon lassan tud csak felnoni (akar elindulni is, hiszen, DNS legjobb esetben 1 RTT, SYN/SYNACK, es csak ekkor indul). Az RTT hossza gyakorlatilag az a buffer hossza, ami ott van, ahol a legszukebb a keresztmetszet. Ebbol tobb dolog is kovetkezik:
1. Amig nem te kontrollalod a legszukebb keresztmetszetet, a fejed tetejere is allhatsz.
2. Egy esszeru buffer hossz beallitas csodakra kepes.
Azaz csinalj ilyen IMQ cuccot, de arra is figyelj, hogy ez legyen a legszukebb keresztmetszet. Ez azt jelenti, hogy ala kell menned a rendelkezesedre allo savszelessegnek.
- A hozzászóláshoz be kell jelentkezni
Ez így van!
Egy kiegészítés (kis tuning,de még nem lett használva):
#ack-feltoltes
iptables -t mangle -A POSTROUTING -m tos --tos Minimize-Delay -j MARK --set-mark 11
iptables -t mangle -A POSTROUTING -m tos --tos Minimize-Delay -j RETURN
iptables -t mangle -A POSTROUTING -m tos --tos Minimize-Cost -j MARK --set-mark 12
iptables -t mangle -A POSTROUTING -m tos --tos Minimize-Cost -j RETURN
iptables -t mangle -A POSTROUTING -m tos --tos Maximize-Throughput -j MARK --set-mark 13
iptables -t mangle -A POSTROUTING -m tos --tos Maximize-Throughput -j RETURN
iptables -t mangle -I POSTROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 11
iptables -t mangle -I POSTROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN
- A hozzászóláshoz be kell jelentkezni
Elég sokat küzdöttem mostanában ezzel a sávszélesség megosztásával. Van ez a "rate 10kbps". Ez nem világos számomra. Ez a rate mit állít pontosan? Valahogy nem tudom értelmezni a leírásokból.
- A hozzászóláshoz be kell jelentkezni
A rate a minimum amit használhat biztosan a ceil a maximum használat, de ez függ a többi vonal terhelésétől. Az alosztályok összeadva soha nem lehetnek magasabb mint a root osztályban lévő.
root =20k
1 alosz. rate 5k ceil 20k
2 alosz. rate 5k ceil 20k
2 netezik 20k-val, jönn az 1, de neki csak 7k kell a sávból, akkor a 2-nak marad 13k(ebből 5k min.)
- A hozzászóláshoz be kell jelentkezni