[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Шейпер, торрент и загрузка канала.



Проще установить 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 -
> картина не изменилась.



Reply to: