URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5129
[ Назад ]

Исходное сообщение
"IPFW + pipes + queue + tablearg"

Отправлено Agres , 24-Фев-13 21:19 
Доброго всем времени суток!

Заранее скажу что пролистал кучу манов и форумов но решения так и не нащел, поэтому очень сильно надеюсь что тут найдутся люди которые помогут мне в решении моей задачи.

Суть: разделить скорость, сделать приоритезацию.

работает сейчас так:

есть table0 и table10 в которых содержится юзеры которым дан интернет, и в tablearg номер интернет пакета.

пример table0
192.168.0.100 11
192.168.0.101 12
192.168.0.102 11
192.168.0.103 13

пример table10
192.168.0.100 21
192.168.0.101 22
192.168.0.102 21
192.168.0.103 23

есть трубы:

#Pipes Upload
$cmd pipe 11 config bw 10Mbit/s queue 86 mask src-ip 0xffffffff
$cmd pipe 12 config bw 20Mbit/s queue 86 mask src-ip 0xffffffff
$cmd pipe 13 config bw 30Mbit/s queue 86 mask src-ip 0xffffffff

#Pipes Download
$cmd pipe 21 config bw 10Mbit/s queue 86 mask dst-ip 0xffffffff
$cmd pipe 22 config bw 20Mbit/s queue 86 mask dst-ip 0xffffffff
$cmd pipe 23 config bw 30Mbit/s queue 86 mask dst-ip 0xffffffff

и правила:

#Download World
$cmd add 02000 pipe tablearg ip from "table(0)" to any out xmit $EXT
$cmd add 08000 pipe tablearg ip from any to "table(10)" in recv $EXT

Помогите пожалуйста прикрутить както сюда queue, чтобы сделать для каждого(или во всяком случае я так думаю) приоритет доступа к определённым портам.

$cmd queue 21 config pipe 21 weight 80
$cmd queue 22 config pipe 21 weight 20

$cmd add 07999 queue 21 ip from any to "table(0)" $ports in recv $EXT
$cmd add 07999 queue 22 ip from any to "table(0)" not $ports in recv $EXT

Заранее всем спасибо! за решение буду очень признателен!


Содержание

Сообщения в этом обсуждении
"IPFW + pipes + queue + tablearg"
Отправлено Дум Дум , 26-Фев-13 11:23 
QoS? http://www.opennet.me/openforum/vsluhforumID1/91127.html


"IPFW + pipes + queue + tablearg"
Отправлено Agres , 27-Фев-13 00:46 
> QoS? http://www.opennet.me/openforum/vsluhforumID1/91127.html

Да, именно таки образом! только вот не знаю куда добавить очередь, или пайп, а то я пробовал несколько вариантов, но они не совсем успешные. Да и ещё надо как-то грамотно приклеить к таблицам (если они тут требуются), что у меня не получается.


"IPFW + pipes + queue + tablearg"
Отправлено Дум Дум , 27-Фев-13 10:13 
>> QoS? http://www.opennet.me/openforum/vsluhforumID1/91127.html
> Да, именно таки образом! только вот не знаю куда добавить очередь, или
> пайп, а то я пробовал несколько вариантов, но они не совсем
> успешные. Да и ещё надо как-то грамотно приклеить к таблицам (если
> они тут требуются), что у меня не получается.

http://www.opennet.me/base/net/ipfw_pipe.txt.html ?


"IPFW + pipes + queue + tablearg"
Отправлено Agres , 27-Фев-13 13:29 
>>> QoS? http://www.opennet.me/openforum/vsluhforumID1/91127.html
>> Да, именно таки образом! только вот не знаю куда добавить очередь, или
>> пайп, а то я пробовал несколько вариантов, но они не совсем
>> успешные. Да и ещё надо как-то грамотно приклеить к таблицам (если
>> они тут требуются), что у меня не получается.
> http://www.opennet.me/base/net/ipfw_pipe.txt.html ?

Я же говорил что многое читал, включая и этот пост, и все что гугл нашел по этой теме. Это не совсем то что мне нужно. Тут один pipe и много queue которые задают приоритет, а у меня меня по одному   pipe'у на каждого клиента.

И отсюда и вопрос: нужно каждому вкрутить по 2-3 queue? Если да то как?
Или же нужны несколько queue для всех пользователей? и соответственно как это будет выглядеть?


"IPFW + pipes + queue + tablearg"
Отправлено Дум Дум , 27-Фев-13 16:47 
+ http://www.opennet.me/base/net/transparent_shaper.txt.html

Вообще-то я этим не пользуюсь. Но может что-то похожее?

пример table0
192.168.0.100 11
192.168.0.101 12
192.168.0.102 11
192.168.0.103 13

пример table10
192.168.0.100 21
192.168.0.101 22
192.168.0.102 21
192.168.0.103 23

хорошие порты
gprt="20,21,22,23"

плохие порты
bprt="24,25,26"

в одну сторону

#Pipes Upload
$cmd pipe 11 config bw 10Mbit/s queue 86 mask src-ip 0xffffffff
$cmd pipe 12 config bw 90Mbit/s queue 86 mask src-ip 0xffffffff

$cmd queue 1111 config pipe 11 weight 1 mask src-ip 0xffffffff dst-port 0x00000000
$cmd queue 1121 config pipe 12 weight 1 mask src-ip 0xffffffff dst-port 0x00000000
$cmd queue 1112 config pipe 11 weight 99 mask src-ip 0xffffffff dst-port 0x00000000
$cmd queue 1122 config pipe 12 weight 99 mask src-ip 0xffffffff dst-port 0x00000000

$cmd add queue 1111 tcp from "table(0)" to any $bprt
$cmd add queue 1112 tcp from "table(0)" to any $gprt
$cmd add queue 1121 tcp from "table(10)" to any $bprt
$cmd add queue 1122 tcp from "table(10)" to any $gprt

По-первому впечатлению, автор ответа http://www.opennet.me/openforum/vsluhforumID1/91127.html в основном смотрит "открытые системы на сервере". Если предложенное мною - лажа (что не исключено:), можно попробовать перезадать вопрос в той ветви...


"IPFW + pipes + queue + tablearg"
Отправлено Agres , 08-Мрт-13 20:20 

> По-первому впечатлению, автор ответа http://www.opennet.me/openforum/vsluhforumID1/91127.html
> в основном смотрит "открытые системы на сервере". Если предложенное мною -
> лажа (что не исключено:), можно попробовать перезадать вопрос в той ветви...

За ответ спасибо, перепробовал, немножко подправил, и вроде вроде както должно было работать, но клиенты жаловались. И тут я догнал, что нужно приоритет давать не каждому, а вообше, этим портам. То есть ставится следующая задача:

Сделать так чтоб быстро бегал 80-й (ну там я добавлю ещё какие) порт для всех,
а потом каждому дать определённую скорость.
Мне в голову приходит только архитектура с одним большим pipeом в котором queue для приоритезации, а потом каждому по pipe'у. Но насколько я понял это работать не будет (pipe в pipе)