Re: трафик-шейпер (?)

2010-07-10 Пенетрантность vanessa

10.07.10 01:12, Nicholas написав(ла):

On 05.07.2010 11:06, Alex Kicelew wrote:

Есть ip-телефония, которая время от времени (не всегда) затыкается,


Конечно есть множество gui, но зная как работает основа и gui
становиться понятнее.

Вот простой пример конфига для tc (шейпера):

#!/bin/bash
#создаем для интерфейса wlan0 root 1: и шейпер (дисциплину) htb, с
дефолтным потоком (руковом) 9991
tc qdisc add dev wlan0 root handle 1: htb default 9991

#создаем основной рукав  также с htb и указываем общую ширину канала
tc class add dev wlan0 parent 1: classid 1: htb rate 1mbps burst 150k

#создаем дефолтный подрукав 9991 и с помощью htb даем полосу для
трафика не попадающего ни под одно правило
#(как видите дефолтный 1:9991 у нас вытекает из основного 1:)
tc class add dev wlan0 parent 1: classid 1:9991 htb rate 64kbps ceil
128kbps burst 150k


#для подрукава 9991 определим оконечную дисциплину sqf
tc qdisc add dev wlan0 parent 1:9991 handle 9991: sfq perturb 10
#..

#теперь создадим уже нормальный подрукав, например 22 и определим
ему ширину с помощью htb (rate - желаемая, ceil - максимальная, burst -
точность)
tc class add dev wlan0 parent 1: classid 1:22 htb rate 64kbps ceil
128kbps burst 15k

#для подрукава 22 определим оконечную дисциплину sqf
#(оконечная дисциплина sqf - рекомендация ведущих линуксоводов)
tc qdisc add dev wlan0 parent 1:22 handle 22: sfq perturb 10


#Теперь самое интересное - создадим фильтры по которым будем забирать
#нужный трафик из дефолтного в свежесозданный 22-ой.
tc filter add dev wlan0 parent 1: protocol ip prio 1 u32 match ip dport
22 0x flowid 1:22
tc filter add dev wlan0 parent 1: protocol ip prio 1 u32 match ip tos
0x10 0xff flowid 1:22

#(приведенный пример - не самый лучший - проще фильтровать по dst ip и
порту, без 0xff...)

Все.


PS
И рукавов, и фильтров для них можно насоздавать множество.
Фильтровать можно и по ip и по портам и по меткам - примеры легко гуглятся.

http://www.opennet.ru/docs/RUS/LARTC/

tc - это просто, проще чем с gui разбираться.

Если есть желание, можно использовать плагины для iptables, что бы
давать метки, например, p2p или скайпу и, вроде бы, эти метки увидит tc.

Шейпится только исходящий трафик:
Для сервера-посредника - в любом случае любой трафик в какой-то момент
является исходящим.
Если нельзя, но очень хочется, то можно шейпить и входящий трафик (есть
спец дисциплина), но смысла в этом нет никогого - трафик уже пришел, все
что вы можете сделать - запросить его еще раз, загрузив канал еще
больше. Желание шейпить входящий трафик обычно проходит после прочтения
документации.


то-же LARTC говорит что можно шейпить и входящий трафик. особенно TCP. 
Если потерять некоторое количество пакетов в TCP-соединении то 
отправляющая сторона подумает что линия перегружена и сбавит скорость. 
Но вообщем-то да, потерянные пакеты будут повторно посланы, но уже на 
меньшей скорости и это никак не влияет на UDP трафик


А еще входящий трафик, таже если он не транзитный можна сделать 
исходщим, с помощью псевдоустройства imq и шейпить егу уже как 
захочется. Но для этого надо патчить ядро и iptabels. Врочем для того 
чтоб шейпить p2p и скайп его тоже надо патчить.






Посмотреть правила:
#!/bin/bash.
tc -s -d qdisc show dev wlan0
tc -s -d class show dev wlan0
tc -s -d filter show dev wlan0

Удалить:
#!/bin/bash.
tc qdisc del dev wlan0 root




PS а есть задачка еще интереснее: шейпить полудуплексный канал. Всякие 
новомодные нынче Wimax’сы, они ведь полудуплексные, тоесть входящий и 
исходящий трафик впихивается в одни ворота, если канал на передачу 
забит то принять ничего не получится.



--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c380d7f.90...@rabitsa.org.ua



Re: трафик-шейпер (?)

2010-07-10 Пенетрантность Mikhail A Antonov
Nicholas пишет:
 Если нельзя, но очень хочется, то можно шейпить и входящий трафик (есть
 спец дисциплина), но смысла в этом нет никогого - трафик уже пришел, все
 что вы можете сделать - запросить его еще раз, загрузив канал еще
 больше. Желание шейпить входящий трафик обычно проходит после прочтения
 документации.
 
А вот не соглашусь. Если у тебя канал 512кбит, никакого шейпера на твоей стороне
и ты сам запрашиваешь больше чем канал может выжать (пару мегабит например)
а провайдер всё что выше 512кбит просто дропает - начинаются не хилые лаги
(пинг 1000-3000мс, потери 30-40%). Однако стоит нам поставить wondershaper и 
сказать
что мол канал у нас 500кбит - так всё замечательно. Все сетевые приложения
дружно понимают что выше головы не прыгнешь и нормальненько так укладываются в 
эти
выданные 512 и никаких потерь и таких высоких задержек.
Это из собственного опыта. На dsl такое случается.

-- 
Best regards,
 Mikhail.
-
xmpp: ant...@stopicq.ru
www: http://www.antmix.pp.ru/




signature.asc
Description: OpenPGP digital signature


Re: трафик-шейпер (?)

2010-07-09 Пенетрантность Nicholas

On 05.07.2010 11:06, Alex Kicelew wrote:

Есть ip-телефония, которая время от времени (не всегда) затыкается,


Конечно есть множество gui, но зная как работает основа и gui 
становиться понятнее.


Вот простой пример конфига для tc (шейпера):

#!/bin/bash
#создаем для интерфейса wlan0 root 1: и шейпер (дисциплину) htb, с 
дефолтным потоком (руковом) 9991

tc qdisc add dev wlan0 root handle 1: htb default  9991

#создаем основной рукав  также с htb и указываем общую ширину канала
tc class add dev wlan0 parent 1: classid 1: htb rate 1mbps burst 150k

#создаем дефолтный подрукав 9991 и с помощью htb даем полосу для 
трафика не попадающего ни под одно правило

#(как видите дефолтный 1:9991 у нас вытекает из основного 1:)
tc class add dev wlan0 parent 1: classid 1:9991 htb rate 64kbps ceil 
128kbps burst 150k



#для подрукава 9991 определим оконечную дисциплину sqf
tc qdisc add dev wlan0 parent 1:9991 handle 9991: sfq perturb 10
#..
#теперь создадим уже нормальный подрукав, например 22 и определим 
ему ширину с помощью htb (rate - желаемая, ceil - максимальная, burst - 
точность)
tc class add dev wlan0 parent 1: classid 1:22 htb rate 64kbps ceil 
128kbps burst 15k


#для подрукава 22 определим оконечную дисциплину sqf
#(оконечная дисциплина sqf - рекомендация ведущих линуксоводов)
tc qdisc add dev wlan0 parent 1:22 handle 22: sfq perturb 10


#Теперь самое интересное - создадим фильтры по которым будем забирать 
#нужный трафик из дефолтного в свежесозданный 22-ой.
tc filter add dev wlan0 parent 1: protocol ip prio 1 u32 match ip dport 
22 0x flowid 1:22
tc filter add dev wlan0 parent 1: protocol ip prio 1 u32 match ip tos 
0x10 0xff  flowid 1:22


#(приведенный пример - не самый лучший - проще фильтровать по dst ip и 
порту, без 0xff...)


Все.


PS
И рукавов, и фильтров для них можно насоздавать множество.
Фильтровать можно и по ip и по портам и по меткам - примеры легко гуглятся.

http://www.opennet.ru/docs/RUS/LARTC/

tc - это просто, проще чем с gui разбираться.

Если есть желание, можно использовать плагины для iptables, что бы 
давать метки, например, p2p или скайпу и, вроде бы, эти метки увидит tc.


Шейпится только исходящий трафик:
Для сервера-посредника - в любом случае любой трафик в какой-то момент 
является исходящим.
Если нельзя, но очень хочется, то можно шейпить и входящий трафик (есть 
спец дисциплина), но смысла в этом нет никогого - трафик уже пришел, все 
что вы можете сделать - запросить его еще раз, загрузив канал еще 
больше. Желание шейпить входящий трафик обычно проходит после прочтения 
документации.



