Re: трафик-шейпер (?)
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: трафик-шейпер (?)
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: трафик-шейпер (?)
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: трафик-шейпер (?)
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: трафик-шейпер (?)
Здравствуйте. Есть 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
трафик-шейпер (?)
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: трафик-шейпер (?)
Ставь и запускай 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: трафик-шейпер (?)
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 соединения.
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 соединения.
Имеется такая схема: dsl modem - router. На нём устанавливается два pppoe соединения. Нужно нарезать канал так, чтоб они не мешали друг другу. Пока я думаю, что нужно поднять виртуальный интерфейс на выход в сторону модема, и настроить шейпер там. Или может есть способы как шейпить сам pppoe трафик ? Смущает то, что этот pppoe не tcp/ip.
Re: Шейпер, торрент и за грузка канала.
Здравствуйте. Имею в наличии следующее 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: Шейпер, торрент и заг рузка канала.
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: Шейпер, торрент и заг рузка канала.
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: Шейпер, торрент и заг рузка канала.
А кто что скажет про 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: Шейпер, торрент и заг рузка канала.
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: Шейпер, торрент и заг рузка канала.
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
Шейпер, торрент и загру зка канала.
Имею в наличии следующее 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: Шейпер, торрент и заг рузка канала.
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: Шейпер, торрент и загрузка канала.
Проще установить 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: шейпер
В сообщении от 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]
оптимизация шейпер а
День добрый. есть шейпер, все работает... есть пара вопросов: есть некая часть трафика она засунута в один класс, туда отфильтровыываются пакеты пользователей интернет (входящий траффик) вопрос, стоит этот класс разбить на ПОДклассы, для каждого из пользователей? и тем самым дать хотя бы гарантированную полосу пропускания для каждого?, или оставить всех в одном классе но с дисциплиной 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: оптимизация шейпер а
On Mon, Jul 17, 2006 at 09:49:25AM +0300, Nikolay Nikolaev wrote: День добрый. [ ... ] когда кто нить из соседнего класса что нить качает, другим достаточно дискомфортно лазить по страницам, я так понимаю что тут должен помоч параметр burst от НТВ... но я не очень понял как его расчитать, да и вроде НТВ его автоматом расчитывает, я пробовал вписывать его вручную ... не сказал бы что что то получилося. А ceil и rate у тебя различаются? Есть еще cburst. См. man tc-htb -- Станислав
шейпер
День добрый хочется оптимизировать существующий шейпер. сейчас все шейпиться с помощью 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]