The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ipfw pipe и pf altq cbq"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 05-Мрт-12, 11:29 
Объясните простой технический момент.
есть цель порезать трафик на вход/выход с интерфейса. Наиболее подходит вариант cbq/hfsc. но есть тонкость - как и под Linux ограничение нормально действует только на out трафик.
Ну вот банальный пример:
канал 10 Мбит/с. pf+altq+cbq. что бы особо не заморачиваться - cbq.

altq on $ext_if cbq bandwidth 10Mb queue { main, web, icmp }
queue main bandwidth 10% cbq(default red)
queue web bandwidth 30% cbq(red)
queue icmp bandwidth 10% cbq

# WWW in for apache
pass in on $ext_if proto tcp to $ext_ip port $www keep state queue web
# WWW out
pass out on $ext_if proto tcp from $ext_ip to any port $www keep state queue web

в независимости от того в какую очередь запихнут трафик - качает на полном канале(borrow нет). и обратите внимание - основная очередь, по которой проверяется работа имее 30%. сумма составляет 50%. 50 ещё гуляют. может это и не правильно? просто делал для дебагинга и до 100 сумму очередей поднимать не хотел.
режем саму очередь до мегабита

altq on $ext_if cbq bandwidth 1Mb queue { main, web, icmp }
queue main bandwidth 10% cbq(default red)
queue web bandwidth 30% cbq(red)
queue icmp bandwidth 10% cbq

Качать начинает в половину - 5-4,5Мбит/с
Качаю банальным fetch с самого тазика. никаких натов и т.д.

поднимаю ipfw
Из вредности зажимаю до 100 Кбит
ipfw pipe 1 config bw 100Kbit/s
ipfw add pipe ip from any to any
мои "честные" (с небольшими закидонами вверх) 100 Кбит
даю 1 Мбит и т.д.
ipfw pipe 1 config bw 1Mbit/s
И опять таки честно всё получаю и на вход и на выход.

Если бы не потребность в динамическом шейпинге я бы забил и всё на pipe и построил, но мне нужно вся прелесть altq с его borrow, upperlimit и т.д.
Собственно вопросов несколько:
1) почему себя так непонятно ведёт altq+pf. Бог с ним, что скорость только на отдачу нормально регулируется. но ведь на скачку при указании лимита меньше полосы пропускания в разы он выдаёт скорость выше лимита и ниже полосы. Это глюк или фича? а в чём прикол? Покрайней мере в разрекламированной книге The Book of PF ни в мане не нашёл объяснение такого поведения. Altq как бы режет скорость, но не в рамках определённой очереди или заданной полосы пропускания.
2) можете посоветовать альтернативу кроме варианта поднятия ещё одной очереди на ещё одном интерфейсе и там дополнительно шейпить трафик? не хочется плодить очереди в простеньком то конфиге. дополнительно подключать ipfw для задания границы сверху через pipe - тоже.
3) под freebsd, как в openbsd, что-то подобное systat с отображением очередей pf есть?

PS:
fbsd82# uname -rsm
FreeBSD 8.3-PRERELEASE amd64
fbsd82#

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ipfw pipe и pf altq cbq"  +/
Сообщение от Anony on 05-Мрт-12, 12:28 
А использовать queue в ipfw? там как раз есть значение веса
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 05-Мрт-12, 12:52 
> А использовать queue в ipfw? там как раз есть значение веса

а altq будет лучше работать в ipfw чем в pf?
Вообще не пробовал. надо будет и попробовать.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "ipfw pipe и pf altq cbq"  +/
Сообщение от Anony on 05-Мрт-12, 13:58 
>> А использовать queue в ipfw? там как раз есть значение веса
> а altq будет лучше работать в ipfw чем в pf?
> Вообще не пробовал. надо будет и попробовать.

Скорее всего будет работать также

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "ipfw pipe и pf altq cbq"  +/
Сообщение от artemrts (ok) on 05-Мрт-12, 13:58 
>[оверквотинг удален]
> 2) можете посоветовать альтернативу кроме варианта поднятия ещё одной очереди на ещё
> одном интерфейсе и там дополнительно шейпить трафик? не хочется плодить очереди
> в простеньком то конфиге. дополнительно подключать ipfw для задания границы сверху
> через pipe - тоже.
> 3) под freebsd, как в openbsd, что-то подобное systat с отображением очередей
> pf есть?
> PS:
> fbsd82# uname -rsm
> FreeBSD 8.3-PRERELEASE amd64
> fbsd82#

