ALTQ

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

ALTQ

Алексей Бабкин
Здравствуйте.

Как можно средствами самого ALTQ сделать банальный шейпер, чтоб на
определенный диапазон IP трафик жестко ограничивался?

--
С уважением,
 Алексей                          mailto:[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: ALTQ

Stanislav Kruchinin
Алексей Бабкин wrote:
> Здравствуйте.
>
> Как можно средствами самого ALTQ сделать банальный шейпер, чтоб на
> определенный диапазон IP трафик жестко ограничивался?
>

См. http://www.openbsd.org/faq/pf/queueing.html по поводу cbq. Не
понятен вопрос. Надо чтобы все IP делили одну гарантированную полосу
пропускания или чтобы у каждого была своя полоса? Если адресов много, то
первый вариант в pf/altq можно эффективно реализовать, а второй -- нет.


Reply | Threaded
Open this post in threaded view
|

Re[2]: ALTQ

Алексей Бабкин
Здравствуйте, Stanislav.

Вы писали 14 января 2008 г., 13:05:17:

> Алексей Бабкин wrote:
>> Здравствуйте.
>>
>> Как можно средствами самого ALTQ сделать банальный шейпер, чтоб на
>> определенный диапазон IP трафик жестко ограничивался?
>>

> См. http://www.openbsd.org/faq/pf/queueing.html по поводу cbq. Не
> понятен вопрос. Надо чтобы все IP делили одну гарантированную полосу
> пропускания или чтобы у каждого была своя полоса? Если адресов много, то
> первый вариант в pf/altq можно эффективно реализовать, а второй -- нет.
  Хотелось бы включить разным сетям, разную гарантированную скорость!
  И шейпер.



--
С уважением,
 Алексей                          mailto:[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: ALTQ

Mike Belopuhov
Алексей Бабкин wrote:

> Здравствуйте, Stanislav.
>
> Вы писали 14 января 2008 г., 13:05:17:
>
>> Алексей Бабкин wrote:
>>> Здравствуйте.
>>>
>>> Как можно средствами самого ALTQ сделать банальный шейпер, чтоб на
>>> определенный диапазон IP трафик жестко ограничивался?
>>>
>
>> См. http://www.openbsd.org/faq/pf/queueing.html по поводу cbq. Не
>> понятен вопрос. Надо чтобывсе IP делили одну гарантированную полосу
>> пропускания или чтобы у каждого была своя полоса? Еслиадресов много, то
>> первый вариант в pf/altq можно эффективно реализовать, а второй -- нет.
>   Хотелось бы включить разным сетям, разную гарантированную скорость!

сходите по ссылке (хотя в факе по пф много неточностей).
если мало cbq то есть еще шедулер hfsc (про него только в мане написано).

>   И шейпер.
>

шейпер чего?

--
you're never too old to rock'n'roll if you're too young to die.


Reply | Threaded
Open this post in threaded view
|

Re[2]: ALTQ

Алексей Бабкин
Здравствуйте, Mike.

Вы писали 14 января 2008 г., 14:03:32:

>>> См. http://www.openbsd.org/faq/pf/queueing.html по поводу cbq. Не
>>> понятен вопрос. Надо чтобывсе IP делили одну гарантированную полосу
>>> пропускания или чтобы у каждого была своя полоса? Еслиадресов много, то
>>> первый вариант в pf/altq можно эффективно реализовать, а второй -- нет.
>>   Хотелось бы включить разным сетям, разную гарантированную скорость!

> сходите по ссылке (хотя в факе по пф много неточностей).
> если мало cbq то есть еще шедулер hfsc (про него только в мане написано).

>>   И шейпер.
>>

> шейпер чего?
  исходящего к клиентем трафика.




--
С уважением,
 Алексей                          mailto:[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: ALTQ

Mike Belopuhov
Алексей Бабкин wrote:

> Здравствуйте, Mike.
>
> Вы писали 14 января 2008 г., 14:03:32:
>
>>>> См. http://www.openbsd.org/faq/pf/queueing.html по поводу cbq. Не
>>>> понятен вопрос. Надо чтобывсе IP делили одну гарантированную полосу
>>>> пропускания или чтобы у каждого была своя полоса? Еслиадресов много, то
>>>> первый вариант в pf/altq можно эффективно реализовать, а второй -- нет.
>>>   Хотелось бы включить разным сетям, разную гарантированную скорость!
>
>> сходите по ссылке (хотя в факе по пф много неточностей).
>> если мало cbq то есть еще шедулер hfsc (про него только в мане написано).
>
>>>   И шейпер.
>>>
>
>> шейпер чего?
>   исходящего к клиентем трафика.
>
>

прочитайте наконец текст по ссылке!

как *уже* написал Стас, altq малопригоден для таких вещей (если у вас не
фиксированное маленькое число хостов), потому как для _каждого_ хоста
нужно будет создавать очередь и писать отдельное правило.

--
you're never too old to rock'n'roll if you're too young to die.


Reply | Threaded
Open this post in threaded view
|

Re: ALTQ

Sergej Kandyla-2
Mike Belopuhov wrote:

>>>>> См. http://www.openbsd.org/faq/pf/queueing.html по поводу cbq. Не
>>>>> понятен вопрос. Надо чтобывсе IP делили одну гарантированную
>>>>> полосу пропускания или чтобы у каждого была своя полоса?
>>>>> Еслиадресов много, то
>>>>> первый вариант в pf/altq можно эффективно реализовать, а второй --
>>>>> нет.
>
> как *уже* написал Стас, altq малопригоден для таких вещей (если у вас не
> фиксированное маленькое число хостов), потому как для _каждого_ хоста
> нужно будет создавать очередь и писать отдельное правило.
>
Чтобы вы посоветовали использовать для таких задач? dummynet ?

Меня также данная тема интересует, сопутственные вопросы.

1) Если я сделаю правила  для каждой отдельной подсети, ведь для
_каждого_ хоста
не прийдется отдельно очередь создавать?

2) Есть ли в altq механизм, позволяющий равномерно\динамически мне
распределить полосу
для отдельной очереди? По типу ipfw:

        $fw pipe 20 config bw  3000Kbit/s
        $fw queue 20 config pipe 20 weight 50 mask dst-ip 0xffffffff
        $fw add queue 20 tcp from me 8080  to $local via $int_if

Это динамическое распределение полосы от прозрачного прокси на шлюзе.

Т.е. если нарезать в altq полосу для подсети, хотелось бы что активные
компы этой подсети
делили выделенную полосу равномерно между собой.

3) Афаик altq не шейпер а шедулер, правильно ли я понимаю что восновном
все приоритезации и т.д.
следует делать на исходящем шлюзовом интерфейсе?

