Проще установить wondershaper, этот скрипт отлично настраивает htb.
On Monday 12 January 2009 22:54:38 vanessa wrote: > Имею в наличии следующее > 1) подключение ADSL на скорости 256/128 > 2) небольшую домашнюю сеть на 4 комп. > 3) шлюз на Ленни, чтобы компы в инет бегали. > > модем настроен в режиме бриджа. на шлюзе с помощью PPPoE поднято > интерфейс ppp0, все это бегает через eth0 и более туде ничего не > подключено. Интефейс wlan0 смотрит в домашнюю сеть (WiFi, здесь все > работает). настроен маскарадинг, интернет есть на всех компах. > > также на один комп во внутренней сети DNAT'ом проброшен TCP-порт для > торрет-клиента. торрен также работает и на прием и напередачу. Но тут > возникает проблема: как только запускаю его (Торрент) все остальное > умирает. даже пинги не все идут. правда nload на шлюзе показывает > среднюю загрузку на ppp0 ~ 240kbit на прием и ~ 110 на передачу. > > начитавшись LARTC попытался сделать следующее > сам шейпер > --------------------------------------------------------------------------- >---------------------------------------------------------------------------- >------- #! / BIN / Bash > > DOWNLINK = 210 > UPLINK = 110 > > tc qdisc del dev $PPP_IFACE root 2> /dev/null> /dev /null > tc qdisc del dev $PPP_IFACE ingress 2> /dev/null> /dev/null > > tc qdisc add dev $PPP_IFACE root handle 1: htb default 20 > > tc class add dev $PPP_IFACE parent 1: classid 1:1 htb rate $(UPLINK) > kbit burst 50b > # ceil $ (UPLINK) Kbit > > tc class add dev $PPP_IFACE parent 1:1 classid 1:10 htb rate $(UPLINK) > kbit burst 50b prio 1 > # ceil $(UPLINK) kbit prio 1 > > # tc class add dev $PPP_IFACE parent 1:1 classid 1:15 htb rate $ [3 * > $UPLINK/10] kbit ceil $(UPLINK) Kbit \ > # Burst 100b prio 2 > > tc class add dev $PPP_IFACE parent 1:1 classid 1:20 htb rate 1kbit ceil > $(UPLINK) kbit burst 50b prio 3 > > tc qdisc add dev $PPP_IFACE parent 1:10 Handle 10: sfq perturb 10 > # tc qdisc add dev $PPP_IFACE parent 1:15 Handle 15: sfq perturb 10 > tc qdisc add dev $PPP_IFACE parent 1:20 Handle 20: sfq perturb 10 > > tc filter add dev $PPP_IFACE parent 1:0 protocol ip prio 1 handle 0x10 > fw flowid 1:10 > > tc filter add dev $PPP_IFACE parent 1:0 protocol ip prio 2 handle 0x15 > fw flowid 1:10 > > tc qdisc add dev $PPP_IFACE handle ffff: ingress > > tc filter add dev $PPP_IFACE parent ffff: protocol ip prio 50 u32 match > ip src \ > 0.0.0.0 / 0 police rate $(DOWNLINK) kbit burst 10k drop flowid: 1 > --------------------------------------------------------------------------- >---------------------------------------------------------------------------- >--------------- положено в /etc/ppp/ip-up.d/shaper и вистовлено права 755 > > маркирую пакеты следующим образом > > iptables -t magle -A POSTROUTING -o ppp0 -p icmp -j MARK - Set-mark 0x10 > iptables -t magle -A POSTROUTING -o ppp0 -p icmp -j RETURN > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --tcp-flags SYN, > RST, ACK SYN -j MARK --set-mark 0x10 > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --tcp-flags SYN, > RST, ACK SYN -j RETURN > iptables -t magle -A POSTROUTING -o ppp0 -p udp -m udp --dport 53 -j > MARK --set-mark 0x10 > iptables -t magle -A POSTROUTING -o ppp0 -p udp -m udp --dport 53 -j RETURN > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 80 -j > MARK --set-mark 0x15 > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 80 -j RETURN > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 143 -j > MARK --set-mark 0x15 > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 143 -j > RETURN > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 22-j MARK > --set-mark 0x15 > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 22 -j RETURN > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 5222 -j > MARK --set-mark 0x15 > iptables -t magle -A POSTROUTING -o ppp0 -p tcp -m tcp --dport 5222 -j > RETURN > > > после того как все это запущенное у торрента падает закачка раз этак в > десять, nload показывает скорость загрузки ppp0 ~ 25kbit, отдача > остается месте на уровне ~ 110kbit. все, что попадает в класс 1:10 > начинает бегать, даже когда закачиваю файлы с веба то nload показывает > скорость загрузки ppp0 240/110kbit. все, что попадает в 1:20 - приема > почти нет, но передается в общем то без проблем. Я вот этого не понимаю. > Все что я делал касается только исходящего трафика, почему же тогда нет > входного когда исходящий трафик идет через класс 1:20? > > я пробовал определить в какой момент оно умирает - после создания класса > 1:20 т.е. > > tc qdisc add dev ppp0 root handle 1: .... # Работает > tc class add dev ppp0 parent 1: classid 1:1 ..... # Работает > tc class add dev ppp0 parent 1:1 classid 1:10 ...... # Работает > tc class add dev ppp0 parent 1:1 classid 1:20 ....... # После этого > умирает. > > > если сделать > tc class del dev ppp0 classid 1: 20 > вновь начинает работать. > > что ему можно сделать чтоб оно грузило канал ну хотя бы на 90% в оба > стороны и при этом была бы еще и возможна интерактивная работа? > > PS: я пробовал разделить трафик по трем классам - все что менее важно > (то, что маркировано 0х15) пустить в класс 1:15 - не помогло. > > PPS: проверил все еще на одном шлюзе, там WIMAX, скорость 512/512 - > кортинка аналогичная, все работает хороше - торрен принимиет очень мало. > > PPPS: попробовал весь низкоприоритетный трафик не пускать в клас 1:20 по > умолчанию а смаркировал его и отправил в специально созданны клас 1:19 - > картина не изменилась.

