Страница 1 из 1
pf altq hfsc
Добавлено: 2008-11-16 15:55:36
Scomp
Код: Выделить всё
ext_if="ng0"
int_if="rl1"
a_ext_if="rl0"
dad="192.168.1.3"
sith="192.168.1.2"
tit="192.168.1.4"
table <a_private_net> { 10.0.0.0/8 192.168.1.0/24 81.28.160.181 } //Локальные сети провайдера гуляем максимально на скорости 99 mb
altq on $int_if bandwidth 100Mb hfsc queue { inet_in, default_in }
queue default_in bandwidth 99Mb priority 1 hfsc(default) // Приоритет 1!!!
queue inet_in bandwidth 256Kb priority 7 hfsc{ q_sith_in, q_dad_in, q_tit_in} // Приоритет 7!!!
queue q_sith_in bandwidth 128Kb priority 5 hfsc(realtime 128Kb upperlimit 256Kb)
queue q_dad_in bandwidth 64Kb priority 5 hfsc(realtime 64Kb upperlimit 256Kb)
queue q_tit_in bandwidth 64Kb priority 1 hfsc(realtime 64Kb upperlimit 256Kb)
nat on $ext_if from $int_if:network to any -> ($ext_if)
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)
pass out on $int_if from ! <a_private_net> to $sith queue q_sith_in
pass out on $int_if from ! <a_private_net> to $dad queue q_dad_in
pass out on $int_if from ! <a_private_net> to $tit queue q_tit_in
Почему когда качаю ченибудь с локальных сетей провайдера внешка начинает жутко тормазить хотя приоритет на дефолтовую очередь 1. А на внешку 7. Ставил ограничение до 8 мегабит на дефолтовую - тормозит поменьше(не на много=/). Но этоже нонсонс. На винде и то все летало без всяких там очередей... Не могу больше терпеть эту несправедливость=)
Re: pf altq hfsc
Добавлено: 2008-11-16 18:51:24
paradox
случайно не оно?
_http://lists.freebsd.org/pipermail/freebsd-pf/2005-November/001670.html
_http://forum.lissyara.su/viewtopic.php?f=8&t=11003&start=0&st=0&sk=t&sd=a
зы
тег
Re: pf altq hfsc
Добавлено: 2008-11-17 19:45:10
Scomp
Я так понял, что от приоритетов входящего трафика ничего толком не зависит. Тогда встает вопрос как сделать очереди для исходящего трафика от разных пользователей с разными приоритетами и скоростью при учете что у меня Nat(если не обязательно для каждого главное чтобы закачка с локальных ресурсов провайдера(макс 100мб) не тормазила внешку(макс 256кб)):
Код: Выделить всё
nat on $ext_if from $int_if:network to any -> ($ext_if)
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)
Пробывал по разному но смысл тотже:
Код: Выделить всё
altq on $a_ext_if bandwidth 100Mb hfsc queue { inet_out, default_out }
queue default_out bandwidth 1kb priority 0 hfsc(default)
queue inet_out bandwidth 256Kb priority 7 hfsc { q_sith_out, q_dad_out, q_tit_out}
queue q_sith_out bandwidth 128Kb priority 7 hfsc(realtime 128Kb upperlimit 256Kb)
queue q_dad_out bandwidth 64Kb priority 7 hfsc(realtime 64Kb upperlimit 256Kb)
queue q_tit_out bandwidth 64Kb priority 0 hfsc(realtime 64Kb upperlimit 256Kb)
pass out on $a_ext_if from $sith to ! <a_private_net> queue q_sith_out
pass out on $a_ext_if from $tit to ! <a_private_net> queue q_tit_out
pass out on $a_ext_if from $dad to ! <a_private_net> queue q_dad_out
Подазреваю что не сработало из-за nat.
p.s. Спасибо за ссылки paradox. Но как всегда боян. Нильзя ли сделать простой пример altq hfsc, sbq или priq планировщика pf для рядовой домашней сети без изощрений (качаем с осла/торрента, лазяем по страничкам(
без лагов от скачки с осла/торрента))?
Re: pf altq hfsc
Добавлено: 2008-11-17 19:55:02
paradox
впринципе все примеры есть в
но думаеться мне что тебе и обычнй cbq (borrow) подойдет
что бы как говриться если канал(полоса) лишний(я) то не простаивал
зы
потерял линк на краткий мануал по hfsc
правда там на игнлыше
но наскоко помню там очень понятно было рассписано что и для чего
найду запостю
мож кому пригодиться
Re: pf altq hfsc
Добавлено: 2008-11-17 20:02:55
paradox
Re: pf altq hfsc
Добавлено: 2008-11-17 23:08:57
Scomp
Еще раз спасибо paradox за ссылочки... Теперь встал вопрос про p2p протокол. Быть может без блокировки и обрезания скорости можно его както отключать на время пока пройдут пакеты со внешки. То есть если кто то работает с внешкой p2p соединение тутже вырубается(ну или хотябы замедляется на столько чтобы работающий со внешкой не заметил разницы в скорости) а когда заканчивает включается опять.

