Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> queues

ipfw и очереди.....

Автор: SniZ.


Делать было нечего, анлим 512, просто пропадает... Поставил на закачку из торрентов дофига всего, не знаю что и думать. Никто не мешал мне, никому не мешал я. Однако, позно вечером, когда встроенный в торрент ограничитель скорости не работал изза расписания, мне пришлось думать, как сделать так, чтобы юзвери получали всегда максимум скорости, а моя качающая машина - остстки чтобы не забивать канал.

Так вот молодые сисадмины, не делайте так как я, иначе злые будут все на вас :)

ipfw pipe 1 config bw 1Mbits queue 10
echo "Queue 1 - 50%"
ipfw queue 1 config pipe 1 weight 50 mask dst-ip 0xffffffff
echo "Queue 2 - 40%"
ipfw queue 2 config pipe 1 weight 40 mask dst-ip 0xffffffff
echo "Queue 3 - 10%"
ipfw queue 4 config pipe 1 weight 10 mask dst-ip 0xffffffff

ipfw add 00200 queue 1 ip from not 192.168.1.254 to 192.168.1.133/32
ipfw add 00201 queue 2 ip from not 192.168.1.254 to 192.168.1.101/32
ipfw add 00202 queue 3 ip from not 192.168.1.254 to 192.168.1.102/32

В начале, надо создать пайп, любой, какой хотите, в моём случае - 1 мегабит.
Затем настоить очереди. Ну а потом, добавить нужные правила в эти очереди, так сказать завернуть траффик в трубу.

192.168.1.254 - это мой шлюз, добавил not 192.168.1.254 чтобы не резался траффик от шлюза к пользователям.

Советую так же, эти правила, сувать выше всех остальных....

У меня получилось, вроде нормал, да, забыл, перед добавлением, очистки правил обычной не хватает, советую так:

ipfw -q -f flush
ipfw -q -f pipe flush
ipfw -q -f queue flush



размещено: 2007-10-30,
последнее обновление: 2007-10-30,
автор: SniZ


squid, 2007-10-30 в 12:17:19

а если weight в суме не 100 будет, как будет работать ?

SniZ, 2007-10-30 в 12:44:04

предпочительно будет тому у кого больше ;)

Fastman, 2007-11-01 в 0:28:12

offtop:
SniZ видел тя в IRC.BY приятно что тут появились Минские коллеги )

napTu, 2007-11-03 в 0:39:50

пайп любой - какой хотите работать правильно не будет. разграничение по приоритетам производится относительно заданной пропускной способности пайпа, а не канала.
Потому пайп надо задавать немного меньше чем канал - опробовано на своем опыте.

Dushes, 2008-10-26 в 15:30:06

а почему бы просто 0 не поставить ?

arez, 2009-01-16 в 11:18:29

вот решение для нарезки по 128К для каждого пользователя

table 1 flush
table 1 add 10.10.10.0/24

table 10 flush
table 10 add 10.0.0.0/8  #добавляем что бы не шейпить народ внутри сети

pipe flush

add 10 pipe 1000 ip from not table(10) to table(1) out
add 11 pipe 1001 ip from table(1) to not table(10) in

pipe 1000 config mask dst-ip 0xffffffff bw 128kbit/s
pipe 1001 config mask src-ip 0xffffffff bw 128kbit/s

Laa, 2009-10-20 в 20:43:31

Хорошо бы еще указывать in recv $iface и out xmit $iface, дабы не прогонять по файерволу лишний раз пакеты.

sergio, 2010-02-23 в 12:57:22

У вас 10.10.10.0/24 и 10.0.0.0/8 это что за подсети?



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.2043 секунд
Из них PHP: 32%; SQL: 68%; Число SQL-запросов: 77 шт.
Исходный размер: 15801; Сжатая: 4812