Поствьте pftop. Начинайте качать и посмотрите попадает-ли ваш трафик в нужную очередь.
Кстати добавлю. Если будете использовать hfsc, то не заморачивайтесь с приоритетами. В hfsc они не используются. В man pf.conf ошибка.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 05-Мрт-12, 15:38 
> Поствьте pftop. Начинайте качать и посмотрите попадает-ли ваш трафик в нужную очередь.

уже поставил. спасибо.
>  Кстати добавлю. Если будете использовать hfsc, то не заморачивайтесь с приоритетами.
> В hfsc они не используются. В man pf.conf ошибка.

а вот это действительно респект и уважуха - точно бы наступил на грабли.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "ipfw pipe и pf altq cbq"  +/
Сообщение от artemrts (ok) on 05-Мрт-12, 19:19 
>> Поствьте pftop. Начинайте качать и посмотрите попадает-ли ваш трафик в нужную очередь.
> уже поставил. спасибо.
>>  Кстати добавлю. Если будете использовать hfsc, то не заморачивайтесь с приоритетами.
>> В hfsc они не используются. В man pf.conf ошибка.
> а вот это действительно респект и уважуха - точно бы наступил на
> грабли.

Впринципе, могу подкинуть конфиг. Недавно настраивал один сервак в конторе. Смысл в приоритизации трафика как входящего так и исходяшего для локальной сети за роутером и для самого роутера.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 05-Мрт-12, 20:55 
>>> Поствьте pftop. Начинайте качать и посмотрите попадает-ли ваш трафик в нужную очередь.
>> уже поставил. спасибо.
>>>  Кстати добавлю. Если будете использовать hfsc, то не заморачивайтесь с приоритетами.
>>> В hfsc они не используются. В man pf.conf ошибка.
>> а вот это действительно респект и уважуха - точно бы наступил на
>> грабли.
> Впринципе, могу подкинуть конфиг. Недавно настраивал один сервак в конторе. Смысл в
> приоритизации трафика как входящего так и исходяшего для локальной сети за
> роутером и для самого роутера.

Буду благодарен, хотя всё же хочется разобраться почему себя так связка ведёт непонятно.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 06-Мрт-12, 07:55 
>[оверквотинг удален]
>>> уже поставил. спасибо.
>>>>  Кстати добавлю. Если будете использовать hfsc, то не заморачивайтесь с приоритетами.
>>>> В hfsc они не используются. В man pf.conf ошибка.
>>> а вот это действительно респект и уважуха - точно бы наступил на
>>> грабли.
>> Впринципе, могу подкинуть конфиг. Недавно настраивал один сервак в конторе. Смысл в
>> приоритизации трафика как входящего так и исходяшего для локальной сети за
>> роутером и для самого роутера.
> Буду благодарен, хотя всё же хочется разобраться почему себя так связка ведёт
> непонятно.

В общем на данном этапе вижу что более менее нормальные цифры выдаются при задании полосы не в процентах, а в фиксированной скорости, например 100Kb. тогда цифра в pftop/nload соответствует приблизительно необходимому значению (~ n*2). Тогда pf начинает принимать "порциями" трафик и соответственно загрузка идёт приблизительно на нужной скорости.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 06-Мрт-12, 08:02 
>[оверквотинг удален]
>>> Впринципе, могу подкинуть конфиг. Недавно настраивал один сервак в конторе. Смысл в
>>> приоритизации трафика как входящего так и исходяшего для локальной сети за
>>> роутером и для самого роутера.
>> Буду благодарен, хотя всё же хочется разобраться почему себя так связка ведёт
>> непонятно.
> В общем на данном этапе вижу что более менее нормальные цифры выдаются
> при задании полосы не в процентах, а в фиксированной скорости, например
> 100Kb. тогда цифра в pftop/nload соответствует приблизительно необходимому значению (~
> n*2). Тогда pf начинает принимать "порциями" трафик и соответственно загрузка идёт
> приблизительно на нужной скорости.

Не, показалось. на малых скоростях просто из-за низкой out не может разогнаться на полную in.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 06-Мрт-12, 13:02 
В общем вердикт следующий: шейпить входящий трафик altq не может. Если в линухе есть какие-то костыли, то тут их нет.
Проксю, если она есть, нужно выносить за пределы хоста, на котором шейпинг имеется, либо баловаться с кучей параметров, например как maximum_object_size. Иначе прокся сожрёт всю полосу на входе. delay_pools не полноценный выход, так как режет, опять таки, исходящий трафик, который уже попал на проксю.
Можно попробовать поиграться с виртуализацией, но во фре всё это как-то слабенько выглядит и в продакшен ставить желания нет.
В общем спрыгнуть с linux не получилось. Хотя этот сервер и остался под фрёй.

