есть шлюз поднимающий (ADSL) интернет соединение до провайдера через pppoe (eth1), в внутреннюю сеть выходит eth0, интерфейс в инет - ppp0 , из wondershaper, еще каких-то скриптов и примеров на lartc сделала вот такой вот "франкенштейновский скрипт" (ниже), есть ли в нем ляпы, можно ли его существенно улучшить (как, чем?)
и работает ли вообще вторая его часть (классификация траффика) ?
#!/bin/sh
# Эта часть скрипта взята из wondershaper
DEV=ppp0
DOWNLINK=7200
UPLINK=740
# 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
# 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
tc class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit allot 1500 prio 5 bounded isolated
# классы приоритетов
tc class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit allot 1600 prio 1 avpkt 1000
tc class add dev $DEV parent 1:1 classid 1:20 cbq rate $[9*$UPLINK/10]kbit allot 1600 prio 2 avpkt 1000
tc class add dev $DEV parent 1:1 classid 1:30 cbq rate $[8*$UPLINK/10]kbit allot 1600 prio 2 avpkt 1000
tc class add dev $DEV parent 1:1 classid 1:40 cbq rate $[7*$UPLINK/10]kbit allot 1600 prio 2 avpkt 1000
tc class add dev $DEV parent 1:1 classid 1:50 cbq rate $[6*$UPLINK/10]kbit allot 1600 prio 2 avpkt 1000
tc class add dev $DEV parent 1:1 classid 1:60 cbq rate $[5*$UPLINK/10]kbit allot 1600 prio 2 avpkt 1000
# all 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
tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev $DEV parent 1:40 handle 40: sfq perturb 10
tc qdisc add dev $DEV parent 1:50 handle 50: sfq perturb 10
tc qdisc add dev $DEV parent 1:60 handle 60: sfq perturb 10
########## 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
вторая часть (из примеров скриптов lartc или откуда-то еще)
$1 = ppp0
Классификация траффика
# служебные пакеты, самый высокий приоритет
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --syn -m length --length 40:68 -j CLASSIFY --set-class 1:10
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --tcp-flags ALL SYN,ACK -m length --length 40:68 -j CLASSIFY --set-class 1:10
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --tcp-flags ALL ACK -m length --length 40:100 -j CLASSIFY --set-class 1:10
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --tcp-flags ALL RST -j CLASSIFY --set-class 1:10
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --tcp-flags ALL ACK,RST -j CLASSIFY --set-class 1:10
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --tcp-flags ALL ACK,FIN -j CLASSIFY --set-class 1:10
# траффик высокого приоритета
#interactive ssh
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --sport ssh -m length --length 40:100 -j CLASSIFY --set-class 1:10
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --dport ssh -m length --length 40:100 -j CLASSIFY --set-class 1:10
# dns
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p udp --dport domain -j CLASSIFY --set-class 1:10
# тоже высокий приоритет
# исходящий траффик c порта 8085
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --sport 8085 -j CLASSIFY --set-class 1:20
# SVN входящий
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --dport 3690 -j CLASSIFY --set-class 1:20
# GIT входящий
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --dport 9418 -j CLASSIFY --set-class 1:20
# NORMAL PRI
# исходящий траффик на веб сервера и почту
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp -m multiport --dport http,pop3,imap,https -j CLASSIFY --set-class 1:30
# scp
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --sport ssh -m length --length 101: -j CLASSIFY --set-class 1:30
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --dport ssh -m length --length 101: -j CLASSIFY --set-class 1:30
# LOWER PRI
# icmp
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p icmp -m length --length 28:1500 -m limit --limit 2/s --limit-burst 5 -j CLASSIFY --set-class 1:40
# udp
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p udp -j CLASSIFY --set-class 1:40
# LOWEST PRI
# исходящий траффик с локального веб сервера имеет самый низкий приоритет
/sbin/iptables -t mangle -A POSTROUTING -o $1 -p tcp --sport 80 -j CLASSIFY --set-class 1:60
Ответ на:
комментарий
от VladimirMalyk
Ответ на:
комментарий
от Sylvia
Ответ на:
комментарий
от mky
Ответ на:
комментарий
от Sylvia
Ответ на:
комментарий
от mky
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум CBQ (2011)
- Форум опять IMQ + TC (2007)
- Форум [классика][shaper][tc][iptables] работает, но криво (2011)
- Форум traffic shaping w fwmark (2001)
- Форум IPTABLES редирект 80 го порта (2009)
- Форум Вопрос по HTB, ESFQ... (2006)
- Форум ESFQ 'нечестно' делит канал (2006)
- Форум DSCP на iptables (2013)
- Форум Помогите с HTB (2004)
- Форум Реализация HTB (2006)