Посмотреть правила:
#!/bin/bash.
tc -s -d qdisc show dev wlan0
tc -s -d class show dev wlan0
tc -s -d filter show dev wlan0

Удалить:
#!/bin/bash.
tc qdisc del dev wlan0 root


--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/i18oed$on...@dough.gmane.org



Re: трафик-шейпер (?)

2010-07-08 Пенетрантность Alex Kicelew
Alex Kicelew - debian-russian@lists.debian.org  @ Mon, 05 Jul 2010 15:06:56 
+0400:

 AK Есть ip-телефония, которая время от времени (не всегда) затыкается, явно
 AK из-за недостаточного канала. Есть желание отшейпить на роутере (там тоже
 AK дебиан) так, чтобы весь канал отдавался ip-телефонии (т.е. каналу до ее
 AK провайдера), а всему остальному -- все, что останется. Но я никогда
 AK раньше такого не делал, и не помню, чем это делается. Смутно брезжат
 AK какие-то триграмматоны -- afq, bfq, cfq...

Спасибо за ответы.

-- 
Alex Kicelew arko...@gmail.com ICQ 3887592


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87lj9m5hkf@p7.icsmir.ru



Re: трафик-шейпер (?)

2010-07-06 Пенетрантность Валентин Лоскутов
Здравствуйте.

Есть ip-телефония, которая время от времени (не всегда) затыкается, явно
из-за недостаточного канала. Есть желание отшейпить на роутере (там тоже
дебиан) так, чтобы весь канал отдавался ip-телефонии (т.е. каналу до ее
провайдера), а всему остальному -- все, что останется. Но я никогда
раньше такого не делал, и не помню, чем это делается. Смутно брезжат
какие-то триграмматоны -- afq, bfq, cfq...

я использую
http://www.opennet.ru/base/net/adsl_shaper.txt.html

Но сейчас, я так понимаю, оно выросло в
http://sourceforge.net/projects/asfs/files/


До свидания.


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100706113143.006e8...@rim2000m.ru



трафик-шейпер (?)

2010-07-05 Пенетрантность Alex Kicelew
Hi.

Есть ip-телефония, которая время от времени (не всегда) затыкается, явно
из-за недостаточного канала. Есть желание отшейпить на роутере (там тоже
дебиан) так, чтобы весь канал отдавался ip-телефонии (т.е. каналу до ее
провайдера), а всему остальному -- все, что останется. Но я никогда
раньше такого не делал, и не помню, чем это делается. Смутно брезжат
какие-то триграмматоны -- afq, bfq, cfq...

-- 
Alex Kicelew arko...@gmail.com ICQ 3887592


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87hbketcfj@p7.icsmir.ru



Re: трафик-шейпер (?)

2010-07-05 Пенетрантность Maxim
Ставь и запускай wondershaper: sudo /usr/sbin/wondershaper интерфейс 
входящий исходящий

Будет работать.

05.07.2010 14:06, Alex Kicelew пишет:

Hi.

Есть ip-телефония, которая время от времени (не всегда) затыкается, явно
из-за недостаточного канала. Есть желание отшейпить на роутере (там тоже
дебиан) так, чтобы весь канал отдавался ip-телефонии (т.е. каналу до ее
провайдера), а всему остальному -- все, что останется. Но я никогда
раньше такого не делал, и не помню, чем это делается. Смутно брезжат
какие-то триграмматоны -- afq, bfq, cfq...

   



--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c31dded.2030...@vimas.com



Re: трафик-шейпер (?)

2010-07-05 Пенетрантность Nicholas

On 05.07.2010 11:06, Alex Kicelew wrote:

 Есть желание отшейпить на роутере


http://www.opennet.ru/base/net/htb_saga.txt.html



--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/i0tb93$gv...@dough.gmane.org



Re: Шейпер и два pppoe соединения.

2010-01-28 Пенетрантность Stanislav Maslovski
On Tue, Jan 26, 2010 at 10:33:30AM +0200, Nick wrote:
 Имеется такая схема:
 dsl modem  - router. На нём устанавливается два pppoe соединения.
 Нужно нарезать канал так, чтоб они не мешали друг другу.

