Страница 1 из 2

DUMMYNET по расписанию!

Добавлено: 2006-03-16 16:31:04
Sweeper_jr
Сжать или разжать канал с помощью DUMMYNET у меня получилось, благодаря твоей lissyara статье http://www.lissyara.su/?id=1071. Спасибо и респект!
А как сделать что бы скорость канала менялась по часам. Допустим до 18,00 скорость 64000 bit/s, а после 18,00 - 128000 bit/s ?
Конечно можно сделать более одного скрипта для фаервола и загружать нужный с нужными правилами в нужное время, но может есть другой способ, более изощреннее??

Добавлено: 2006-03-16 16:39:21
Alex Keda
Так там в конце пример приведён.
Ставишь в cron на выполнение

Код: Выделить всё

sh /etc/rc.firewall
в 8.01 и в 22.01 и всё...

Добавлено: 2006-03-16 18:07:36
Sweeper_jr
Все правильно. Если запустить через крон

Код: Выделить всё

sh /etc/rc.firewal
то будут загружаться пайпы и рулсы которые прописаны в /etc/rc.firewal.
Таким образом в кроне прописываем запуск /etc/rc.firewal_1 в 8:01, а в 22:01 запуск /etc/rc.firewal_2.
В /etc/rc.firewal_1 одна скорость, а в /etc/rc.firewal_2 другая скорость.
Получается только так.

Добавлено: 2006-03-16 18:11:28
Alex Keda

Код: Выделить всё

# Не знаю, пригодится ли кому это - по ночам охрана повадилась шариться в инете
# и качать музончик, порнушку смотреть... 3 гига трафика за ночь... Поэтому ночью
# траффик ограничиваем (скорость) - причём жестоко режем :)
# для этого в конфиге ядра должна быть строка 
# options         DUMMYNET
# соответственно в crontab надо добавить запись типа sh /etc/rc.firewall
# с запуском в 22.01 и 8.01 :)))
chour=`date '+%H'`
if [ ${chour} -lt 8 ]; then
    ${FwCMD} add pipe 1 ip from not ${NetIn} to ${NetIn}
    ${FwCMD} pipe 1 config bw 33600 bit/s
fi
if [ ${chour} -ge 22 ]; then
    ${FwCMD} add pipe 1 ip from not ${NetIn} to ${NetIn}
    ${FwCMD} pipe 1 config bw 33600 bit/s
fi
отсюда http://www.lissyara.su/?id=1127

Добавлено: 2006-03-16 18:15:30
Sweeper_jr
О, спасибо, это то что нужно!
Извини, но эту статью я так и не читал, до сегодняшнего дня :)

Добавлено: 2006-03-16 19:52:41
Alex Keda
Я у себя на сайте не всё читал :)

Re: DUMMYNET по расписанию!

Добавлено: 2009-07-14 14:14:15
Hoper
Вот такое элементарное правило:

Код: Выделить всё

${FwCMD} 1300 add pipe 100 ip from any to ${AllowIP} out via ${LanOut}
${FwCMD} 1400 pipe 100 config bw 64Kbit/s
выдает вот такую гнусность:

Код: Выделить всё