Re: pf altq hfsc
Добавлено: 2008-11-17 23:14:41
paradox
p2p разные бывает
уточни какой
что бы народу стало понятно что подсказать
Re: pf altq hfsc
Добавлено: 2008-11-18 0:52:55
Scomp
Помоему для шейпинга спомощью pf будет не важно какой p2p. Можно будет только указать порты и использовать QoS hfsc(покрайней мере многие пишут об этом... и больше ничего не пишут

как всегда). Интересно почему все молчат (или все ограничиваются блокировкой/урезанием(статичным) скорости для p2p?)

Re: pf altq hfsc
Добавлено: 2008-11-18 0:57:16
paradox
потому что p2p не так прост
и порты там рандомные
и на уровне tcp ip ты его просто так не поймешь
если я правльно понял о каком p2p ты говришь
Re: pf altq hfsc
Добавлено: 2008-11-18 1:00:03
Scomp
мне только для моего Тольяттинского bit-torrenta и emule ed2k.
Re: pf altq hfsc
Добавлено: 2008-11-18 1:11:22
paradox
не если у тебя татические порты то без проблем
посто у торрентах обычно все динамически
и нет ничего постоянного
Re: pf altq hfsc
Добавлено: 2008-11-18 2:19:02
Scomp
Из всего прочитанного сделал вывод что если торрент качает на скорости 6 мегобайт в секунду о быстрой(в моем случае отключается всо) внешке можно забыть

Или может кто-нибудь покажит "как нада"

.
Re: pf altq hfsc
Добавлено: 2008-11-18 2:37:33
paradox
если ты неможет выловить кто из них торрент то никак
Re: pf altq hfsc
Добавлено: 2008-11-18 13:44:44
Scomp
Допустим я знаю порт(ы). Возможно надо уменьшить приоритет ack запросов для очереди p2p bittor.
Должно же быть что-то примерно такое?:
Код: Выделить всё
altq on $a_ext_if bandwidth 5Mb hfsc queue { http, other, bittor }
queue http bandwidth 90% priority 7 qlimit 500 hfsc
queue other bandwidth 9% priority 5 qlimit 500 hfsc(default, realtime 9%)
queue bittor bandwidth 1% priority 0 qlimit 500 hfsc(upperlimit 99%)
pass out on $a_ext_if inet proto tcp from any to any port 80 flags S/SA keep state queue http
pass out on $a_ext_if proto {tcp udp} from any to any port 4661 flags S/SA keep state queue bittor
Делали же похожее на cbq или priq??? Можете скинуть
рабочий пример? Это же так легко -> copy/paste