И что же это значит - не мешали друг другу? Во-первых, они и так друг
другу мешать не будут, пока пропускной способности канала достаточно.
А когда канала уже не хватает - возможны разные стратегии.

 Пока я думаю, что нужно поднять виртуальный интерфейс на выход в
 сторону модема, и настроить шейпер там. Или может есть способы как
 шейпить сам pppoe трафик ? Смущает то, что этот pppoe не tcp/ip.

Если у тебя ppp интерфейсы на роутере поднимаются, то и TCP/IP трафик,
который ты в эти интерфейсы роутишь, там тоже должен быть. 

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Шейпер и два pppoe соединения.

2010-01-26 Пенетрантность Nick
Имеется такая схема:
dsl modem  - router. На нём устанавливается два pppoe соединения.
Нужно нарезать канал так, чтоб они не мешали друг другу. Пока я думаю,
что нужно поднять виртуальный интерфейс на выход в сторону модема, и
настроить шейпер там.
Или может есть способы как шейпить сам pppoe трафик ? Смущает то, что
этот pppoe не tcp/ip.


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

2009-01-19 Пенетрантность Валентин Лоскутов
Здравствуйте.

Имею в наличии следующее
1) подключение ADSL на скорости 256/128
2) небольшую домашнюю сеть на 4 комп.
3) шлюз на Ленни, чтобы компы в инет бегали.

модем настроен в режиме бриджа. на шлюзе с помощью PPPoE поднято
интерфейс ppp0, все это бегает через eth0 и более туде ничего не
подключено. Интефейс wlan0 смотрит в домашнюю сеть (WiFi, здесь все
работает). настроен маскарадинг, интернет есть на всех компах.

также на один комп во внутренней сети DNAT'ом проброшен TCP-порт для
торрет-клиента. торрен также работает и на прием и напередачу. Но тут
возникает проблема: как только запускаю его (Торрент) все остальное
умирает. даже пинги не все идут. правда nload на шлюзе показывает
среднюю загрузку на ppp0 ~ 240kbit на прием и ~ 110 на передачу.

начитавшись LARTC попытался сделать следующее
--[поскипано]---
положено в /etc/ppp/ip-up.d/shaper и вистовлено права 755

маркирую пакеты следующим образом

--[поскипано]---


Была похожая проблема. Сервер (он же шлюз), на нем Verlihub (DC++ сервер) и 
microdc2 (DC++ клиент). Шейпинга в Microdc2 нет, поэтому пришлось читать LARTC. 
После прочтения родился скрипт (правил что-то взятое там). Шейпит исходящий 
DC++ трафик с внешнего интерфейса (в моем случае это все, что уходит на 
172.16.0.0/12), оставляя возможность нормального серфинга клиентам в локалке и 
управления сервером по ssh. Причем, маркировать пакеты через iptables не 
пришлось. 

#!/bin/bash

#http://www.debian-administration.org/users/kapal/weblog/1
#http://lartc.org/howto/lartc.qdisc.filters.html

#for module in sch_cbq sch_tbf sch_sfq sch_prio cls_u32; do
for module in sch_htb sch_sfq sch_prio cls_u32; do
if ! modprobe $module; then
   echo **TC_SHAPER: could not load module $module
   exit
fi
done

DEVICE=eth0

RATE=640kbit

SHARE1=100kbit
SHARE2=200kbit
SHARE3=300kbit
SHARE4=400kbit

# Buckets reflect IP last Octet for now
BSSH=22
BMICRODC=411
BINTERNAL=250
BDEFAULT=255

start (){

# Create QDISC using HTB
tc qdisc add dev $DEVICE root handle 1: htb default $BDEFAULT
tc class add dev $DEVICE parent 1: classid 1:1 htb rate $RATE ceil $RATE

# Create Buckets
tc class add dev $DEVICE parent 1:1 classid 1:$BSSH htb rate $SHARE2 ceil $RATE
tc class add dev $DEVICE parent 1:1 classid 1:$BMICRODC htb rate $SHARE3 ceil 
$SHARE4
#tc class add dev $DEVICE parent 1:1 classid 1:$BDEFAULT htb rate $SHARE1 ceil 
$RATE

# Each IP address is put in a bucket.

tc filter add dev $DEVICE protocol ip parent 1:0 prio 1 u32 match ip sport 22 
0x flowid 1:$BSSH
tc filter add dev $DEVICE protocol ip parent 1:0 prio 5 u32 match ip dst 
172.16.0.0/12 flowid 1:$BMICRODC
# Repeat as needed changing IP and the Bucket name


# Make the dross play nicely using SFQ
#tc qdisc add dev $DEVICE parent 1:$BDEFAULT handle 10: sfq perturb 10
}