PS: кто чем пользуется под фрей для виртуализации? что вменяемого кроме jail/virtualbox посоветуете? (qemu пока невпечатлил)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "ipfw pipe и pf altq cbq"  +/
Сообщение от lavr email on 06-Мрт-12, 18:13 
>[оверквотинг удален]
> Проксю, если она есть, нужно выносить за пределы хоста, на котором шейпинг
> имеется, либо баловаться с кучей параметров, например как maximum_object_size. Иначе прокся
> сожрёт всю полосу на входе. delay_pools не полноценный выход, так как
> режет, опять таки, исходящий трафик, который уже попал на проксю.
> Можно попробовать поиграться с виртуализацией, но во фре всё это как-то слабенько
> выглядит и в продакшен ставить желания нет.
> В общем спрыгнуть с linux не получилось. Хотя этот сервер и остался
> под фрёй.
> PS: кто чем пользуется под фрей для виртуализации? что вменяемого кроме jail/virtualbox
> посоветуете? (qemu пока невпечатлил)

jail + vnet(vimage) - самый вменяемый на данный момент вариант

ждем: реинкарнации vimage в 9'ке/10'ке (обещали...), ну и надежда на bhyve как
на основной гипервизор следующего этапа развития виртуализации

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 06-Мрт-12, 21:56 
> jail + vnet(vimage) - самый вменяемый на данный момент вариант

спасибо, посмотрю.

> ждем: реинкарнации vimage в 9'ке/10'ке (обещали...), ну и надежда на bhyve как
> на основной гипервизор следующего этапа развития виртуализации

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

12. "ipfw pipe и pf altq cbq"  +/
Сообщение от artemrts (ok) on 06-Мрт-12, 20:33 
>[оверквотинг удален]
> Проксю, если она есть, нужно выносить за пределы хоста, на котором шейпинг
> имеется, либо баловаться с кучей параметров, например как maximum_object_size. Иначе прокся
> сожрёт всю полосу на входе. delay_pools не полноценный выход, так как
> режет, опять таки, исходящий трафик, который уже попал на проксю.
> Можно попробовать поиграться с виртуализацией, но во фре всё это как-то слабенько
> выглядит и в продакшен ставить желания нет.
> В общем спрыгнуть с linux не получилось. Хотя этот сервер и остался
> под фрёй.
> PS: кто чем пользуется под фрей для виртуализации? что вменяемого кроме jail/virtualbox
> посоветуете? (qemu пока невпечатлил)

Вообще какова постановка задачи? У вас какие-то обрывистые и несвязанные упоминания того что вам нужно. Вам нужен шейпер для роутера? Для локалки за ним? QoS? Прокси? сли прокси, так самим прокси можно шейпить.
Вобщем конкретные вопросы - конкретные ответы.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

13. "ipfw pipe и pf altq cbq"  +/
Сообщение от Skif (ok) on 06-Мрт-12, 21:48 
> Вообще какова постановка задачи? У вас какие-то обрывистые и несвязанные упоминания того
> что вам нужно. Вам нужен шейпер для роутера? Для локалки за
> ним? QoS? Прокси? сли прокси, так самим прокси можно шейпить.
>  Вобщем конкретные вопросы - конкретные ответы.

В принципе я уже разобрался и решение выработано
моему клиенту нужен "банальный" динамический шейпинг для локалки с натом. с проксей на сервере. так как костыли линуха меня не впечатлили, то я решил возвернуться после нескольких лет "отсуствия", на freebsd/openbsd.
прокси полноценно шейпить может только исход, потому толку от оного... малова-то. вход то он жрёт будь здоров перед тем как положить в кеш новые объекты. осложнено всё тем, что ряд сервисов, например почта, вынесены за пределы компании и соответственно нужно не просто веб трафик  резать по скорости, а дать приоретизацию и гарантированность полосы для каждого из видов трафика. осложнено большим количеством персонала, его территориальной распределённостью, большими объёмами трафика и малой полосой пропускания канала. так как ранее приходилоcь в динамике шейпить только без ната и под openbsd выбор пал на pf+altq(linux с его корявым шейпером не в счёт,в прочем, каждому свои фломастеры). Но так как кроме шейпера мне openbsd ничем более не нравится, то взялся всё строить на freebsd.
всё упростилось после закупки нормального железа и появления возможностью поднять виртуалку, чтобы не плодить сущности. сейчас фактически всё свелось к выбору: freebsd + виртуалка или linux + виртуалка. но учитывая, что конфиги уже готовы - скорее всего всё будет на фре.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру