The OpenNET Project / Index page

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

Подробнее об использовании pipe-s в IPFW (ipfw limit pipe queue traffic shaper limit freebsd)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: ipfw, limit, pipe, queue, traffic, shaper, limit, freebsd,  (найти похожие документы)
From: napTu3aH <napTu @ front . ru> Newsgroups: email Date: Mon, 20 May 2005 14:31:37 +0000 (UTC) Subject: Подробнее об использовании pipe-s в IPFW В данной статье хочу поделиться собственными наработками в части ограничения и распределения трафика для клиентов с помощью pipes в IPFW. Существующая информация дает поверхностное описание и не описывает всех тонкостей работы с pipes. В своём изучении pipes я основывался на известной статье by Kuzmich ( http://www.hub.ru/modules.php?name=Sections&sop=viewarticle&artid=24&page=4 ), которая может дать толчек для начальных знаний, но оставляет при этом множество вопросов. Здесь я приведу пример настроек в моей сети и опишу как это работает. Когда настраиваются правила для IPFW, то перед запуском скрипта с новыми правилами обычно производится очистка от старого набора при помощи команды ipfw -f flush как выяснилось, тоже самое необходимо делать и для pipes, т.е. ipfw -f pipe flush - для очистки всех каналов. Подобным образом можно применять команду ipfw -f queue flush Итак, перед тем как описывать каналы и очереди, нужно представить себе как это выглядит. Я разобрался в этих понятиях только после того как нарисовал на бумаге следующую конструкцию: канал pipe с параметрами: queue Q - размер очереди (отброс не поместившихся в очередь пакетов) bw B - скорость выхода пакетов в [K|M]bit/s delay D - дополнительная задержка каждого пакета на D ms _____________________________________________ < очередь queue 1 описывается параметрами: queue Q - размер очереди (отброс не поместившихся в очередь пакетов) weight 50 - весовой коэффициент от 1 до 100 соответствует приоритету очереди | пакет1 | пакет2|пакет3|...пакет Q| _____________________________________________ < очередь queue 2 weight 40 | пакет1 | пакет2|пакет3|...пакет Q| _____________________________________________ > очередь queue 3 weight 30 | пакет1 | пакет2|пакет3|...пакет Q| _____________________________________________ > очередь queue 4 weight 20 | пакет1 | пакет2|пакет3|...пакет Q| _____________________________________________ В правилах эта конструкция описыватся следующим образом: ipfw pipe 1 config bw 100Kbit/s queue 20 ipfw queue 1 config pipe 1 weight 50 queue 20 ipfw queue 2 config pipe 1 weight 40 queue 20 ipfw queue 3 config pipe 1 weight 30 queue 20 ipfw queue 4 config pipe 1 weight 20 queue 20 "queue 20" приведено для примера и говорит о том что очередь имеет размер 20 пакетов { Место в скрипте, где описывается pipe не имеет значения. В множестве примеров я видел это описание после обьявления правила для прохода пакетов через pipe, однако сам описываю pipe в начале скрипта. } Но вернемся к приведенному выше рисунку нашей pipe. --------- Из этого примера следует, что для работы группы пользователей по ограниченному каналу с равными или разными приоритетами, необходимо пакеты каждого отдельного пользователя ставить в отдельную очередь. Тогда пакеты будут выходить из pipe в соответствии с приоритетами очередей, в которых они находятся. --------- Это и есть основная мысль, которая описывает разделение пакетов в pipe. Теперь рассмотрим реализацию этого метода на практике. Сперва задаем pipe ipfw pipe 1 config bw 80Kbit/s queue 20 Если скорость pipe соответствует пропускной способности канала, то установка правильного значения имеет большое влияние на корректную работу системы разделения трафика. К примеру, в моей сети установлен модем Sirius с выделенным каналом 115 Кбит/с, однако для правильной работы pipe я устанавливаю 80Кбит/с, т.к. это примерно соответствует реальному значению скорости в канале. При установке значения скорости большего, чем может обеспечить канал, вся система разделения перестаёт работать. Это можно показать на следующем примере. Пусть в сети через один канал работают два пользователя через очереди с равными приоритетами. Реальная пропускная способность канала 80Кбит/с, но мы устанавливаем pipe 110Кбит/с. Оба пользователя непрерывно качают примерно одинаковый поток данных. Один из них начал качать раньше. Когда появился второй, то система начала ограничивать поток для первого до 110/2=55 Кбит/с. Считая что второму также будет отведено 55Кбит/с, однако из-за того что реальная пропускная способность канала 80Кбит/с, то второму пользователю будет предоставлено всего 80-55=25Кбит/с. Кроме того возможно система будет считать, что второй пользователь не использует выделенный ему канал и давать еще больший приоритет первому, чтобы довести общий поток до 110Кбит/с. После создания pipe нам необходимо создать очереди queue. Если всем пользователям необходимо равномерно распределять поток, то создавать вручную количество очередей соответствующее количеству пользователей не нужно. Мы создаем всего одну очередь ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff но приписываем параметр mask, в котором указываем что для каждого отдельного destination адреса будет создаваться своя очередь с такими же параметрами, как у этой. { Здесь я не согласен с примерами приведенными у Кузмича, где маска адреса установлена в 0x00000000. При такой маске не происходит разделения на отдельные очереди и все пакеты на любые destination адреса заносятся в одну единственную очередь, из которой они сходят в таком же порядке в котором они туда попали. При этом не происходит никакого реального разграничения по приоритетам или равномерного разделения. } Реально работающую pipe с очередями можно просмотреть командой ipfw pipe show Эта команда практически нигде не описана, но очень сильно помогает в настройке работы pipe и в понимании работы системы в целом. Параметр mask можно установить в all. Казалось бы - это то что нужно и каждый адрес будет выделен в отдельную queue, но нет. mask all создает отдельные очереди не только для адресов, но еще и для протоколов. Кроме того разграничиваются как входящие так и исходящие адреса. В результате получается полный хаос - создается море очередей, где трафик делится по интернет адресам, протоколам и месным адресам. Для себя я нашел следующее решение. Создаем две очереди для входящего и исходящего трафика ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff ipfw queue 11 config pipe 1 weight 50 queue 20 mask src-addr 0xffffffff Далее запускаем в эти очереди трафик ipfw add queue 1 ip from any to 192.168.0.0/24 ipfw add queue 11 ip from 192.168.0.0/24 to any Таким образом очередь 1 будет являться образцом для создания очередей с трафиком идущим на каждый отдельный ip нашей сети, а очередь 11 - соответственно примером для исходящего трафика с каждого нашего ip. Эти четыре записи будут соответствовать тому как если бы мы создали количество очередей соответствующее количеству IP адресов в нашей сети и создали бы такое же количество правил для прохождения трафика и разделили бы каждую запись на входящий и исходящий трафик. Если Вам необходимо выделить еще несколько разных приоритетов, для сильно вредных или сильно важных пользователей, то это можно сделать так: #нормальным ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff ipfw queue 11 config pipe 1 weight 50 queue 20 mask src-addr 0xffffffff #вредным ipfw queue 2 config pipe 1 weight 10 queue 20 mask dst-addr 0xffffffff ipfw queue 21 config pipe 1 weight 10 queue 20 mask src-addr 0xffffffff #важным ipfw queue 3 config pipe 1 weight 80 queue 20 mask dst-addr 0xffffffff ipfw queue 31 config pipe 1 weight 80 queue 20 mask src-addr 0xffffffff #важным ipfw add queue 3 ip from any to 192.168.0.233 ipfw add queue 31 ip from 192.168.0.233 to any #вредным ipfw add queue 2 ip from any to 192.168.0.154 ipfw add queue 21 ip from 192.168.0.154 to any ipfw add queue 2 ip from any to 192.168.0.102 ipfw add queue 21 ip from 192.168.0.102 to any #всем остальным ipfw add queue 1 ip from any to 192.168.0.0/24 ipfw add queue 11 ip from 192.168.0.0/24 to any Вот что мы получим в итоге. Например работают три пользователя 192.168.0.1, 2, 3 Наша pipe будет выглядеть следующим образом: pipe 1 > очередь queue 1 для трафика с любого интернет адреса на 192.168.0.1 _____________________________________________________________ > очередь queue 1 для трафика с любого интернет адреса на 192.168.0.2 _____________________________________________________________ > очередь queue 1 для трафика с любого интернет адреса на 192.168.0.3 ____________________________________________________________________ ____________________________________________________________________ < очередь queue 11 для трафика с адреса 192.168.0.1 на любой адрес интернет _____________________________________________________________________ < очередь queue 11 для трафика с адреса 192.168.0.2 на любой адрес интернет _____________________________________________________________________ < очередь queue 11 для трафика с адреса 192.168.0.3 на любой адрес интернет Итак, запускаем скрипт, исправляем ошибки и смотрим что получилось ipfw pipe show © napTu 3aH < napTu @ front . ru > 19.05.2005

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, adsh (??), 02:51, 21/05/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всё хорошо, только лучше ещё использовать GRED - будут меньше потери и скорость не будет прыгать туда / сюда. Ну и размеры очередей пакетов подобрать.
     
     
  • 2.2, dmitry (??), 13:00, 23/05/2005 [^] [^^] [^^^] [ответить]  
  • +/
    как правильно GRED и размер очереди подобрать. каким алгоритмом руководствоваться


     
  • 2.4, waso (?), 09:21, 24/05/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >Всё хорошо, только лучше ещё использовать GRED - будут меньше потери и
    >скорость не будет прыгать туда / сюда. Ну и размеры очередей
    >пакетов подобрать.
    А можно с этого места поподробнее? :)

     
     
  • 3.31, TigraS (?), 19:15, 10/02/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>Всё хорошо, только лучше ещё использовать GRED - будут меньше потери и
    >>скорость не будет прыгать туда / сюда. Ну и размеры очередей
    >>пакетов подобрать.
    >А можно с этого места поподробнее? :)

    Может кому пригодится про red и Gred
    http://freebsd-r16.narod.ru/freebsd/shaper.html

     

  • 1.3, napTu (?), 02:03, 24/05/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    From Александр Subject Re Подробнее об использовании pipe-s в IPFW Возможно я... большой текст свёрнут, показать
     
     
  • 2.5, napTu (?), 14:52, 25/05/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Всё хорошо и я согласен с твоими рассуждениями о разбивке по приоритетам очередей, а не по скорости канала. Но проведение эксперимента этого не подтверждает:
    -два пользователя имеют разные приоритеты созданных для них очередей (причем разность велика - 5 и 50);
    -качают с одного сайта с толстым каналом разные файлы;
    -скорость pipe не ограничена и результирующий поток ограничивается только шириной канала.
    В результате скорость закачки у обоих примерно одинакова. Иногда больше у одного, иногда у другого.
    При изменении условия ограничения pipe до значения меньшего, чем пропускная способность канала, получаем совсем иную картину - начинают работать приоритеты очередей.

    Как это иначе объяснить, чем я описал, не знаю.

     

  • 1.6, napTu (?), 20:45, 27/05/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а еще я сделал вот так:

    maska="0xffffffff"

    ${ipfw} pipe 1 config bw 80Kbit/s queue 20
    ${ipfw} queue 1 config pipe 1 weight 90 mask dst-ip $maska queue 20
    ${ipfw} queue 2 config pipe 1 weight 20 mask dst-ip $maska queue 20

    ${ipfw} queue 11 config pipe 1 weight 90 mask src-ip $maska queue 20
    ${ipfw} queue 21 config pipe 1 weight 20 mask src-ip $maska queue 20


    ipfw add queue 11 tcp from $int_net to any in recv $int_if tcpflags fin
    ipfw add queue 11 tcp from $int_net to any in recv $int_if tcpflags syn
    ipfw add queue 11 tcp from $int_net to any in recv $int_if tcpflags rst
    ipfw add queue 11 tcp from $int_net to any in recv $int_if tcpflags psh
    ipfw add queue  1 tcp from any to $int_net out xmit $int_if tcpflags fin
    ipfw add queue  1 tcp from any to $int_net out xmit $int_if tcpflags syn
    ipfw add queue  1 tcp from any to $int_net out xmit $int_if tcpflags rst
    ipfw add queue  1 tcp from any to $int_net out xmit $int_if tcpflags psh

    это чтобы пакеты инициализации-завершения проходили как можно быстрее. Остальной трафик во второй очереди

    ipfw add queue 21 tcp from $int_net to any in recv $int_if
    ipfw add queue  2 tcp from any to $int_net out xmit $int_if


    Может кто нибуть знает как еще можно ускорить загрузку HTML страниц, ограничив при этом в этот момент качальщиков?
    Про прокси - понятно, а вот при помощи IPFW как?

     
     
  • 2.7, gara (??), 15:53, 17/06/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати на основе этих правил очень хорошо организовывается "Анлим".
    делаем 3 очереди в одном канале с приоритетами 60,30,10.
    60 тем кто очень мало качает, 10 наглым выкачивальщикам всего инета а остальным 30. прекрастно работает.
    Сумма цмфр дает 100 (%) :)
     

  • 1.8, Grayich (??), 00:21, 08/08/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    почему pipe создается только один ?
    ведь сириус-128 позволяет одновременно как отсылать 115кбит (теоритически, практически около 96кбит) так и принимать столько-же...

     
  • 1.9, Михаил (??), 01:59, 04/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а если нужно просто зделать приоретизацию трафика без ограничения по скорости то как быть?
     
     
  • 2.10, Banan (?), 01:14, 17/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    "Для себя я нашел следующее решение.
    Создаем две очереди для входящего и исходящего трафика
             ipfw queue  1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff
             ipfw queue 11 config pipe 1 weight 50 queue 20 mask src-addr 0xffffffff"
    у меня заработало только с dst-ip и src-ip
    Действительно все делится поровну очень удачно. Часик потратил на вычисление длины очереди, но работает классно. Мне ндравится! :)
     
     
  • 3.18, Maks (??), 12:37, 18/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    У меня тоже заработало только с dst-ip и src-ip
    Почему не работает с dst-addr и src-addr (ipfw ругается ошибками и вырубает начисто сеть) кто-нибудь сможет подсказать?
     
  • 3.28, Camb (ok), 14:36, 22/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Часик потратил на вычисление длины очереди,
    но работает классно. Мне ндравится! :)

    расскажи как вычислял?

     

  • 1.11, snoop (??), 07:02, 25/10/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот интересно...а как проверить работают-ли правила?
    на ввод комманды ipfw pipe show ответ вот какой
    00001: 128.000 Kbit/s    0 ms   25 sl. 0 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
    ...оно и понятно...а где очереди или еще что-то... не пойму....
     
     
  • 2.12, Grayich (??), 11:43, 25/10/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >Вот интересно...а как проверить работают-ли правила?
    >на ввод комманды ipfw pipe show ответ вот какой
    >00001: 128.000 Kbit/s    0 ms   25 sl.
    >0 queues (1 buckets) droptail
    >mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
    >...оно и понятно...а где очереди или еще что-то... не пойму....

    пакеты непоподают в шейпер, или канал\очередь заданы неправильно, например неверная маска

     

  • 1.13, snoop (??), 14:58, 25/10/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну конфиг у меня вот какой
    у меня 2-е подсети
    192.168.20.0/24  моя
    192.168.2.0/24   арендаторы
    хочу отдать им 30% а себе 70%
    делаю вот что...
    определяю общий pipe...
    ipfw pipe 1 config bw 128Kbit/s queue 20
    далее создаю 4-е очереди =
    ipfw queue 3 config pipe 1 weight 70 queue 25 mask dst-addr 255.255.255.0                                                  
    ipfw queue 31 config pipe 1 weight 70 queue 25 mask src-addr 255.255.255.0
    ipfw queue 11 config pipe 1 weight 30 queue 25 mask src-addr 255.255.255.0                                                            
    далее создаю очереди для каждой подсети....                                    
    ipfw add queue 3 ip from 192.168.20.0/24 to any
    ipfw add queue 31 ip from 192.168.20.0/24 to any #          
    ipfw add queue 11 ip from any to 192.168.2.0/24
     
     
  • 2.14, Grayich (??), 15:13, 25/10/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >далее создаю 4-е очереди =
    >ipfw queue 3 config pipe 1 weight 70 queue 25 mask dst-addr
    >255.255.255.0
    >ipfw queue 31 config pipe 1 weight 70 queue 25 mask src-addr
    >255.255.255.0
    >ipfw queue 11 config pipe 1 weight 30 queue 25 mask src-addr
    >255.255.255.0
    >далее создаю очереди для каждой подсети....
    >ipfw add queue 3 ip from 192.168.20.0/24 to any
    >ipfw add queue 31 ip from 192.168.20.0/24 to any #
    >ipfw add queue 11 ip from any to 192.168.2.0/24

    ipfw queue 3 config pipe 1 weight 70 queue 25 mask src-ip 0xffffffff
    ipfw queue 31 config pipe 1 weight 70 queue 25 mask dst-ip 0xffffffff
    ipfw queue 11 config pipe 1 weight 30 queue 25 mask dst-ip 0xffffffff

    ipfw add queue 3 ip from 192.168.20.0/24 to any
    ipfw add queue 31 ip from any to 192.168.20.0/24
    ipfw add queue 11 ip from any to 192.168.2.0/24

    гдето так

     
     
  • 3.15, snoop (??), 07:04, 26/10/2005 [^] [^^] [^^^] [ответить]  
  • +/
    когда так прописал, ipfw s возвращает
    06200  141   11082 queue 3 ip from 192.168.20.0/24 to any
    06300    0       0 queue 31 ip from any to 192.168.20.0/24
    06400    0       0 queue 11 ip from any to 192.168.2.0/24

    почему-то не считаетвходящие пакеты в мою подсеть и не считает пакеты в арендаторскую...
    может я как-то не верно прописал арендаторскую подсеть...

    in2="192.168.2.0"
    inet="192.168.20.0"
    inet="192.168.20.0"
    inet="192.168.20.0"
    #
    ip2="xl1"
    in2="192.168.2.0"
    in2="192.168.2.0"

    $fwcmd add allow all from $in2:$im2 to any via $ip2
    $fwcmd add allow all from any to $in2:$im2
    #create NAT
    $fwcmd add divert natd all from $in2:$im2 to any out via $oif
    $fwcmd add divert natd all from any to $oip in via $oif
    #close my net
    $fwcmd add deny all from 192.168.2.0/24 to 192.168.20.0/24 via $iif
    $fwcmd add deny all from 192.168.20.0/24 to 192.168.2.0/24 via $iif
    $fwcmd add deny all from 192.168.2.0/24 to 192.168.20.0/24 via $ip2$fwcmd add deny all from 192.168.20.0/24 to 192.168.2.0/24 via $ip2

    шет какой-то

     
     
  • 4.16, Grayich (??), 12:21, 26/10/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >когда так прописал, ipfw s возвращает
    >06200  141   11082 queue 3 ip from 192.168.20.0/24 to
    >any
    >06300    0       0
    >queue 31 ip from any to 192.168.20.0/24
    >06400    0       0
    >queue 11 ip from any to 192.168.2.0/24
    >
    >почему-то не считаетвходящие пакеты в мою подсеть и не считает пакеты в
    >арендаторскую...
    >может я как-то не верно прописал арендаторскую подсеть...
    >
    >in2="192.168.2.0"
    >inet="192.168.20.0"
    >inet="192.168.20.0"
    >inet="192.168.20.0"
    >#
    >ip2="xl1"
    >in2="192.168.2.0"
    >in2="192.168.2.0"
    >
    >$fwcmd add allow all from $in2:$im2 to any via $ip2
    >$fwcmd add allow all from any to $in2:$im2
    >#create NAT
    >$fwcmd add divert natd all from $in2:$im2 to any out via $oif
    >
    >$fwcmd add divert natd all from any to $oip in via $oif
    >
    >#close my net
    >$fwcmd add deny all from 192.168.2.0/24 to 192.168.20.0/24 via $iif
    >$fwcmd add deny all from 192.168.20.0/24 to 192.168.2.0/24 via $iif
    >$fwcmd add deny all from 192.168.2.0/24 to 192.168.20.0/24 via $ip2
    >$fwcmd add deny all from 192.168.20.0/24 to 192.168.2.0/24 via $ip2
    >
    >шет какой-то

    это что ? :)

     
  • 4.17, cj (?), 11:08, 27/01/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >когда так прописал, ipfw s возвращает
    >06200  141   11082 queue 3 ip from 192.168.20.0/24 to
    >any
    >06300    0       0
    >queue 31 ip from any to 192.168.20.0/24
    >06400    0       0
    >queue 11 ip from any to 192.168.2.0/24
    >
    >почему-то не считаетвходящие пакеты в мою подсеть и не считает пакеты в
    >арендаторскую...
    >может я как-то не верно прописал арендаторскую подсеть...
    >
    >in2="192.168.2.0"
    >inet="192.168.20.0"
    >inet="192.168.20.0"
    >inet="192.168.20.0"
    >#
    >ip2="xl1"
    >in2="192.168.2.0"
    >in2="192.168.2.0"
    >
    >$fwcmd add allow all from $in2:$im2 to any via $ip2
    >$fwcmd add allow all from any to $in2:$im2
    >#create NAT
    >$fwcmd add divert natd all from $in2:$im2 to any out via $oif
    >
    >$fwcmd add divert natd all from any to $oip in via $oif
    >
    >#close my net
    >$fwcmd add deny all from 192.168.2.0/24 to 192.168.20.0/24 via $iif
    >$fwcmd add deny all from 192.168.20.0/24 to 192.168.2.0/24 via $iif
    >$fwcmd add deny all from 192.168.2.0/24 to 192.168.20.0/24 via $ip2$fwcmd add deny
    >all from 192.168.20.0/24 to 192.168.2.0/24 via $ip2
    >
    >шет какой-то

    а ты попробуй пострадать и
    06200  141   11082 queue 3 ip from 192.168.20.0/24 to any
    06300    0       0 queue 31 ip from any to 192.168.20.0/24
    06400    0       0 queue 11 ip from any to 192.168.2.0/24
    засунуть перед натом
    может быть поможет, хотя не уверен. ну а попытка не пытка :-)

     

  • 1.19, steel (??), 12:14, 28/09/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему в 6.1 , ipfw не понимает src-addr, dst-addr, они эквивалентны src-ip, dst-ip ?
     
     
  • 2.20, grayich (??), 14:13, 28/09/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Почему в 6.1 , ipfw не понимает src-addr, dst-addr, они эквивалентны src-ip,
    >dst-ip ?

    да

     

  • 1.21, steel (??), 14:53, 28/09/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Еще вопрос, в каком месте должны находится правила PIPE ? До основных правил или после? Например я каким-то юзерам разрешаю доступ, каким-то запрещаю и  т.п. PIPE правило должно находится перед всем этим?
     
     
  • 2.22, grayich (??), 14:59, 28/09/2007 [^] [^^] [^^^] [ответить]  
  • +/
    описания queue и pipe в любом месте, самиже добавления ipfw add queue или ipfw add pipe в зависимости от логики правил, обычно для исходящего трафика до NAT, а для входящего после NAT.
    хотя резать входящий обычно неимеет смысла.
     
     
  • 3.23, vadislaus (??), 17:57, 25/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    А как сделать шейп на каждый IP в сети. Например:
    имеются сети 192.168.0.х, 192.168.1.x. Надо каждому IP из одной сети дать шейп на 128 Кбит, из другой - 256 Кбит. Или только прописав пайп на каждый IP?

    С уважением Владислав

     
     
  • 4.24, grayich (??), 01:11, 26/10/2007 [^] [^^] [^^^] [ответить]  
  • +/
    в статье об этом написано, перечитай
     

  • 1.25, devchaos (??), 18:24, 27/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Разделение полосы 10 мегабит на всех

    ipfw pipe 3 config bw 10Mbit/s
    ipfw queue 3 config pipe 3 weight 50 mask dst-ip 0xffffffff
    ipfw queue 4 config pipe 3 weight 50 mask src-ip 0xffffffff
    ipfw add queue 3 ip from any to 192.168.0.0/24
    ipfw add queue 4 ip from 192.168.0.0/24 to any
    Это для асиметричного линка 10 мегабит. По крайней мере если исходить из этой статьи.
    Ежели пример по каким либо причинам нерабочий, пожалуйста, подправьте.

     
  • 1.26, shamil (??), 10:15, 03/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Правильно ли настроен firewall? Цель: дать 2Мбита для пользователей с IP из сети 172.16.200.0/24

    ipfw pipe 1 config bw 2048Kbit/s
    ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-ip 0xffffffff
    ipfw queue 11 config pipe 1 weight 50 queue 20 mask src-ip 0xffffffff
    00041  queue 11 ip from 172.16.200.0/24 to any
    00050 divert 8668 ip from any to 91.205.128.6 in via em1
    00060 divert 8668 ip from 172.16.0.0/16 to any via em1
    00061 queue 1 ip from any to 172.16.200.0/24

     
     
  • 2.27, grayich (ok), 10:51, 03/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    sysctl net.inet.ip.fw.one_pass=0

    # типа так
    ipfw pipe 1 config bw 2048Kbit/s queue 1 # out
    ipfw pipe 2 config bw 2048Kbit/s queue 20 # in
    # если 2 мегабита на in и out общий то pipe 1 есесенно использовать

    ipfw queue 1 config pipe 1 weight 50 queue 20 mask src-ip 0xffffffff # out
    ipfw queue 2 config pipe 2 weight 50 queue 20 mask dst-ip 0xffffffff # in

    ipfw add queue 1 ip from 172.16.200.0/24 to any out via em1

    ipfw nat 1 config if em1 log same_ports
    ipfw add nat 1 ip from 172.16.200.0/24 to any out via em1
    ipfw add nat 1 ip from any to any in via em1

    ipfw add queue 2 ip from any to 172.16.200.0/24 in via em1

    ipfw add allow ip from any to any


     

  • 1.29, Ramin (?), 17:27, 28/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ipfw queue  1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff

    не работает.
    ipfw: unrecognised option ''dst-addr''
    ошибка

     
     
  • 2.30, grayich (ok), 23:40, 28/08/2009 [^] [^^] [^^^] [ответить]  
  • +/
    ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-ip 0xffffffff
     

  • 1.32, 0bJ0riK (?), 12:29, 28/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите плиззз, мне надо просто выдать в своей подсети каждому айпи по 5Мб/s как это реализовать?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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