stop()
{
# Delete the root of the tree to get a pfifo_fast back
tc qdisc del dev $DEVICE root
}

status()
{
echo  QDISC STATS =
tc -s qdisc
echo  CLASS STATS =
tc -s class show dev $DEVICE
}

case $1 in
  start)
start
;;
  stop)
stop
;;
  status)
status
;;
  *)
echo Usage: $0 {start|stop|status}
exit 1
esac


Шейпить входящий DC трафик не пришлось, бо сервер ничего не качает, а только 
раздает.
В итоге на канале 640кбит/с исходящий трафик в сторону качающих по DC урезан до 
400кбит/с. На всякий случай, для управления сервером по ssh выделена полоса не 
менее 200кбит/с.

В Вашем случае в приведенном коде я не вижу фильтра для 1:20 (а также, 
маркировки пакетов в iptables). А 1:10 использует всю ширину канала. 
Опять же,
tc class add dev $PPP_IFACE parent 1:1 classid 1:20 htb rate 1kbit ceil 
$(UPLINK) kbit burst 50b prio 3
ИМХО лучше заменить на 
tc class add dev $PPP_IFACE parent 1:1 classid 1:20 htb rate 1kbit ceil $ [8 * 
$UPLINK/10] kbit burst 50b prio 3
И добавить правильный фильтр.


До свидания.


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-01-17 Пенетрантность vanessa

Nicholas написав(ла):
2. Торрент может хитрить специально, даже с ftp люди предпочетают 
использовать модули вроде ip_conntrack_ftp для ip tables, возможно 
есть специальные средства для mark торрентов. Посмотрите, что нового 
на таких сайтах как:

http://sourceforge.net/projects/iptables-p2p/



что-то оно у меня не собирается.
% make
make -C iptables
make[1]: Entering directory `/home/vanessa/src/iptables-p2p-0.3.0a/iptables'
gcc -O2 -Wall -DIPTABLES_VERSION=\1.3.8\ -I../common  -c -o 
libipt_p2p.o libipt_p2p.c
libipt_p2p.c:73: warning: initialization makes integer from pointer 
without a cast

libipt_p2p.c:73: error: initializer element is not computable at load time
libipt_p2p.c:73: error: (near initialization for ‘p2p.revision’)
libipt_p2p.c:74: warning: initialization makes pointer from integer 
without a cast
libipt_p2p.c:76: warning: initialization makes integer from pointer 
without a cast

libipt_p2p.c:77: warning: initialization from incompatible pointer type
libipt_p2p.c:78: warning: initialization from incompatible pointer type
libipt_p2p.c:79: warning: initialization from incompatible pointer type
libipt_p2p.c:80: warning: initialization from incompatible pointer type
libipt_p2p.c:81: warning: initialization from incompatible pointer type
libipt_p2p.c:83: warning: initialization from incompatible pointer type
make[1]: *** [libipt_p2p.o] Error 1
make[1]: Leaving directory `/home/vanessa/src/iptables-p2p-0.3.0a/iptables'
make: *** [linux-2.6] Error 2



пакет iptables-dev и хедери ядра установлени.
Вообще интересно почему ета весщ не включена в дистрибутив, оно что, 
никому ненадо ?



--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-01-17 Пенетрантность Nicholas

vanessa wrote:

пакет iptables-dev и хедери ядра установлени.
Вообще интересно почему ета весщ не включена в дистрибутив, оно что, 
никому ненадо ?


Вполне возможно, что оно надо только провайдерам, борющимся с p2p как 
классом. Потому как для сервера любой трафик, в какой-то момент, 
является исходящим и шейпится по ip (клиентам)  (плюс приоретизация 
shell, voip и т.д.).
А тот случай, когда торрент сервер у вас на маршрутизаторе, может быть 
улажен с помошью самого rtorrentа.



