|
| Linuxbox suger al båndbredde :-( Fra : Rene Pedersen |
Dato : 26-09-02 13:38 |
|
Jeg har en Redhat Linux 7.3 kørende som firewall. Hvis jeg sætter den til at
downloade en stor fil, kan jeg ikke logge på Windows Messenger fra
klienterne, men jeg kan godt surfe osv. (dog meget langsomt selvfølgelig).
Kan man lave noget gejl så den kun bruger al båndbredden, hvis ikke
klienterne laver noget?
Best regards
Rene Pedersen
| |
Peter Makholm (26-09-2002)
| Kommentar Fra : Peter Makholm |
Dato : 26-09-02 13:46 |
|
"Rene Pedersen" <rene@rullekebab.dk> writes:
> Kan man lave noget gejl så den kun bruger al båndbredden, hvis ikke
> klienterne laver noget?
Man kan nok med programmet tc som i Debian følger med iproute-pakken.
--
Peter Makholm | Emacs is the only modern general-purpose
peter@makholm.net | operating system that doesn't multitask
http://hacking.dk |
| |
Bo Simonsen (26-09-2002)
| Kommentar Fra : Bo Simonsen |
Dato : 26-09-02 17:24 |
|
In article <87r8fgyl53.fsf@xyzzy.adsl.dk>, Peter Makholm wrote:
> "Rene Pedersen" <rene@rullekebab.dk> writes:
>
>> Kan man lave noget gejl så den kun bruger al båndbredden, hvis ikke
>> klienterne laver noget?
>
> Man kan nok med programmet tc som i Debian følger med iproute-pakken.
Ja, nærmere QoS support vil hjælpe.
Nu ved jeg ikke hvordan din kernel ser ud pt., men der skal være
compileret fuld QoS understøttelse i den. Så kan du loade dette lille
script der var meget nyttigt, da den sørger for at Messenger pakker o.l. får
højere priortet end FTP pakker.
God fornøjelse
#!/bin/bash
# The Ultimate Setup For Your Internet Connection At Home
#
#
# Set the following values to somewhat less than your actual download
# and uplink speed. In kilobits
DOWNLINK=256
UPLINK=128
DEV=eth1
# clean existing down- and uplink qdiscs, hide errors
tc qdisc del dev $DEV root 2> /dev/null > /dev/null
tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
###### uplink
# install root CBQ
tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit
# shape everything at $UPLINK speed - this prevents huge queues in your
# DSL modem which destroy latency:
# main class
tc class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit \
allot 1500 prio 5 bounded isolated
# high prio class 1:10:
tc class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit \
allot 1600 prio 1 avpkt 1000
# bulk and default class 1:20 - gets slightly less traffic,
# and a lower priority:
tc class add dev $DEV parent 1:1 classid 1:20 cbq rate
$[9*$UPLINK/10]kbit \
allot 1600 prio 2 avpkt 1000
# both get Stochastic Fairness:
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
# start filters
# TOS Minimum Delay (ssh, NOT scp) in 1:10:
tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
match ip tos 0x10 0xff flowid 1:10
# ICMP (ip protocol 1) in the interactive class 1:10 so we
# can do measurements & impress our friends:
tc filter add dev $DEV parent 1:0 protocol ip prio 11 u32 \
match ip protocol 1 0xff flowid 1:10
# To speed up downloads while an upload is going on, put ACK packets in
# the interactive class:
tc filter add dev $DEV parent 1: protocol ip prio 12 u32 \
match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 \
match u16 0x0000 0xffc0 at 2 \
match u8 0x10 0xff at 33 \
flowid 1:10
# rest is 'non-interactive' ie 'bulk' and ends up in 1:20
tc filter add dev $DEV parent 1: protocol ip prio 13 u32 \
match ip dst 0.0.0.0/0 flowid 1:20
########## downlink #############
# slow downloads down to somewhat less than the real speed to prevent
# queuing at our ISP. Tune to see how high you can set it.
# ISPs tend to have *huge* queues to make sure big downloads are fast
#
# attach ingress policer:
tc qdisc add dev $DEV handle ffff: ingress
# filter *everything* to it (0.0.0.0/0), drop everything that's
# coming in too fast:
tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1
--
Med venlig hilsen
Bo Simonsen
Linux! The choice of a GNU generation
| |
|
|