Re: pf altq hfsc
Добавлено: 2008-11-18 14:05:38
paradox
queue bittor bandwidth 1% priority 0 qlimit 500 hfsc(upperlimit 99%)
эт ты типа по умолчанию дал 1 процент
и разрешил заюзать все 99% ?
зы
у меня нет примеров
я такие связки не настраиваю
Re: pf altq hfsc
Добавлено: 2008-11-18 14:13:30
Scomp
https://calomel.org/pf_hfsc.html
Код: Выделить всё
queue bittor bandwidth 1% priority 3 qlimit 500 hfsc (upperlimit 99%)
This is bittor queue. The bittor queue can borrow as much at 1% of the total bandwidth, it is at priority at 3, and has a very high queue limit of 500 slots. Notice this rule does not have a real time directive. This is because we have decided that bittor traffic is expendable and we want to make sure this queue gives up all bandwidth to higher priority queues need it. The upperlimit directive makes sure this rule will never borrow more than 99% of the total bandwidth from any other queue.
Re: pf altq hfsc
Добавлено: 2008-11-18 14:19:22
paradox
The upperlimit directive makes sure this rule will never borrow more than 99% of the total bandwidth from any other queue
как бы это имеллось ввиду не от 1%
а от общего канала 5MB
в итоге оно у тебя так и работает
появляеться торрент который забиывает все
а сделай по примеру с екземплс в бсд по hscf ?
без приоритетов итд
просто тупо поделить
поделит?
или будет также глючить
зы
документацию надо читать поверхностно
Re: pf altq hfsc
Добавлено: 2008-11-18 14:36:49
Scomp
This rule will allow the data to transfer at up to 99% of your full speed, but if another queue needs the bandwidth, the bittor queue will be pruned almost instantly to 1%. Оттудоже.
Re: pf altq hfsc
Добавлено: 2008-11-18 14:38:16
paradox
наскоко я понял из того что читал в документации на примерах
7 приоритет это минимальный
а 0 это максимальный
вот у тебя торрнеты и максимально входят в очередь
или я опять не то читаю?
Re: pf altq hfsc
Добавлено: 2008-11-18 14:56:52
Scomp
Ну насколько я знаю для cbq приоритет изменяется от 0 до 7, priq диапазон от 0 до 15. Приоритет 0 считается самым низким. Для hfsc вроде также(если не так можно ссылочку)?
Re: pf altq hfsc
Добавлено: 2008-11-18 15:01:00
paradox
ну я из примеров смотрю
1. Here i've given 640Kb of linkshare to the o_def queue.
2. No traffic is being assigned to this queue, but child queues under it will take from this value.
3. Priority is lower than the other queues because this traffic is not critical.
queue o_def bandwidth 640Kb priority 7 hfsc(linkshare 640Kb) { o_brst, o_other, o_tput }
тоесть я так понимаю
Re: pf altq hfsc
Добавлено: 2008-11-18 15:17:23
Scomp
Помоему это пример с ошибкой
Код: Выделить всё
queue ack bandwidth 80% priority 7 qlimit 500 hfsc (realtime 50%)
This is the ack queue. it can borrow as much as 80% of the total bandwidth,
it is the highest priority at 7, and has a very high queue limit of 500 slots. The realtime of 50% means this queue is guarantee at least 50% of the total bandwidth no matter what any other rules wants.
Re: pf altq hfsc
Добавлено: 2008-11-18 15:18:37
paradox
ммда офигенная документация у них....
самая лучшая документация это суорсы)))
может там проще почитать?
Re: pf altq hfsc
Добавлено: 2008-11-18 15:37:26
Scomp
У меня еще вопрос а я вообще правильно задаю правила?($a_ext_if это у меня rl0 внешний интерфейс). Мне это читается: "Пропустить на внешнем интерфейсе ack пакеты (tcp, udp) от любых к любым ip с портом 80 в очередь http ".....
Код: Выделить всё
pass out on $a_ext_if proto {tcp udp} from any to any port 80 flags S/SA keep state queue http
pass out on $a_ext_if proto {tcp udp} from any to any port 4661 flags S/SA keep state queue bittor

Re: pf altq hfsc
Добавлено: 2008-11-18 16:06:08
paradox
вообем то правильно
но похоже за логикой работы шедуллера hsfc наверное нужно лезить в сорусы