Страница 1 из 1

две трубы

Добавлено: 2010-09-18 8:48:44
baton4eg
Добрый день, необходимо реализовать следующее:
1. Если юзер идёт на порт 80 (tcp) он попадает в таблицу 1 (вход) и 2 (исход).
2. Если юзер идёт на всё остальное, то попадает в таблицы 3 (вход) и 4 (исход)
3. Как то это всё загнать под крышку, чтобы канал не сжирался.

Пример. Имеем макс. канал для юзера 1 мегабит, юзер запустил торрент, попал в таблицу 3,4, и пайп у него пусть 512Кбит. Дальше он запустил скачку по http, попал он в таблицы 1,2, пайп 1 мегабит, и система поняла что эти 2 действия юзера в ОДНОЙ ОБЩЕЙ ТРУБЕ и ПРОССУМИРОВАВ его действия ограничила его в 1 Мегабит.
P.S На практике у меня получилось добавится только суммирование 2 таблиц, т.е юзеру ушло 1,5 Мегабит, т.е торрент+web запускается, ограничивается, но вот паралельно, в разных трубах, а надо как то в одной общей, запихать 2 трубы. Идея я думаю понятно, спасибо.

Re: две трубы

Добавлено: 2010-09-21 17:19:10
baton4eg
нет никакой реализации данный задачи?

Re: две трубы

Добавлено: 2010-09-21 17:37:40
terminus
На ipfw не очень удобно такое делать (практически нииизя).
А очереди + пайпы не подойдут? Пайп жестко ограничивает в 1м, а очереди регулируют приеоритеты в зависимости от типа трафика?

Re: две трубы

Добавлено: 2010-09-21 18:52:21
baton4eg
придётся наверно с очередями поиграть, что получится выложу :)

Re: две трубы

Добавлено: 2010-09-29 23:54:59
baton4eg
чего то не пойму как очереди внедрить для данной схемы =(
Пайп ограничивает, а вот очереди от типа трафика не пойму куда кинуть.. т.е есть очередь для http, вес 10, и есть очередь для всего остального, вес 5 к примеру.. Дальше не пойму в какую сторону рулить.. По идеи, если бы у нас был бы один большой пайп(Весь канал инета к примеру 100Мегабит), в котором сидели бы его дети (1,2.3 Мегабита) тогда можно было на основе этого пайпа сделать очереди для http и другого с приоритетами.. Пока я завис, может кто поможет.. reset не предлагать =)

Re: две трубы

Добавлено: 2010-09-29 23:58:46
hizel
one_pass и гениальная идея о том что трафик можно проганять через несколько труб последовательно

Re: две трубы

Добавлено: 2010-09-30 0:11:56
baton4eg
пробовал, делал 2 трубы, например 400+600 Кбит, ставил one_pass, как в одну трубу залетело, во вторую не хочет

Изображение

я тут пытаюсь на шейпере реализовать

немного ipfw:

Код: Выделить всё

#Сам пайп
${fw} pipe 1000 config bw 2000Kbit/s mask src-ip 0xffffffff
${fw} pipe 1001 config bw 1000Kbit/s mask dst-ip 0xffffffff
# IN
${fw} add 1203 pass ip from any to any out via em0
${fw} add 1204 pipe tablearg ip from "table(50)" to any in via em1
${fw} add 1205 pass ip from "table(50)" to any in via em1
# OUT
${fw} add 1203 pass ip from any to any in via em0
${fw} add 1204 pipe tablearg ip from any to "table(51)" out via em1
${fw} add 1205 pass ip from any to "table(51)" out via em1
Соответственно много пайпов, юзер загоняется в 2 таблицы

Re: две трубы

Добавлено: 2010-09-30 0:22:51
baton4eg
Соответственно много пайпов, юзер загоняется в 2 таблицы

Задача чтоб всегда был в приоритете http в своей трубе, ну и в самой общей трубе (т.е весь инет трафик)
Сейчас веду график по протоколам, TCP,80,UDP, замечаю что порой UDP превосходит 80, т.е юезеры запускают торренты, канал забивается, а серфинг подтупливает. Хочу сделать как канал забился, торрентеры или те кто не юзает http, немного двинулись..

По сути всё с шейпера через defaultgate идёт на нате, была мысль бросить шейпер и на нате поднять правила приоритезации, логично или нет? или можно на шейпере сделать?

Re: две трубы

Добавлено: 2010-09-30 0:25:55
baton4eg
hizel писал(а):one_pass и гениальная идея о том что трафик можно проганять через несколько труб последовательно
делал 2 таблицы, в которые загонял юзера в одну с одним пайпом, в другую таблицу с другим. включил one_pass=0, В теории должно было произойти суммирование, например пайп 1 = 400Кбит, а пайп 2=600, т.е должен был получить на выходе 1000Кбит, верно?

Re: две трубы

Добавлено: 2010-09-30 8:14:36
hizel
я практик

Re: две трубы

Добавлено: 2010-09-30 11:36:49
FreeBSP
думается мне что трубы проходятся по очереди и на выходе из последней трубы задержка будет суммироваться, а скорость будет равна наименьшему ограничению в серии труб
* естественно если one_pass в нуле

Re: две трубы

Добавлено: 2010-09-30 11:56:37
baton4eg
вот, так оно и показало на практике, а по словам hizel я понял что должно было выйти со всех правил сумма ограничений в серии труб

Re: две трубы

Добавлено: 2010-09-30 12:07:04
FreeBSP
логически прикинь
серия труб(водопроводных) разного диаметра и длины. в итоге время прохождения будет смуммарной длиной всех труб, а скорость будет зависеть от диаметра самой узкой трубы(при грубом приближении =))