I''m trying (without many success) to optimize my DSL connection. My
principal interest is allowing me to connect from an external machine
with ssh and vnc thru ssh. I also want to allow 3 internal computers to
connect from 192.168.0.2-4 and browse the web, etc.
However, once mldonkey is started all the connections seem to go to a
crawl. This is my preliminary script, modified from wondershaper and
some mldonkey-specific script:
IPTCMD="iptables -A WSHAPER -t mangle -p"
tc disc del dev $DEV root 2> /dev/null > /dev/null
tc disc del dev $DEV ingress 2> /dev/null > /dev/null
iptables -t mangle -D POSTROUTING -o $DEV -j WSHAPER 2> /dev/null
\
> /dev/null
ip link set dev $DEV qlen $QLEN
tc qdisc add dev $DEV root handle 1: htb r2q $RQ default 13
tc class add dev $DEV parent 1: classid 1:1 htb rate
$[$UPLINK-2]kbit \
ceil $[$UPLINK-2]kbit burst ${BURST}k
tc class add dev $DEV parent 1:1 classid 1:10 htb rate \
$[(($UPLINK-2)* 5)/100]kbit ceil $[$UPLINK-2]kbit prio 0
tc class add dev $DEV parent 1:1 classid 1:11 htb rate \
$[(($UPLINK-2)*40)/100]kbit ceil $[$UPLINK-2]kbit prio 1
tc class add dev $DEV parent 1:1 classid 1:12 htb rate \
$[(($UPLINK-2)*50)/100]kbit ceil $[$UPLINK-2]kbit prio 2
tc class add dev $DEV parent 1:1 classid 1:13 htb rate \
$[(($UPLINK-2)* 5)/100]kbit ceil $[$UPLINK-2]kbit prio 3
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 10
tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10
tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 10 \
fw flowid 1:10
tc filter add dev $DEV parent 1:0 prio 1 protocol ip handle 11 \
fw flowid 1:11
tc filter add dev $DEV parent 1:0 prio 2 protocol ip handle 12 \
fw flowid 1:12
tc filter add dev $DEV parent 1:0 prio 3 protocol ip handle 13 \
fw flowid 1:13
iptables -t mangle -N WSHAPER
iptables -t mangle -I POSTROUTING -o $DEV -j WSHAPER
# Class 10
$IPTCMD tcp -m length --length :64 -j MARK --set-mark 10 ## ACKs
# Class 11
$IPTCMD tcp --dport ssh -j MARK --set-mark 11 ## SSH
$IPTCMD tcp --sport ssh -j MARK --set-mark 11
$IPTCMD icmp -j MARK --set-mark 11 ## ICMP
$IPTCMD udp --dport domain -j MARK --set-mark 11 ## DNS
$IPTCMD all --source 192.168.0.2 -j MARK --set-mark 11 ##
linuxclient
$IPTCMD all --destination 192.168.0.2 -j MARK --set-mark 11
$IPTCMD all --source 192.168.0.3 -j MARK --set-mark 11 ##
linuxlaptop
$IPTCMD all --destination 192.168.0.3 -j MARK --set-mark 11
$IPTCMD all --source 192.168.0.4 -j MARK --set-mark 11 ##
compaqlaptop
$IPTCMD all --destination 192.168.0.4 -j MARK --set-mark 11
# Class 12
for PORTPROTODEST in $CLASS12 ; do
PORT=`echo $PORTPROTODEST | awk -F/ ''{print $1}''`
PROTO=`echo $PORTPROTODEST | awk -F/ ''{print $2}''`
DEST=`echo $PORTPROTODEST | awk -F/ ''{print $3}''`
if [ "$PROTO" = "both" ]; then
if [ "$DEST" = "both" ]; then
$IPTCMD tcp --dport $PORT -j MARK --set-mark 12
$IPTCMD udp --sport $PORT -j MARK --set-mark 12
$IPTCMD tcp --sport $PORT -j MARK --set-mark 12
$IPTCMD udp --dport $PORT -j MARK --set-mark 12
else
$IPTCMD tcp --$DEST $PORT -j MARK --set-mark 12
$IPTCMD udp --$DEST $PORT -j MARK --set-mark 12
fi
else
if [ "$DEST" = "both" ]; then
$IPTCMD $PROTO --dport $PORT -j MARK --set-mark 12
$IPTCMD $PROTO --sport $PORT -j MARK --set-mark 12
else
$IPTCMD $PROTO --$DEST $PORT -j MARK --set-mark 12
fi
fi
done
# Class 13 default
$IPTCMD udp --sport 4660:4670 -j MARK --set-mark 13
$IPTCMD udp --dport 4660:4670 -j MARK --set-mark 13
$IPTCMD udp --dport 4242 -j MARK --set-mark 13
tc qdisc add dev $DEV handle ffff: ingress
tc filter add dev $DEV parent ffff: protocol ip prio 4 u32 match
ip src \
0.0.0.0/0 police rate $[${DOWNLINK}-2]kbit burst 10k drop
flowid :1
What do you think? :-(. TIA.
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
I have a severe backlog with my email, so please forgive me if someone has already added something to this :-) I added UTP 4660:4670 and overnet''s 8948. This helped me very much :-D. It seems like my next step will be IMQ :-) Thank you very much. El sáb, 05-04-2003 a las 10:39, Adam Schrader escribió:> > I''m new to bw shaping but it appears to me your script is controling 4662 UDP. Edonkey, MLdonkey, Emule and such use TCP port 4662. > -Adam > Dr Aldo Medina <aldomedina@hotpop.com> wrote:I''m trying (without many success) to optimize my DSL connection. My > principal interest is allowing me to connect from an external machine > with ssh and vnc thru ssh. I also want to allow 3 internal computers to > connect from 192.168.0.2-4 and browse the web, etc. > > However, once mldonkey is started all the connections seem to go to a > crawl. This is my preliminary script, modified from wondershaper and > some mldonkey-specific script: > > > > IPTCMD="iptables -A WSHAPER -t mangle -p" > > tc disc del dev $DEV root 2> /dev/null > /dev/null > tc disc del dev $DEV ingress 2> /dev/null > /dev/null > iptables -t mangle -D POSTROUTING -o $DEV -j WSHAPER 2> /dev/null > \ > > /dev/null > > ip link set dev $DEV qlen $QLEN > tc qdisc add dev $DEV root handle 1: htb r2q $RQ default 13 > > tc class add dev $DEV parent 1: classid 1:1 htb rate > $[$UPLINK-2]kbit \ > ceil $[$UPLINK-2]kbit burst ${BURST}k > tc class add dev $DEV parent 1:1 classid 1:10 htb rate \ > $[(($UPLINK-2)* 5)/100]kbit ceil $[$UPLINK-2]kbit prio 0 > tc class add dev $DEV parent 1:1 classid 1:11 htb rate \ > $[(($UPLINK-2)*40)/100]kbit ceil $[$UPLINK-2]kbit prio 1 > tc class add dev $DEV parent 1:1 classid 1:12 htb rate \ > $[(($UPLINK-2)*50)/100]kbit ceil $[$UPLINK-2]kbit prio 2 > tc class add dev $DEV parent 1:1 classid 1:13 htb rate \ > $[(($UPLINK-2)* 5)/100]kbit ceil $[$UPLINK-2]kbit prio 3 > > tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10 > tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 10 > tc qdisc add dev $DEV parent 1:12 handle 12: sfq perturb 10 > tc qdisc add dev $DEV parent 1:13 handle 13: sfq perturb 10 > > tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 10 \ > fw flowid 1:10 > tc filter add dev $DEV parent 1:0 prio 1 protocol ip handle 11 \ > fw flowid 1:11 > tc filter add dev $DEV parent 1:0 prio 2 protocol ip handle 12 \ > fw flowid 1:12 > tc filter add dev $DEV parent 1:0 prio 3 protocol ip handle 13 \ > fw flowid 1:13 > > iptables -t mangle -N WSHAPER > iptables -t mangle -I POSTROUTING -o $DEV -j WSHAPER > > # Class 10 > $IPTCMD tcp -m length --length :64 -j MARK --set-mark 10 ## ACKs > # Class 11 > $IPTCMD tcp --dport ssh -j MARK --set-mark 11 ## SSH > $IPTCMD tcp --sport ssh -j MARK --set-mark 11 > $IPTCMD icmp -j MARK --set-mark 11 ## ICMP > $IPTCMD udp --dport domain -j MARK --set-mark 11 ## DNS > $IPTCMD all --source 192.168.0.2 -j MARK --set-mark 11 ## > linuxclient > $IPTCMD all --destination 192.168.0.2 -j MARK --set-mark 11 > $IPTCMD all --source 192.168.0.3 -j MARK --set-mark 11 ## > linuxlaptop > $IPTCMD all --destination 192.168.0.3 -j MARK --set-mark 11 > $IPTCMD all --source 192.168.0.4 -j MARK --set-mark 11 ## > compaqlaptop > $IPTCMD all --destination 192.168.0.4 -j MARK --set-mark 11 > > # Class 12 > for PORTPROTODEST in $CLASS12 ; do > PORT=`echo $PORTPROTODEST | awk -F/ ''{print $1}''` > PROTO=`echo $PORTPROTODEST | awk -F/ ''{print $2}''` > DEST=`echo $PORTPROTODEST | awk -F/ ''{print $3}''` > > if [ "$PROTO" = "both" ]; then > if [ "$DEST" = "both" ]; then > $IPTCMD tcp --dport $PORT -j MARK --set-mark 12 > $IPTCMD udp --sport $PORT -j MARK --set-mark 12 > $IPTCMD tcp --sport $PORT -j MARK --set-mark 12 > $IPTCMD udp --dport $PORT -j MARK --set-mark 12 > else > $IPTCMD tcp --$DEST $PORT -j MARK --set-mark 12 > $IPTCMD udp --$DEST $PORT -j MARK --set-mark 12 > fi > else > if [ "$DEST" = "both" ]; then > $IPTCMD $PROTO --dport $PORT -j MARK --set-mark 12 > $IPTCMD $PROTO --sport $PORT -j MARK --set-mark 12 > else > $IPTCMD $PROTO --$DEST $PORT -j MARK --set-mark 12 > fi > fi > done > > # Class 13 default > $IPTCMD udp --sport 4660:4670 -j MARK --set-mark 13 > $IPTCMD udp --dport 4660:4670 -j MARK --set-mark 13 > $IPTCMD udp --dport 4242 -j MARK --set-mark 13 > > tc qdisc add dev $DEV handle ffff: ingress > > tc filter add dev $DEV parent ffff: protocol ip prio 4 u32 match > ip src \ > 0.0.0.0/0 police rate $[${DOWNLINK}-2]kbit burst 10k drop > flowid :1_______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/