--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-01-17 Пенетрантность vanessa
А кто что скажет про l7-filter 
(http://sourceforge.net/projects/l7-filter/) оно вроде тоже умеет 
распознавать р2р и к тому же посвежее будет?



--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-01-13 Пенетрантность vanessa

Nicholas wrote:

4. Неплохая дока по htb:
http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm

Спасибо почитал и ето. А не подскажете ли как вибирається значение 
параметра burst ? налили много води в разделе 5 но я так и не понял что 
к чему.




--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-01-13 Пенетрантность Nicholas

vanessa wrote:
Спасибо почитал и ето. А не подскажете ли как вибирається значение 
параметра burst ? 


Я так поянял: значение rate это среднее значение, если юзер качает 
фильм он его и получит.
А вот если он смотрит www - качает страницу и читает - то в этой 
ситуации ему можно дать трафика с авансом - что бы сразу закачалась - 
ведь юзеры все равно не синхронно кликают, так что тут идеально точное 
разделение полосы не нужно, скорее наоборот.
Поэтому поставил 64kbps ceil 128kbps burst 150k  - что бы на страницу 
хватало, с мотивировкой жалко что ли ?
Но эксперементы с разными вариантами не проводил. Будут ли проблемы с 
памятью при большой нагрузке или наоборот можно побольше сделать - 
самому интересно.


--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-01-12 Пенетрантность vanessa

Имею в наличии следующее
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 : ingress

tc filter add dev $PPP_IFACE parent : 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 -
кортинка аналогичная, все работает

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

2009-01-12 Пенетрантность Nicholas

1. Управлять шириной канала торрента лучше всего самим торрентом.
2. Торрент может хитрить специально, даже с ftp люди предпочетают 
использовать модули вроде ip_conntrack_ftp для ip tables, возможно есть 
специальные средства для mark торрентов. Посмотрите, что нового на таких 
сайтах как:

http://sourceforge.net/projects/iptables-p2p/
3.  Попробуйте, для начала, добиться логичного поведения, управляя 
только исходящим(!) трафиком.

4. Неплохая дока по htb:
http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm

Удачи.

--
Sincerely,
Nicholas


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2009-01-12 Пенетрантность cryptosonbian
Проще установить 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 : ingress

 tc filter add dev $PPP_IFACE parent : 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: я пробовал разделить

Re: шейпер

2006-07-22 Пенетрантность Pasha Orekhov
В сообщении от 1 Июль 2006 18:06 Nikolay Nikolaev написал(a):
 День добрый
 хочется оптимизировать существующий шейпер.
 сейчас все шейпиться с помощью HTB + IMQ
 хочется что бы шейпер стал более отзывчивым (резким)
 пологаю что для этого надо будет в корне пересмотреть существующую схему,
 иерархию классов

 // подскажите в каком направлении думать стоит?

 что работает сейчас
 исходящий трафиик пока не рассматриваем,
 входящий трафик делится на группы(классы) :
1. NAT трафик
2. Mail, DMS, ICQ трафиик
3. Squid трафик (default класс)
.
 так вот когда один из пользователей (1-й трафик) начинает качать, то
 другие (из того же 1-го)
 испытывают дискомфорт при просмотре веб страниц а если к примеру кто
 нить из них тоже
 начнет что нить качать в этот же момент то вот тут скорость нормально
 делится...

 так вот хочется что бы скорость делилась и когда кто нить в этот момент
 начал страницу грузить
 куда копать?
 спасибо
burst || policy


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



оптимизация шейпер а

2006-07-17 Пенетрантность Nikolay Nikolaev

День добрый.

есть шейпер, все работает... есть пара вопросов:

есть некая часть трафика она засунута в один класс, туда 
отфильтровыываются пакеты пользователей интернет (входящий траффик) 
вопрос, стоит этот класс разбить на ПОДклассы, для каждого из 
пользователей? и тем самым дать хотя бы гарантированную полосу 
пропускания для каждого?, или оставить всех в одном классе но с 
дисциплиной ESFQ?
первый вариант у меня работал некоторое время, не совсем понравилося, 
есть пара замечаний:
когда кто нить из соседнего класса что нить качает, другим достаточно 
дискомфортно лазить по страницам, я так понимаю что тут должен помоч 
параметр burst от НТВ... но я не очень понял как его расчитать, да и 
вроде НТВ его автоматом расчитывает, я пробовал вписывать его 
вручную ... не сказал бы что что то получилося.
второй вариант я щас настроил но т.к. не нахожу патчей для ESFQ под 
2.4.хх, использую просто sfq она как известно делит канал по сессиям, 
что не есть хорошо, что бы проверить в деле ESFQ нужно ядро 2.6.хх

так вот и спрашиваю чтоит ли ч этим завязываться?
спасибо.

// ESFQ или burst, leaf или not leaf, ESFQ или HTB  :-)


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: оптимизация шейпер а

2006-07-17 Пенетрантность Stanislav Maslovski
On Mon, Jul 17, 2006 at 09:49:25AM +0300, Nikolay Nikolaev wrote:
 День добрый.

[ ... ]

 когда кто нить из соседнего класса что нить качает, другим достаточно 
 дискомфортно лазить по страницам, я так понимаю что тут должен помоч 
 параметр burst от НТВ... но я не очень понял как его расчитать, да и 
 вроде НТВ его автоматом расчитывает, я пробовал вписывать его 
 вручную ... не сказал бы что что то получилося.

А ceil и rate у тебя различаются? Есть еще cburst. См. man tc-htb

-- 
Станислав



шейпер

2006-07-01 Пенетрантность Nikolay Nikolaev

День добрый
хочется оптимизировать существующий шейпер.
сейчас все шейпиться с помощью HTB + IMQ
хочется что бы шейпер стал более отзывчивым (резким)
пологаю что для этого надо будет в корне пересмотреть существующую схему,
иерархию классов

// подскажите в каком направлении думать стоит?

что работает сейчас
исходящий трафиик пока не рассматриваем,
входящий трафик делится на группы(классы) : 
  1. NAT трафик

  2. Mail, DMS, ICQ трафиик
  3. Squid трафик (default класс)
т.к. не нащлось способа загнать 3 трафик в определенный клас
то ему был отдан класс по умолчанию,
в который попадает все что не отфильтровано (по определнию)
1-й трафик создают 6 пользователей каждому пользователю по классу с 
гарантированной

полосой пропускания

RATEUP=290
RATEDN=290
DEV=eth1


tc qdisc add dev imq0 handle 1: root htb r2q 1 default 36
tc class add dev imq0 parent 1: classid 1:1 htb rate ${RATEDN}kbit ceil 
${RATEDN}kbit

# блок NAT'о :-))
tc class add dev imq0 parent 1:1 classid 1:30 htb rate 16kbit ceil 
${RATEDN}kbit prio 1
tc class add dev imq0 parent 1:1 classid 1:31 htb rate 16kbit ceil 
${RATEDN}kbit prio 1
tc class add dev imq0 parent 1:1 classid 1:32 htb rate 16kbit ceil 
${RATEDN}kbit prio 1
tc class add dev imq0 parent 1:1 classid 1:33 htb rate 16kbit ceil 
${RATEDN}kbit prio 1
tc class add dev imq0 parent 1:1 classid 1:34 htb rate 16kbit ceil 
${RATEDN}kbit prio 1
tc class add dev imq0 parent 1:1 classid 1:37 htb rate 57kbit ceil 
57kbit prio 2

#
# mail, icq...
tc class add dev imq0 parent 1:1 classid 1:35 htb rate 16kbit ceil 
66kbit prio 3

# все что не попало под другие классы (squid...)
tc class add dev imq0 parent 1:1 classid 1:36 htb rate 140kbit ceil 
140kbit prio 2


tc qdisc add dev imq0 parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev imq0 parent 1:31 handle 31: sfq perturb 10
tc qdisc add dev imq0 parent 1:32 handle 32: sfq perturb 10
tc qdisc add dev imq0 parent 1:33 handle 33: sfq perturb 10
tc qdisc add dev imq0 parent 1:34 handle 34: sfq perturb 10
tc qdisc add dev imq0 parent 1:35 handle 35: sfq perturb 10
tc qdisc add dev imq0 parent 1:36 handle 36: sfq perturb 10
tc qdisc add dev imq0 parent 1:37 handle 37: sfq perturb 10

ну а дальше фильтры всн загоняются с помощью u32
только в почтовый класс с помощью -j MARK

так вот когда один из пользователей (1-й трафик) начинает качать, то 
другие (из того же 1-го)
испытывают дискомфорт при просмотре веб страниц а если к примеру кто 
нить из них тоже
начнет что нить качать в этот же момент то вот тут скорость нормально 
делится...


так вот хочется что бы скорость делилась и когда кто нить в этот момент 
начал страницу грузить

куда копать?
спасибо




--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]