4) PS. у меня все организовано на ipfw, но возникли задачи, которые
dummynet решить уже  неможет
(например  borrow), поэтому осталось смотреть в сторону altq...

Спасибо.

--
Wbr, SK


Reply | Threaded
Open this post in threaded view
|

Re: ALTQ

Mike Belopuhov
Sergej Kandyla wrote:

> Mike Belopuhov wrote:
>>>>>> См. http://www.openbsd.org/faq/pf/queueing.html по поводу cbq. Не
>>>>>> понятен вопрос. Надо чтобывсе IP делили одну гарантированную
>>>>>> полосу пропускания или чтобы у каждого была своя полоса?
>>>>>> Еслиадресов много, то
>>>>>> первый вариант в pf/altq можно эффективно реализовать, а второй --
>>>>>> нет.
>>
>> как *уже* написал Стас, altq малопригоден для таких вещей (если у вас не
>> фиксированное маленькое число хостов), потому как для _каждого_ хоста
>> нужно будет создавать очередь и писать отдельное правило.
>>
> Чтобы вы посоветовали использовать для таких задач? dummynet ?
>

Стас Кручинин юзает linux и HTB с еще какой-то матерью.
Так что это лучше у него и узнать. А думонет дохнет слишком быстро.

> Меня также данная тема интересует, сопутственные вопросы.
>
> 1) Если я сделаю правила  для каждой отдельной подсети, ведь для
> _каждого_ хоста
> не прийдется отдельно очередь создавать?
>

