
|
 |
|
ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.
| Въпрос |
| От: SS |
Дата: 05/20/2007 |
Привет!
Ето проблема.
Ако шейпвам трафика с htb.init, htb-tools или някой от
готовите скриптоев - всичко е ОК, но трафика към сървера
същo е лимитиран - което не е feature :-).
Аз исках да пусна нещо семпло - Висок приоритет за някои
услуги + IP-тата на IPphones. По-нискък прио за ниакои
услуги и вси4ко друго в коша.
Оказа се че не става...лесно.
Ето work-arounda...
#!/bin/bash
# TODO
# Put variables for RATE and CAIL
# Some VARIABLES - please change them to suit to your
config
DEV=eth1
LOCAL_IP=192.168.1.1
EXT_IP=89.190.203.195
LAN_NET=192.168.1.1/24
RATE=
CEIL=
# TC="/opt/sbin/tc"
TC="/sbin/tc"
# IPTABLES="/opt/sbin/iptables"
IPTABLES="/sbin/iptables"
if [ "$1" = "status" ]
then
echo "[qdisc]"
$TC -s qdisc show dev $DEV
echo "[class]"
$TC -s class show dev $DEV
echo "[filter]"
$TC -s filter show dev $DEV
echo "[iptables]"
$IPTABLES -t mangle -L shape_local -v -x 2>
/dev/null
$IPTABLES -t mangle -L shape_all -v -x 2>
/dev/null
exit
fi
if [ "$1" = "stop" ]
then
# Reset everything to a known state (cleared)
$TC qdisc del dev $DEV root 2> /dev/null > /dev/null
# RESET iptables rules
$IPTABLES -t mangle -D POSTROUTING -j shape_local
$IPTABLES -t mangle -F shape_local
$IPTABLES -t mangle -F shape_all
$IPTABLES -t mangle -X shape_local
$IPTABLES -t mangle -X shape_all
exit
fi
# Reset everything to a known state (cleared)
$TC qdisc del dev $DEV root 2> /dev/null > /dev/null
$IPTABLES -t mangle -N shape_local
$IPTABLES -t mangle -N shape_all
$IPTABLES -t mangle -A POSTROUTING -j shape_local
$IPTABLES -t mangle -A shape_local -s $LOCAL_IP -d $LAN_NET
-j MARK --set-mark 20
$IPTABLES -t mangle -A shape_local -s $LOCAL_IP -d
$LAN_NET -j RETURN
$IPTABLES -t mangle -A shape_local -s $EXT_IP -d $LAN_NET
-j MARK --set-mark 20
$IPTABLES -t mangle -A shape_local -s $EXT_IP -d $LAN_NET
-j RETURN
$IPTABLES -t mangle -A shape_local -j shape_all
# И от тук вече може или по услуги....или всичко за тест-а
$IPTABLES -t mangle -A shape_all -d $LAN_NET -j MARK
--set-mark 30
#/sbin/tc qdisc del dev $DEV root
/sbin/tc qdisc add dev $DEV root handle 1 htb default 40 r2q
100
/sbin/tc class add dev $DEV parent 1:2 classid 1:20 htb rate
100Mbit burst 15k
/sbin/tc qdisc add dev $DEV parent 1:20 handle 20 sfq
perturb 10
/sbin/tc filter add dev $DEV parent 1:0 protocol ip prio 200
handle 20 fw classid 1:20
/sbin/tc class add dev $DEV parent 1:2 classid 1:30 htb rate
128Kbit burst 15k
/sbin/tc qdisc add dev $DEV parent 1:30 handle 30 sfq
perturb 10
/sbin/tc filter add dev $DEV parent 1:0 protocol ip prio 200
handle 30 fw classid 1:30
/sbin/tc class add dev $DEV parent 1:2 classid 1:40 htb rate
1Kbit ceil 64Kbit burst 15k
/sbin/tc qdisc add dev $DEV parent 1:40 handle 40 sfq
perturb 10
Въпроса ми е:
Има ли по-лесен начин?
Благодаря предварително.
|
| Отговор #1 |
| От: flipz |
Дата: 06/03/2007 |
значи искаш да зададеш приоритети за отделните маркове, това
ли да разбираме?
аз имам един въпрос, в този вид този скрипт работи ли ?
|
| Отговор #2 |
| От: SS |
Дата: 06/07/2007 |
Скрипта работи.
Но трябва да се оптимизира.
Да се направият подкласове - за VoIP, ssh, web.
Иначе в този си вид - работи.
Може би с iptables да се направи по-добро маркиране...Дойде
ми нещо на ум...но за сега нямам време да го тествам.
Скрипта го тествах и от локалния сервер ( където е стартиран
шейпъра ) дърпам на MAX, а от нета на колкото си наглася
RATE i CEIL ( които все оше генерирам с HTB.init :(.
|
<< Kak da si zapazvam Ubuntu-to pri reinstal (2
) | problem (6
) >>
|
|
|
|
|
|