01300 pipe 100 ip from any to 10.1.1.1 out via rl0
ipfw: bad command `100'
Где я не прав?
=================================================================
Вот тут оказалось так

Код: Выделить всё

${FwCMD} 1300 add pipe 100 ip from any to ${AllowIP} out via ${LanIn}
${FwCMD}  pipe 100 config bw 64Kbit/s
1. 1400 номер правила не пишется
2. ${LanIn} вешать надо на внутренний интерфейс, на внешнем скорость (по такому правилу) не режет.

Re: DUMMYNET по расписанию!

Добавлено: 2009-07-14 14:34:57
zh
для конфигурации пайпов не нужен номер строки ^_^

Re: DUMMYNET по расписанию!

Добавлено: 2009-07-14 14:44:21
Hoper
пока правил ответили :)

Re: DUMMYNET по расписанию!

Добавлено: 2009-07-14 14:46:07
schizoid
а чего решили тему 3-х летней давности разбудить?

Re: DUMMYNET по расписанию!

Добавлено: 2009-07-14 15:17:18
zh
а теперь развернуто объясните почему это у вас на внешнем интерфейсе пайп не работает :-)

Re: DUMMYNET по расписанию!

Добавлено: 2009-07-16 15:58:05
Hoper
zh писал(а):а теперь развернуто объясните почему это у вас на внешнем интерфейсе пайп не работает :-)
для меня тож осталось загадкой... но факт есть такой.
надо пробежаться по всем правилам может где то NAT не в том месте стоит.

Re: DUMMYNET по расписанию!

Добавлено: 2009-11-26 8:32:39
newbie
люди пожалуйста выложите ктонить полное содержимое rc.firewall а то что то не догоняю немного ) упал сервер, нужно срочно поставить с нуля, а я ток начинаю разбираться, научился здесь собирать ядро, обновлять порты, подстраивать под себя для работы, но с фаиром пока не разобрался, читаю и пока не понимаю ничего, но вот с готовыми конфигами уже легче, там я понимаю что к чему, но сам пока собрать не могу, вот сейчас, настроил по статье, и не могу даж по "putty" попасть на сервак ((( выложите пожалуйста полный конфиг, что бы я смог понять и разобраться, пожалуйста...

Re: DUMMYNET по расписанию!

Добавлено: 2009-11-26 8:43:15
Гость
и rc.conf тож плз )

Re: DUMMYNET по расписанию!

Добавлено: 2009-11-26 12:02:34
Hoper
вот тут http://ipfw.ism.kiev.ua/ неплохо было описано, я в свое время по там многое подчерпнул.
ну и тутhttp://www.lissyara.su/articles/freebsd/tuning/ipfw/ какже не упоминуть

Re: DUMMYNET по расписанию!

Добавлено: 2009-12-01 9:02:41
4ainig )
я там уже был, по второй статье оба примера не заработали, как копать не знаю, в любом случае спасибо... буду искать готовое что заработает, а потом поставлю еще один сервер, и на нем уже начну читать, а сечас бы сделать ipfw + squid и падет пока... а то трафф прет по беспределу ((

Re: DUMMYNET по расписанию!

Добавлено: 2009-12-05 1:04:33
Hoper
4ainig ) писал(а):я там уже был, по второй статье оба примера не заработали, как копать не знаю, в любом случае спасибо... буду искать готовое что заработает, а потом поставлю еще один сервер, и на нем уже начну читать, а сечас бы сделать ipfw + squid и падет пока... а то трафф прет по беспределу ((
не очень информативно "не заработали". А что хотели то?? это же не утюг.. вкл/выкл.
Есть задача - есть ее реализация.

Re: DUMMYNET по расписанию!

Добавлено: 2010-11-16 16:07:08
dasans
Добрый день!

Код: Выделить всё

while [ $i != 252 ]
do
# добавляем трубу для IP адреса
${FwCMD} add pipe $i ip from not ${NetIn}/${NetMask} to 192.168.20.${i}
# проверяем - часом не мой ли это IP
if [ $i -eq 13 -o $i -eq 22 ]
then
# мой инет :)))
${FwCMD} pipe $i config bw 100Mbit/s
else
# не мой IP - режем скорость
${FwCMD} pipe $i config bw 64000 bit/s
fi
# увеличиваем $i на единичку
i=$(($i+1))
done
А будет так работать, если таких труб будет 1500 ?

Re: DUMMYNET по расписанию!

Добавлено: 2010-11-16 16:55:21
FreeBSP
помоему проще себя отправить в одну трубу,или вообще мимо труб, а всех остальных - в таблицу, которую толкать во вторую трубу

тоесть будет чтото типа

Код: Выделить всё

${FwCMD} add pipe 1 ip from not ${NetIn}/${NetMask} to (192.168.20.13 or 192.168.20.22)
${FwCMD} add pipe 2 ip from not ${NetIn}/${NetMask} to table\(1\)
${FwCMD} pipe 1 config bw 100Mbit/s
${FwCMD} pipe 2 config bw 64000 bit/s

while [ $i != 252 ]
do
  if [ $i -ne 13 -o $i -ne 22 ]
  then
    ${FwCMD} table 1 add  192.168.20.${i}
  fi
  # увеличиваем $i на единичку
  i=$(($i+1))
done
а таблица помоему и 30к адресов тянет нормально... была какая то бага с количеством адресов в табличке, но не очень критичная и патчится руками.. рядом поищи..

Re: DUMMYNET по расписанию!

Добавлено: 2010-11-16 17:04:26
dasans
FreeBSP писал(а):помоему проще себя отправить в одну трубу,или вообще мимо труб, а всех остальных - в таблицу, которую толкать во вторую трубу

тоесть будет чтото типа

Код: Выделить всё

${FwCMD} add pipe 1 ip from not ${NetIn}/${NetMask} to (192.168.20.13 or 192.168.20.22)
${FwCMD} add pipe 2 ip from not ${NetIn}/${NetMask} to table\(1\)
${FwCMD} pipe 1 config bw 100Mbit/s
${FwCMD} pipe 2 config bw 64000 bit/s

while [ $i != 252 ]
do
  if [ $i -ne 13 -o $i -ne 22 ]
  then
    ${FwCMD} table 1 add  192.168.20.${i}
  fi
  # увеличиваем $i на единичку
  i=$(($i+1))
done
а таблица помоему и 30к адресов тянет нормально... была какая то бага с количеством адресов в табличке, но не очень критичная и патчится руками.. рядом поищи..
А у тех кто в таблице скорость у каждого будет по 64000 bit/s или они все вместе будут делить эти 64000 bit/s ?

Re: DUMMYNET по расписанию!

Добавлено: 2010-11-16 23:01:39
Shuriks
dasans писал(а): А у тех кто в таблице скорость у каждого будет по 64000 bit/s или они все вместе будут делить эти 64000 bit/s ?
В этом примере одна труба на всю таблицу. Если ты 250 человек запихаешь в 64кбит/с, думаю они захотят тебя убить.
Возможно предполагалось каждому выделять по 64кбит/с.
У меня аналогичная ситуация сделана таким образом:

Код: Выделить всё

...
for ((i=2; i<=127; i++))
 {
  addr="192.168.1.$i";
  let "inpipe=2*$i-3";
  let "outpipe=2*$i-2";
  let "inrule=3000+2*$i-3";
  let "outrule=3000+2*$i-2";
  $fw pipe $inpipe config bw 512Kbit/s;
  $fw pipe $outpipe config bw 256Kbit/s;
  $fw add $inrule pipe $inpipe ip from $inet to $addr in
  $fw add $outrule pipe $outpipe ip from $addr to $inet out
 };
...
З.Ы. Кусок скрипта для ipfw (на bash).

Re: DUMMYNET по расписанию!

Добавлено: 2010-11-16 23:31:33
FreeBSP
пардоньте

Код: Выделить всё

${FwCMD} add pipe 1 ip from not ${NetIn}/${NetMask} to (192.168.20.13 or 192.168.20.22)
${FwCMD} add pipe 2 ip from not ${NetIn}/${NetMask} to table\(1\)
${FwCMD} pipe 1 config bw 100Mbit/s  mask dst-ip 0xffffffff
${FwCMD} pipe 2 config bw 64000 bit/s mask dst-ip 0xffffffff

while [ $i != 252 ]
do
  if [ $i -ne 13 -o $i -ne 22 ]
  then
    ${FwCMD} table 1 add  192.168.20.${i}
  fi
  # увеличиваем $i на единичку
  i=$(($i+1))
done
только это не симметричный шейпинг... качать быстрее 64kbps звери не смогут, а вот отдавать - хоть те же "стомегабит"..

Re: DUMMYNET по расписанию!

Добавлено: 2011-07-14 13:27:27
zhna
доброго времени суток. Хотельсь бы спросить не могли бы подсказать как урезать канал ля определённыйх ip и всё без разграничения на временные рамки просто я что то в приведённых конфигах разобраться не особо смог!(

Re: DUMMYNET по расписанию!

Добавлено: 2011-07-14 14:29:00
FreeBSP
все просто

Код: Выделить всё

${FwCMD} add pipe 1 ip from (192.168.20.13 or 192.168.20.22) to any
${FwCMD} add pipe 2 ip from any to (192.168.20.13 or 192.168.20.22) 
${FwCMD} pipe 1 config bw 64000 bit/s mask dst-ip 0xffffffff
${FwCMD} pipe 2 config bw 64000 bit/s mask dst-ip 0xffffffff

Re: DUMMYNET по расписанию!

Добавлено: 2011-07-15 14:32:29
zhna
огромное спасибо но возник вопрос а это прописывать в самом начале файрвола или не критично ? и тут указано to any а можно указать на конкретный шлюз (em0 tun0) просто ещё поднять тонель в котором ограничение по скорости не нужны или они на него действовать не будут?

заранее спасибо !