1.1, alex2ndr (?), 12:38, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Очень хорошая статья - вот только чтобы изменить скрипт под например 10 пользователей надо делать много поправок в нем. ИМХО лучше сделать список пользователей не набором переменных а массивом и засунуть все повторяющиеся действия в циклы. И скрипт короче будет и достаточно будет изменить список пользователей в начале чтобы все заработало. Если вам интересно этим заняться то могу помочь (в меру своих скромных возможностей). Сам такое переделывание не осилю ибо негде тестировать.
| |
1.2, Донченко (?), 13:14, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Я уже думал над этим. Действительно, получится много короче. Единственно, представленный вариант позволяет легко менять приоритеты и ширину полосы для отдельных пользователей, Ваш вариант тоже должен это уметь. Если возметесь - готов потестить и поделиться впечатлениями.
| |
|
2.15, alex2ndr (?), 18:50, 03/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Если не возражаете я свяжусь в Вми по email указанному в заголовке статьи. Я начал разработку - но есть кое-какие неясности.
| |
|
3.25, Донченко (ok), 13:18, 04/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Прошу Вашего разрешения для публикации в статье с новым вариантом шейпера Ваших персональных данных.
| |
|
|
1.4, Донченко (?), 13:46, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Спасибо! Но времени у меня не так уж и много. Это не коммерческая разработка, но она реально работает, и те кто хотят ее использовать, не вникая в тонкости, могут легко это сделать.
Почему-то никто из уважаемых знатоков не выложил даже такого косо-кривой, но реально работающей программы.
Что бы не заканчивать на такой минорной ноте, внесу небольшое дополнение.
В цепочку форварда iptables приведенные в статье рекомендации включаются так:
:limiting - [0:0]
:FORWARD_IN - [0:0]
#Личные цепочки
:T10 - [0:0]
:T20 - [0:0]
# и т.д.
# Автоматически уменьшать размер передаваемого пакета для ADSL
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -j FORWARD_IN
-A FORWARD -i ppp0 -j FORWARD_OUT
# Эта цепочка для блокировки пользователей автоматическими скриптами
# Но можно и руками
-A FORWARD_IN -j limiting
# В этих цепочках ограничиваем каждого пользователя отдельно
# Кабинет
-A FORWARD_IN -s 192.168.100.20 -j T20
# Максимум 1 одновременное соединение c одного IP eth0 для smtp
#-A T20 -p tcp -m connlimit -i eth0 --dport smtp -j DROP --syn --connlimit-above 1
# Максимум 105 одновременных соединений c одного IP eth0 (ЛВС)
#-A T20 -p tcp -m connlimit -i eth0 -j DROP --syn --connlimit-above 105
# Защита от пинга смерти
-A T20 -p icmp -m limit --icmp-type echo-request --limit 10/s -j ACCEPT
-A T20 -p icmp --icmp-type echo-request -j DROP
-A T20 -j ACCEPT
# И так далее...
| |
|
2.14, Docent (??), 18:36, 03/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
> Почему-то никто из уважаемых знатоков не выложил даже такого косо-кривой, но реально работающей программы.
зря вы так. такой скрипт существует уже несколько лет и называется он HTB (не путать с телеканалом).
# htb.init v0.8.5
# Copyright (C) 2002-2004 Lubomir Bulej <pallas@kadan.cz>
...
# To get the latest version, check on Freshmeat for actual location:
#
# http://freshmeat.net/projects/htb.init
правда по этой ссылке его уже давно нет, но можно у гугла спросить
есть описание даже на этом сайте http://www.opennet.me/docs/RUS/adv_route_qos/
| |
|
3.24, Донченко (ok), 12:58, 04/09/2009 [^] [^^] [^^^] [ответить] | +/– | Скрипт я смотрел, давно правда Но цели у него были другие Это скрипт для созда... большой текст свёрнут, показать | |
|
|
1.5, Донченко (?), 13:50, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Прошу прощения, нужно убрать # из строчек
#-A T20 -p tcp -m connlimit -i eth0 --dport smtp -j DROP --syn --connlimit-above 1
и #-A T20 -p tcp -m connlimit -i eth0 -j DROP --syn --connlimit-above 105
| |
|
2.8, Донченко (?), 14:28, 03/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Так будет абсолютно верно:
-A T20 -p tcp -m connlimit -i eth0 --dport smtp -j DROP --syn --connlimit-above 2
| |
|
1.6, TrueHead (ok), 13:55, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А как проверялась справедливость?
Дисциплина SFQ не позволяет абсолютно справедливо делить канал, она пытается равномерно размазать соединения, а надо, чтобы распределение шло на конкретный айпишник, в независимости от количества соединений.
| |
|
2.7, Донченко (?), 14:26, 03/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Это верно! Но Вы говорите об несправедливости внутри одной полосы. А я завожу по полосе на каждого пользователя, обеспечиваю ему гарантированную полосу пропускания и остаток от неиспользованных чужих полос, согласно приоритету пользователя.
| |
|
3.9, Донченко (?), 14:35, 03/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
А несправедливость между отдельными программами самого клиента меня не беспокоит. Пусть выключает torrent, если хочет поиграть!
| |
|
|
1.10, olex (ok), 15:32, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Скрипр рабочий
но IMHO шейпить входной трафик - не оправдано
>>>tc qdisc add dev $DEV_OUT handle ffff: ingress
PS шейпить входной трафик вообще практически невозможно
| |
|
2.12, Донченко (?), 17:36, 03/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
На шейпинг входного трафик и не претендую. Эта цепочка только ограничивает скорость поступления SYN пакетов на вход. Если напрягает - можно и отключить. Нам не мешает, но сказать что вижу пользу я тоже не могу, не проверял.
| |
|
1.11, mx (??), 16:28, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Повесил бы squid на сервак что ли ;)
А вообще если касается федоры то я бы сделал через СБКу /etc/sysconfig/cbq/...
| |
|
2.13, Донченко (?), 17:40, 03/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Повесил бы squid на сервак что ли ;)
Я использую NAT. Соответственно шейпер работает по всем портам, почти вне зависимости от вида трафика, а не только 80 порт.
>А вообще если касается федоры то я бы сделал через СБКу /etc/sysconfig/cbq/...
Очень поддерживаю! И с удовольствием посмотрю на реально работающий _ВАШ_ вариант шейпера.
| |
|
3.19, mx (??), 08:10, 04/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
> Я использую NAT. Соответственно шейпер работает по всем портам,
> почти вне зависимости от вида трафика, а не только 80 порт.
Пусть мне мои домашнии квалифицировано объяснят зачем им инет окромя 80 порта.
( аська в мессагах мало жрет а за фиреваллом все равно файло слать нельзя )
> И с удовольствием посмотрю на реально работающий _ВАШ_ вариант шейпера.
был как то лет 5 подобный вопрос. Подумали и сказали что не нужно. А цбку-шку
на серваке-почтовом заюзал по портам ( 110,25) чтобы пересылаемое мыло-файло в 50 мег
не ложило канал !
Эту фигню как у тебя лучше не для домашней сети юзать а провам.
| |
|
|
|
2.21, Донченко (?), 10:03, 04/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Очень актуальная и нужная вещь.
>Жду переработанной версии.
Благодаря самоотверженному труду Александра (alex2ndr) такая версия наконец появилась. Сейчас провожу тестовую проверку (хотя и так видно, что работает нормально, генерируемый пробный скрипт отличается от оригинала только размещением команд, но все же...)
Буду просить администратора ресурса внести изменения в статью, с учетом новой версии.
| |
|
1.17, XoRe (ok), 21:50, 03/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> start_out(){
> # Старт исходящего интерфейса. Например ppp0.
> #ip link set dev $DEV_OUT qlen $QLEN_OUT mtu $MTU_OUT
> # В оригинале правили MTU. Я не стал - и так все в порядке!
Если не секрет, что есть "оригинал"?
| |
|
|
3.22, XoRe (ok), 11:30, 04/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Не секрет :-)
>[[http://www.opennet.me/base/net/adsl_qos.txt.html статья Anton Shuko]]
>Об этом в начале написано, там и остальные ссылки есть.
>Только там немного другой подход.
>Я поставил во главу угла раздачу полос пользователям,
>а в оригинале - раздавали полосы нужным протоколам и портам.
И правда.
Плохо читал статью, сорри.
Могу порекомендовать выяснить точные значения скоростей, на которых соединился adsl модем.
И выставить RATE_IN и RATE_OUT чуть-чуть меньше реальных скоростей.
При выедании физического канала (входящего и исходящего) пинг все равно резко возрастает, несмотря на политики/приоритеты/шейперы.
А если программно шейпить трафик и не давать ему подойти к физическим границам, вы этого избежите.
| |
|
4.23, Донченко (ok), 12:52, 04/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Так и есть! Реальная скорость входящего трафика 8000кбит/с, а я выставляю 7000. Т.е. на скачки загрузки я отвожу 1000кбит/с. В оригинале, если Вы обратили внимание, еще больше резервируют. То же самое касается исходящего канала. Но в нем скорость плавает, в зависимости от удачности подключения (я все-таки смотрел, и не раз), поэтому там запас выставлен больше
| |
|
|
|
|
2.30, Донченко (ok), 22:57, 13/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Понятия не имею, откуда взялся, нажмите на правку - увидете, что там только один! Но на всякий случай вставил перенос строки перед меткой конца блока кода - может в этом дело?
И не у Вас, а у Нас ;-)
| |
|
1.31, AlexX (??), 02:12, 16/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Статья - супер!
Спасибо Вам за труд.
У меня как раз аналогичная сеть :) 8/~1 mbps + 22 клиента.
Подредактировал 2й скрипт под себя - все работает отлично!
THX
| |
|
2.32, Донченко (ok), 09:33, 16/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Статья - супер!
>Спасибо Вам за труд.
>У меня как раз аналогичная сеть :) 8/~1 mbps + 22 клиента.
>Подредактировал 2й скрипт под себя - все работает отлично!
Подождите, есть еще и вариант шейпер+фаервол+проброс портов/DNS.
Основанный на варианте 2, он еще и корректно (по списку правил) управляет IPTABLES, обеспечивая высокий уровень защиты и требуемый доступ к серверу, проброс портов (для работы torrent и скачки файлов ICQ), а так же проброс DNS запросов от клиентов к провайдеру на 2 DNS сервера с вероятностью 50% (без использования BIND, что важно для начинающих).
Мы с Александром готовим новую статью, поэтому если есть замечания - особенно по шейперу, очень просим высказываться!
| |
|
1.33, evol (?), 11:32, 18/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
вопрос .
будит ли работать этот шейпер. если в качестве клиента будит выступать та машина где он крутить?
и вообще возможно ли это? поскажите что нужно для етого дописать.
| |
|
2.34, Донченко (ok), 13:03, 18/09/2009 [^] [^^] [^^^] [ответить] | +/– | Не совсем понятно, будут ли работать в интернете еще клиенты, кроме Вас Ну, пол... большой текст свёрнут, показать | |
|
1.35, evol (?), 13:55, 18/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
сильно не пинаете, я тока разбираюсь в этом
повторю вопрос более корректно.
есть машина где крутится шейпер. есть три клиента, два из них безумно юзают торренты, третий неочень активен.Так вот мой вопрос заключался в том смогули я запустить на машине где шейпер к примеру торрент клиент, чтобы шейпер делил соответственно скорость для всех клиентов в том числе и для этой машины?.
| |
|
2.36, Донченко (ok), 15:27, 18/09/2009 [^] [^^] [^^^] [ответить] | +/– | Да, сможете запустить Но Представленный в статье шейпер должен быть переписан,... большой текст свёрнут, показать | |
|
3.39, Донченко (ok), 11:37, 20/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Да, сможете запустить.
>Но! Представленный в статье шейпер должен быть переписан, что бы входной шейпер
>(у меня он висит на eth0, смотрящей в локалку) повис на
>виртуальном интерфейсе, к которому и будет обращаться Ваша машина и все
>клиенты. Для этого либо используется IMQ, либо собственный виртуальный интерфейс и
>соответствующая маршрутизация сервера.
Если Ваш вопрос еще терпит, то как раз сейчас мы с Александром изучаем этот вопрос.
Действительно, удобнее всего размещать torrent на сервере.
Так что, надеюсь, через некоторое время будет модификация шейпера, использующая виртуальный интерфейс на входных каналах для ограничения входящего трафика.
| |
|
4.50, Rusty (??), 02:25, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Мы используем NX Server - решение от No Machine для удаленной одновременной работе на серваке. Возможно ли так же создание двух виртуальных интерфейсов для двух сессий пользователей для справедливого разделение трафа между пользователями? В противном случае получается у одного (торренты на серваке+траф локально) у другого просто траф локально?
Сейчас разбираюсь с вашим скриптом. Потом хочу заняться этой проблемой. Что посоветуете?
| |
|
|
|
1.37, hand (?), 11:00, 20/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Тестил скрипт через прозрачный прокси - работает. Почему то пришлось поднять RATE_OUT=5000 (реальная скорость 590кбит), т.к. отдавало клиенту только 10-20кбит при RATE_OUT=530.
Подскажите, пожалуйста, как включить (после шейпера) NAT для хостов в локалке, что бы были доступны другие сервисы/порты при данных в статье параметрах?
| |
|
2.38, Донченко (ok), 11:31, 20/09/2009 [^] [^^] [^^^] [ответить] | +/– | У Вас получился правильный результат Если конечно Вы спутали кбит с и кбайт с ... большой текст свёрнут, показать | |
|
3.40, hand (?), 12:20, 20/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Я Вас понял. При первых запусках скрипта все было в норме, только после многократных перезапусков (для подбора ширины канала) скорость стала неудовлетворительной, возможно я внес ошибку в скрипт. Меряю вот так http://www.speedtest.net/result/569938750.png
(подключен только один хост, т.е. отдает ~80% свободного канала и половину). На счет тормозов сказать не могу, нагрузка сейчас к удивлению очень мала.
Благодарю за подробный ответ.
Отвечу на свой вопрос (tnx bioname), внешний адрес выдается динамический:
sudo iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
| |
|
4.41, Донченко (ok), 14:13, 20/09/2009 [^] [^^] [^^^] [ответить] | +/– | Попробуйте начать с начала и менять по шагам, с проверкой По себе знаю - сделае... большой текст свёрнут, показать | |
4.42, hand (?), 14:27, 20/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
>после многократных перезапусков (для подбора ширины канала) скорость стала неудовлетворительной, возможно
>я внес ошибку в скрипт. Меряю вот так http://www.speedtest.net/result/569938750.png
>(подключен только один хост, т.е. отдает ~80% свободного канала и половину). На
>счет тормозов сказать не могу, нагрузка сейчас к удивлению очень мала.
>
>Благодарю за подробный ответ.
>
>Отвечу на свой вопрос (tnx bioname), внешний адрес выдается динамический:
>sudo iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE
>sudo iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
| |
|
5.43, Донченко (ok), 14:45, 20/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>> Меряю вот так http://www.speedtest.net/result/569938750.png
По моему, все правильно! Исходящая скорость как раз 50% от исходящего канала - формулу я Вам писал. Ну уберите /2, раз она Вас так смущает из формулы и будет весь канал.
>>Отвечу на свой вопрос (tnx bioname), внешний адрес выдается динамический:
>>sudo iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE
>>sudo iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
>
>sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
?
Я и так понял, не беспокойтесь.
| |
|
6.45, hand (?), 21:41, 20/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Возможно это баг системы. Но у меня не работает на 530kbit.
Я понимаю, что в килобайте 8 килобит. Скорость смотрю iptraf.
Скрипт переделывал заново (_xttp://home.ddns.mobi/tmp/adsl_qos.sh).
| |
|
7.46, Донченко (ok), 22:28, 20/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
1. Почему 127.0.0.1 попал в список локальных адресов? Ведь тогда он снижает гарантированную полосу на входящем шейпере. Ну да ладно, допустим хотим шейпить выход самого сервера.
2. LOCAL_IPS=(
[1]="127.0.0.1 2 2 80"
[2]="10.0.1.65 4 1 70"
[3]="10.0.1.71 4 1 50"
[4]="10.0.1.72 5 1 50"
3. RATE_OUT=550
4. Тогда предельная скорость, разрешенная пользователям:
[1]=550*0,8=440 кбит/с
[2]=550*0.7=385 кбит/с
[3]=550*0.5=275 кбит/с
[4]=275 кбит/с
Ну и где Вы видите 530кБит/с?
Или Ваши клиенты вместе с Вами позабивали канал?
Тогда вопрос: а без шейпера, какая скорость? Вы можете ведь четко наблюдать изменение? Сделайте это.
Если в скрипте есть ошибка,ее нужно исправить.
| |
|
8.47, hand (?), 23:05, 20/09/2009 [^] [^^] [^^^] [ответить] | +/– | gt оверквотинг удален Вот такая без шейпера это минимум что показывало http ... текст свёрнут, показать | |
|
9.48, Донченко (ok), 23:30, 20/09/2009 [^] [^^] [^^^] [ответить] | +/– | 1 На рисунках разное время Поэтому они мало о чем говорят, это должны быть два... большой текст свёрнут, показать | |
|
|
11.51, hand (?), 10:29, 21/09/2009 [^] [^^] [^^^] [ответить] | +/– | хttp www onlinedisk ru file 222671 У меня IPTraf настроен на отображение в kb... текст свёрнут, показать | |
|
|
13.61, hand (?), 21:21, 21/09/2009 [^] [^^] [^^^] [ответить] | +/– | Предлагаю забыть про эти результаты В скором времени я проведу более точные изм... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
1.52, Rusty (??), 11:40, 21/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Мы используем NX Server - решение от No Machine для удаленной одновременной работе на серваке. Возможно ли так же создание двух виртуальных интерфейсов для двух сессий пользователей для справедливого разделение трафа между пользователями? В противном случае получается у одного (торренты на серваке+траф локально) у другого просто траф локально?
Сейчас разбираюсь с вашим скриптом. Потом хочу заняться этой проблемой. Что посоветуете? Читал комменты, я так понимаю IMQ?
| |
|
2.53, alex2ndr (?), 14:54, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
C imq навскидку сложновато. Там надо ядро и iptables патчить и пересобирать. Но я думаю мы к этому придем (уже в процессе :) ). Насчет вашей ситуации - если я правильно понимаю можно попробовать обойтись параметром Мин_Канала. У того пользователя что локально это будет 2 а у того что есть и сервер и локалка и там и там будет 1. Как вам тут могут помочь виртуальные интерфейсы я не знаю.
| |
2.54, alex2ndr (?), 15:14, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Кажется понимаю о чем вы. Написав предыдущий пост я забыл, что то о чем говорил пока находиться в разработке.
Да - в том варианте что сейчас представлен в статье не учитывается трафик на самом сервере - соответственно он может сожрать весь входящий канал и ничего ему не будет. Да - в таком варианте надо использовать какой-то виртуальный интерфейс. Если у вас время терпит то ждите следующую версию - мы работаем над этим.
| |
|
3.55, Rusty (??), 15:52, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Да нужно учитывать траф сервера и делить еще его по пользователям сервера )). Я могу подождать (в течение какого времени?), но и сам пока буду разбираться если вы скажете куда копать.
| |
|
4.56, alex2ndr (ok), 16:13, 21/09/2009 [^] [^^] [^^^] [ответить] | +/– | С учетом трафика сервера мы работаем - сейчас как раз пытаемся ввести виртуальны... большой текст свёрнут, показать | |
4.57, alex2ndr (ok), 16:29, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Заодно и с точки зрения безопасности нормальная виртуальная машина будет правильнее. Сейчас у вас для торентов наверно порты открыты фактически на ваш сервер(т е в цепочках INPUT для iptables). Это есть дырка в безопасности.
| |
|
5.58, Донченко (ok), 18:46, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Сейчас у вас для торентов наверно порты открыты фактически на ваш сервер(т
>е в цепочках INPUT для iptables). Это есть дырка в безопасности.
С чего бы это?
Разве через порты торрента можно залезть в систему?
| |
|
6.62, alex2ndr (ok), 21:54, 21/09/2009 [^] [^^] [^^^] [ответить] | +/– | Неизвестно можно ли залезть через порты торента в систему Это зависит от ошибок... большой текст свёрнут, показать | |
|
5.60, Rusty (??), 19:56, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Идея с Xen привлекательная (полное разделение), но ресурсов будет много требовать у нас с серваке всего то 512 МБ.
| |
|
6.63, alex2ndr (ok), 21:54, 21/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Идея с Xen привлекательная (полное разделение), но ресурсов будет много требовать у
>нас с серваке всего то 512 МБ.
Ну память нынче дешева :) можно еще 512 прикупить. Если такой возможности нету то подумать что и как надо сделать - если сервер используется только в качестве площадки для торентов то подумать о установке минимальной конфигурации линуха + торент-клиент с веб интерфейсом - по моим оценкам в 64 мб уложитесь. Если нужно еще что-то кроме торента то можно поставить Иксы по минимуму - lxde там какое-нить (не спец в этом). Или поставить ХР :) - сожрет 128 мб - но по минимуму будет работать.
| |
|
7.64, Rusty (??), 17:24, 22/09/2009 [^] [^^] [^^^] [ответить]
| +/– |
Нащет ограничения трафа для пользователей сервака: можно маркировать пакеты по UID, так же маркировать по ИП а затем уже фильтровать в tc? Вариант? Тада и виртуальных сетевых интерфейсов не надо (IMQ).
| |
|
|
|
10.67, Rusty (??), 17:47, 22/09/2009 [^] [^^] [^^^] [ответить] | +/– | Еще прочитал в википедии Для того, чтобы использовать очереди на входящий траф... текст свёрнут, показать | |
|
|
12.69, Rusty (??), 20:31, 22/09/2009 [^] [^^] [^^^] [ответить] | +/– | Нет не мало Вопрос в загрузке проца если при таком раскладе - 90 это не хорош... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
1.72, Rusty (??), 15:59, 30/09/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
В общем можно ограничить скорость по ип для пользователей на локальном интерфейсе отдельно от ограничения скорости для самого сервака на IMQ.
А вот как ограничить суммарную скорость сервака + какой-нить пользователь (это случай когда он используется как терминальный для запуска торрентов и можно маркировать пакеты по UID пользователя) очереди разные для этих интерфейсов... =( ??
| |
|
2.73, alex2ndr (ok), 14:23, 01/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>В общем можно ограничить скорость по ип для пользователей на локальном интерфейсе
>отдельно от ограничения скорости для самого сервака на IMQ.
>
>А вот как ограничить суммарную скорость сервака + какой-нить пользователь (это случай
>когда он используется как терминальный для запуска торрентов и можно маркировать
>пакеты по UID пользователя) очереди разные для этих интерфейсов... =( ??
>
Почему очереди разные - очереди одни и те же. Просто маркируйте пользователя на серваке и на локальном компе теми же номерами. У нас для идентификации используется ip, поэтому вам придется переписать наш скрипт с использованием ip и UID. Если клиентов мало можно все ручками прописать.
| |
|
3.74, Rusty (??), 16:05, 01/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
Почему одни и те же? У IMQ своя очередь у интерфейса смотрящего в локальную сеть своя. Или я ошибаюсь?
| |
|
4.75, alex2ndr (ok), 16:58, 01/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Почему одни и те же? У IMQ своя очередь у интерфейса смотрящего
>в локальную сеть своя. Или я ошибаюсь?
А это как организуете. Просто если есть imq то нужда организовывать очереди на интерфейсе в локалку отпадает. Пример - раньше вы ставили шейпер исходящего трафика на ppp0 а входящего на eth0. Теперь у вас есть imq - шейпер исходящего трафика вы оставляете на ppp0 а шейпер входящего переносите на imq. Остается по прежнему 2 очереди, только трафик сервера теперь попадает и во входящую (на eth0 он не попадал) - т е на imq вместе с трафиком клиентов.
| |
|
5.76, Rusty (??), 14:26, 03/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
Классно, получилось ограничить скорость сервака и пользователей сети на IMQ как вы и писали. Это радует. Только опять проблема. Хочу ограничить скорость для пользователя сервака. Если маркировать по uid (-m owner --uid-owner user1) то это будет работать для исходящих пакетов. Как быть с входящими?
| |
|
6.77, alex2ndr (ok), 15:30, 03/10/2009 [^] [^^] [^^^] [ответить] | +/– | Могу предложить теоретическое решение - на практике не проверялось Есть такая ш... большой текст свёрнут, показать | |
|
7.78, Rusty (??), 19:08, 03/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
1) Борюсь с connmark хочу проверить хватит ли мне ограничения только tcp соединений. В принципе на сервере только торренты юзаются думаю хватит.
пишу
iptables -A OUTPUT -t mangle -m owner --uid-owner user1 -j MARK --set-mark 22
iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark
iptables -A INPUT -t mangle -m connmark --mark 22 -j MARK --set-mark 22
и всеравно пакеты попадают в дефолтную очередь а не в указанную фильтром
tc filter add dev $IMQ_IN parent 1:0 prio 5 handle 22 fw flowid 1:22
2) второе решение это направлять пакеты в NFQUEUE iptables. Писать прогу демон который будет смотреть порты назначения пакетов искать пользователя и ставить метку. Ну а дальше обычный путь в IMQ и т.д. жесть конечно но лучше не нашел пока что ))
О результатах отпишусь.
| |
|
8.79, alex2ndr (ok), 19:21, 03/10/2009 [^] [^^] [^^^] [ответить] | +/– | gt оверквотинг удален А --restore-mark разве на входе не требуется Либо я чег... большой текст свёрнут, показать | |
|
9.80, Rusty (??), 21:20, 03/10/2009 [^] [^^] [^^^] [ответить] | +/– | значит заработало с CONNMARK следующим образом надо было добавить protocol ip ч... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
1.82, RebelX (ok), 14:23, 08/10/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Интересная система. Было бы здорово, если бы список пользователей хранился в отдельном файле. И ещё, как можно организовать работу с несколькими аплинками? Я вижу следующие сложности: несколько аплинков могут иметь разные скорости (можно несколько раз запускать скрипт с разными параметрами), а как быть с интерфейсом смотрящим в сеть (он же один для всех аплинков)? Чувствую и для этого понадобится imq.
| |
|
2.83, Донченко (ok), 09:50, 09/10/2009 [^] [^^] [^^^] [ответить] | +/– | Уже над этим думали и даже были варианты Например - список пользователей можно ... большой текст свёрнут, показать | |
|
3.85, RebelX (ok), 18:24, 13/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Но даже если IMQ нет - ничего страшного. Мы же используем на
>DEV_IN раздельные классы для интернет и локального трафика? Ну, будем использовать
>не 2, а три или четыре раздельных класса, что не заимствуют
>друг у друга скорость. А клиентов отправлять по классам через маркировку
>в IPTABLES, и кстати, такая же маркировка позволит нам легко выполнять
>маршрутизацию пакетов по интерфейсам.
Не могли бы Вы опубликовать эту реализацию, хотя бы в сыром виде без оснастки.
С радостью протестирую такой вариант.
| |
|
4.86, Донченко (ok), 16:26, 15/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
Вариант уже готов. Разумеется бета. Но выкладывать пока не будем, а вот если хотите потестить - пишите на мой ящик, перешлю.
| |
|
|
2.84, alex2ndr (ok), 12:18, 09/10/2009 [^] [^^] [^^^] [ответить] | +/– | Как уже сказал Евгений мы работаем над этим Вот только честно говоря реализация... большой текст свёрнут, показать | |
|
1.87, Донченко (ok), 09:30, 16/10/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Для насыщения новой версии примерами использования, значительно облегчающими жизнь неопытным пользователям, что затрудняются с описательной частью скрипта, прошу излагать Ваши обстоятельства (сетевые интерфейсы, подсети, установленные на сервере службы или используемые на сервере интернет клиенты, необходимость удаленного доступа и т.д.). Если хотите - пишите лично.
| |
1.88, Федор (?), 18:37, 18/10/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Этот скрипт будет работать на mandrivе?
Linux Mandriva 2009 i586
Заранее благодарен.
| |
|
2.89, alex2ndr (ok), 12:21, 19/10/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Этот скрипт будет работать на mandrivе?
>Linux Mandriva 2009 i586
>Заранее благодарен.
Будет. Данный скрипт не зависит от конкретного дистрибутива. Главное чтобы были все используемые утилиты - ip, tc и iptables.
| |
|
|
2.92, Донченко (ok), 00:33, 27/11/2009 [^] [^^] [^^^] [ответить]
| +/– |
Ни в коем случае! В ближайшее время планируется выход следующей статьи, с расширенным вариантом шейпер+фаервол. На баше, и если Александр успеет выгладить баги, на питоне. Функционал, естественно, в рамках необходимых авторам проекта (пока), а также тем добровольцам, что согласились участвовать в тестировании (это в основном про Антона).
| |
|
3.93, Alex (??), 09:53, 27/11/2009 [^] [^^] [^^^] [ответить]
| +/– |
классная идея!
Возможно ли вычислять max_rate машине самостоятельно (т.е. скачивание файла с инета), хранить его в качестве переменной?
| |
|
4.96, alex2ndr (ok), 14:07, 30/11/2009 [^] [^^] [^^^] [ответить]
| +/– |
>классная идея!
>Возможно ли вычислять max_rate машине самостоятельно (т.е. скачивание файла с инета), хранить
>его в качестве переменной?
max_rate это максимальная скорость канала?
Мы думали над этим - но это сложная затея. Он разный для разных сегментов интернета в одинаковые промежутки времени. Например можно качать исходники ядра одновременно с разных зеркал - и скорость будет разная. К тому же такой замер занимет определенное время(несколько минут наверно) - поэтому сложно его сделать интерактивным. Пока есть идея просто пинговать ДНС провайдера и вносить изменения в max_rate в соответствии с задержкой. НО пока только на стадии идеи.
| |
|
|
|
|
2.95, alex2ndr (ok), 13:29, 30/11/2009 [^] [^^] [^^^] [ответить]
| +/– |
>А когда выйдет последующая статья?
Мы ее пишем - но пока еще не могу назвать конкретных сроков. Уж больно много частных случаев попалось - пытаемся обобщить и упростить.
| |
|
1.97, Alex (??), 17:53, 03/12/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
73: Syntax error: "(" unexpected
ругается на эту скобку... что делать?
LOCAL_IPS=(
| |
|
2.98, alex2ndr (ok), 10:25, 04/12/2009 [^] [^^] [^^^] [ответить]
| +/– |
Кусок скрипта с массивом LOCAL_IPS целиком дайте. Или просто свяжитесь со мной по почте.
| |
2.99, Alex (??), 12:03, 04/12/2009 [^] [^^] [^^^] [ответить]
| +/– |
Во втором варианте скрипта задаем айпишники клиентов
LOCAL_IPS=(
[1]="192.168.100.10 4 1 80"
[2]="192.168.100.20 4 1 70"
[3]="192.168.100.25 4 1 50"
...
...
)
при попытке запуска вылетает с ошибкой Syntax error: "(" unexpected
| |
|
3.100, alex2ndr (ok), 13:13, 04/12/2009 [^] [^^] [^^^] [ответить]
| +/– |
Такое ощущение что где-то скобку забыли(или лишнюю написали) - но это по всему файлу искать надо. Также может быть вы не из под bash это запускаете(например в busybox). Если сами не найдете - присылайте.
| |
|
4.101, Day Anger (?), 03:56, 09/12/2009 [^] [^^] [^^^] [ответить]
| +/– |
Было бы интересно посмотреть на реализацию этого скрипта (да и испытать :)) для схемы:
eth0 смотрит в сеть
eth1 в интернет
стоит VPN сервер (pptpd) к которому подключаются(ppp0, ppp1 и т.д.) из сети и получают интернет через nat
но с учетом того к примеру, что у одного IP максимум входящий/исходящий канал 512/64, а у остальных 8192/1024
| |
|
5.102, alex2ndr (ok), 13:40, 09/12/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Было бы интересно посмотреть на реализацию этого скрипта (да и испытать :))
>для схемы:
>eth0 смотрит в сеть
>eth1 в интернет
>стоит VPN сервер (pptpd) к которому подключаются(ppp0, ppp1 и т.д.) из сети
>и получают интернет через nat
>но с учетом того к примеру, что у одного IP максимум входящий/исходящий
>канал 512/64, а у остальных 8192/1024
Думаю что такое возможно. Даже могу примерно представить схему как это реализуется. Но мы сейчас это реализовать не успеваем - готовим следующую статью.
Если вам хочется такой вариант (получить и испытать) то предлагаю разработать его самолично с нашей помощью. Свяжитесь со мной или Евгением, мы постараемся выдать направление и наброски куда копать. Но саму работу придется осуществлять Вам.
| |
|
6.103, Донченко (ok), 00:24, 11/12/2009 [^] [^^] [^^^] [ответить]
| +/– |
Александр преувеличивает сложность. В новом варианте, что сейчас готовится к публикации, эта задача решается в стандартных настройках. Единственно - ядро должно поддерживать IMQ.
Т.е. входящий трафик шейпится сразу на eth0 (это конечно не так, но для простоты...), а затем раздается клиентам, с необходимыми полосами пропускания. В этом случае все равно, куда идут пакеты - на ETH1 или через ppp*.
| |
|
7.104, alex2ndr (ok), 11:44, 11/12/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Александр преувеличивает сложность. В новом варианте, что сейчас готовится к публикации, эта
>задача решается в стандартных настройках. Единственно - ядро должно поддерживать IMQ.
>
>Т.е. входящий трафик шейпится сразу на eth0 (это конечно не так, но
>для простоты...), а затем раздается клиентам, с необходимыми полосами пропускания. В
>этом случае все равно, куда идут пакеты - на ETH1 или
>через ppp*.
Я предложил вариант направить весь трафик с ppp в ifb и шейпить его там. Решается это скриптом в 3 строки. Мне показалось что скрипт в 3 строки проще чем пересборка ядра и iptables. Но в любом случае запасной вариант с imq есть.
| |
|
|
|
|
|
|
1.108, PhoeDOS (ok), 09:29, 18/01/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Пользуюсь вашим шейпером на домашнм роутере (Ubuntu 9.10) Шейпит 6 человек. Скорость на нашем безлим меняется по времени суток, поэтому лежат несколько копий шейпера(с разными скоростями вход. канала), настроил cron на запуск по времени.
Пожелания на будущее...
1. выдавать icmp и dns максимальный приоритет
2. поскольку у одного клиента м.б. несколько ПК, делать одно ограничение скорости на эту группу ПК, например:
канал 1 мегибит
192.168.1.1 - клиент 1, шейпинг 0,5 мбит
192.168.1.2 - клиент 2 ноутбук
192.168.1.3 - клиент 2 сервер
у 2 и 3 динамический шейпинг в рамках своих 0,5 мегабит (т.е. по 0,25 мегабит) с последующим повышением до 0,5 при отключении клиента 1.
Спасибо за ваш труд, у радостью потестим ваши новые версии!
| |
|
2.109, alex2ndr (ok), 10:30, 19/01/2010 [^] [^^] [^^^] [ответить]
| +/– |
Собственно новая версия на shell почти готова. Осталось ее потестить для функционала, отличного от того что есть у нас(т е в других условиях). Ваши пожелания там в принципе реализованы(1 точно, а о 2-м мы просто не думали - мне кажется с имеющимся функционалом это можно сделать - тестировать надо :) ). Лежит она пока тут -
http://asfs.git.sourceforge.net/git/gitweb.cgi?p=asfs/asfs;a=blob;f=shell/ads
Если желаете можете тестировать - если будут какие-то вопросы, проблемы и тд - связывайтесь с нами по почте. К сожаления без статьи которую мы готовим в ней трудно разобраться с налету.
| |
|
|
2.117, alex2ndr (ok), 13:03, 16/06/2010 [^] [^^] [^^^] [ответить]
| +/– |
>кто нибудь пробывал ставить из пакетов подготовленных автором ?
Есть люди, которые ставили. Вроде работает. Только надо этот пакет самому собирать из репозитория. Та версия(собранный пакет), что лежит на sourceforge немного устарела.
Пишите нам, господа, если что-то не получается. Наброски статьи выложу. Текст написан почти весь, но, увы, рисунки не все. Как-то не доходят руки нарисовать. Если кто возьмется помочь - милости прошу. Евгений начал делать в ms visio, а я с visio не очень... А переделать в dia у меня рука не поднимается. А самому Евгению - некогда.
| |
|
3.118, evol (?), 09:45, 17/06/2010 [^] [^^] [^^^] [ответить]
| +/– |
а что на этих рисунках отображено? что то я не могу представить!
| |
|
4.119, alex2ndr (ok), 10:55, 17/06/2010 [^] [^^] [^^^] [ответить]
| +/– |
>а что на этих рисунках отображено? что то я не могу представить!
>
Много всякого. Статья будет состоять из 2-х частей. Теория, в которой описываются общие аспекты, и которая содержит наибольшее количество рисунков и Практика, которая описывает как работать с новым скриптом шейпера. Практика рисунков не содержит.
Теорию выложил здесь:
http://ubuntologia.ru/forum/viewtopic.php?f=109&t=3324
Отсутствующие рисунки сами увидите. В принципе они рисуются на основе уже нарисованного и исходники есть, но с visio я не очень...
| |
|
5.120, alex2ndr (ok), 11:21, 17/06/2010 [^] [^^] [^^^] [ответить]
| +/– |
Картинки там теперь почему-то плоховатого качества, но у меня есть все оригиналы нормального качества. Вероятно этот radikal со временем сжимает большие картинки.
| |
|
|
|
2.123, Valera (??), 21:25, 04/07/2010 [^] [^^] [^^^] [ответить]
| +/– |
>кто нибудь пробывал ставить из пакетов подготовленных автором ?
да и получилось:
[root@server Документы]# ./adsl_qos restart
Shaping removed on ppp0/eth0.
Поднимаем шейпер на выходном интерфейсе ppp0
Поднимаем шейпер на входном интерфейсе eth0
Illegal "match"
Что делать?
| |
|
3.124, alex2ndr (ok), 11:08, 05/07/2010 [^] [^^] [^^^] [ответить]
| +/– |
>>кто нибудь пробывал ставить из пакетов подготовленных автором ?
>
>да и получилось:
>[root@server Документы]# ./adsl_qos restart
>Shaping removed on ppp0/eth0.
> Поднимаем шейпер на выходном интерфейсе ppp0
> Поднимаем шейпер на входном интерфейсе eth0
>Illegal "match"
> Что делать?
Правила то применились? Какой дистриб, какая версия баша и тд.? Заполнили настройки верно?
Вы ее из репа взяли или откуда?
Как-то было такое, что сыпались похожие ощибки, но вроде все пофиксили. Похоже на опечатку. Тестировать можно так: расставить в коде всякие echo с разными номерами и смотреть после какого вылезает ошибка. У нас мало тестеров, поэтому кое-что может быть не отлажено.
| |
|
|
1.121, evol (?), 12:24, 17/06/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
да статейка хорошая . прочел. сохранил.
Но это теория ,а как на счет самой установки на настройки shell скрипта , со всеми последствиями и с вариантом IMQ.?
| |
|
2.128, alex2ndr (ok), 11:02, 31/08/2010 [^] [^^] [^^^] [ответить]
| +/– |
>ребята ! когда ожидать практику !?
Лето, поэтому нам не до этого - отпуска :)
Сейчас осенью постараемся добить.
| |
|
1.126, sau (?), 09:54, 28/08/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
есть предложение в секции проброса портов добавить возможность указания IP адреса источника.
| |
|
2.127, alex2ndr (ok), 11:00, 31/08/2010 [^] [^^] [^^^] [ответить]
| +/– |
Это предлагается сделать для безопасности? Или есть какой-то иной смысл?
Если я правильно понял, то что вы предлагаете сделать называется фильтрацией. И ее можно отдельно настроить в таблицах доступа(для последнего скрипта). А добавлять фильтрацию в правила для DNAT не стоит - авторы iptables не рекомендуют.
| |
|
1.130, DAN (??), 21:28, 16/01/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ребята, спасибо за скрипт, но не пойму почему не работает. Нет ошибок, но роутинг не работает. Ось убунту 10.10 server.
eth0 на DHTP он к модему, соединении есть.
eth1 локала. Статика. В чем может быть проблема.
| |
1.133, Андрей (??), 02:06, 24/10/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
В общем ситуация такая: сервера нет, но есть Роутер D-Link DIR 320 (Флеш - 4MB, ОЗУ - 32MB(есть возможность расширить до 64) и USB флешка на 4GB) с альтернативной пришивкой от "Олега" на базе Linux, версия 1.9.2.7-d, ядро 2.4.37. Вопрос будет ли данный шейпер работать на нём?
PS: Пробовал запустить, выдаёт ошибку
"/usr/local/sbin/adsl_qos: line 73: syntax error: unexpected "(""
| |
|