и будет оно работать именно для подсети (суммарно).

> 2) Есть ли в altq механизм, позволяющий равномерно\динамически мне
> распределить полосу
> для отдельной очереди? По типу ipfw:
>

Нет.

>        $fw pipe 20 config bw  3000Kbit/s
>        $fw queue 20 config pipe 20 weight 50 mask dst-ip 0xffffffff
>        $fw add queue 20 tcp from me 8080  to $local via $int_if
>
> Это динамическое распределение полосы от прозрачного прокси на шлюзе.
>
> Т.е. если нарезать в altq полосу для подсети, хотелось бы что активные
> компы этой подсети
> делили выделенную полосу равномерно между собой.
>
> 3) Афаик altq не шейпер а шедулер,

altq это не шейпер и не шедулер. altq это подсистема управления очередями
на отправку. Шейпер это общее жаргонное название устройств, управляющих
сетевыми потоками. Шедулер это часть подсистемы управления очередями,
определяющая конкретную политику управления (примеры шедулеров в altq:
priq, cbq, hfsc).

> правильно ли я понимаю что восновном
> все приоритезации и т.д.
> следует делать на исходящем шлюзовом интерфейсе?
>

altq работает _только_ на отправку. на каком интерфейсе её следует
применять, зависит от решаемой задачи.

> 4) PS. у меня все организовано на ipfw, но возникли задачи, которые
> dummynet решить уже  неможет
> (например  borrow), поэтому осталось смотреть в сторону altq...
>
> Спасибо.
>

пожалуйста.

--
you're never too old to rock'n'roll if you're too young to die.


Reply | Threaded
Open this post in threaded view
|

Re: ALTQ

Stanislav Kruchinin
In reply to this post by Sergej Kandyla-2
Sergej Kandyla wrote:

> 2) Есть ли в altq механизм, позволяющий равномерно\динамически мне
> распределить полосу
> для отдельной очереди? По типу ipfw:
>
>        $fw pipe 20 config bw  3000Kbit/s
>        $fw queue 20 config pipe 20 weight 50 mask dst-ip 0xffffffff
>        $fw add queue 20 tcp from me 8080  to $local via $int_if
>
> Это динамическое распределение полосы от прозрачного прокси на шлюзе.
>
> Т.е. если нарезать в altq полосу для подсети, хотелось бы что активные
> компы этой подсети
> делили выделенную полосу равномерно между собой.

В ALTQ нет дисциплины очереди (планировщика) для равномерного деления
полосы пропускания, вроде WF2Q+, которая в правилах dummynet
обозначается queue.

>
> 4) PS. у меня все организовано на ipfw, но возникли задачи, которые
> dummynet решить уже  неможет
> (например  borrow), поэтому осталось смотреть в сторону altq...

ALTQ не умеет поровну делить полосу пропускания и эффективно
классифицировать трафик, основываясь на полях заголовков пакетов (в
правилах это выглядит как mask dst-ip 0xffffffff). В свою очередь,
dummynet не умеет занимать неиспользуемую полосу пропускания, поскольку
не является реализацией какой-либо классовой дисциплины очереди, вроде
CBQ. Совместить их с помощью какого-то набора правил так, чтобы они
компенсировали недостатки друг друга, еще никому не удавалось. Вообще,
две подсистемы QoS, каждая из которых умеет делать что-то свое -- это не
Unix-way, а некое извращение, по-моему.

Если нужно предоставлять минимальную гарантированную полосу пропускания
с возможностью заимствования, то нужно использовать Linux с классовой
дисциплиной HTB. http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm
Делить полосу поровну можно с помощью дисциплин SFQ, ESFQ и WRR.

Линуксовая реализация QoS более сложна, поскольку не вводит простых
абстракций типа pipe и queue, а представляет собой конструктор.