URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90458
[ Назад ]

Исходное сообщение
"Ограничение траффика по времени суток"

Отправлено ARH665 , 02-Дек-10 10:19 
здравствуйте! недавно закралась в голову идея, что бы ограничивать юзерам в сети скорость по времени суток. например днем, с 9 утра до 1 ночи скорость 2 мбита, ночью с 1 до 9 скорость 10 мбит. Есть идея, как это сделать, но она может быть ошибочной (я не в курсе как это правильно делается у провайдеров, но наверняка совсем не так). Я думаю что можно сделать какой-нибудь скрипт, что бы он подменял firewall.conf с разной скоростью по времени, а время он будет брать по cron. Думаю так на небольшой сетке можно пользоваться. Теперь другой вопрос, как же все это реализовать? Как написать скрипт, который например в 9 утра копирует файл firewall.conf например в /home/admin/ с названием firewall.conf-night, и вытаскивает из /home/admin/ файл с названием girewall.conf-day и кидает его переименованный в /etc/firewall.conf, а в час ночи все наоборот. Насколько реальная эта задумка и стоит ли заморачиваться вовсе?

Содержание

Сообщения в этом обсуждении
"Ограничение траффика по времени суток"
Отправлено Edd , 02-Дек-10 11:24 
>[оверквотинг удален]
> (я не в курсе как это правильно делается у провайдеров, но
> наверняка совсем не так). Я думаю что можно сделать какой-нибудь скрипт,
> что бы он подменял firewall.conf с разной скоростью по времени, а
> время он будет брать по cron. Думаю так на небольшой сетке
> можно пользоваться. Теперь другой вопрос, как же все это реализовать? Как
> написать скрипт, который например в 9 утра копирует файл firewall.conf например
> в /home/admin/ с названием firewall.conf-night, и вытаскивает из /home/admin/ файл с
> названием girewall.conf-day и кидает его переименованный в /etc/firewall.conf, а в час
> ночи все наоборот. Насколько реальная эта задумка и стоит ли заморачиваться
> вовсе?

Скрипт сделать не то что реально, а не реально просто, но боюсь, что в вашем случаи это лишняя "оградка", копните немного гугл в сторону --timestart --timestop --days параметров.


"Ограничение траффика по времени суток"
Отправлено ARH665 , 02-Дек-10 11:44 
> Скрипт сделать не то что реально, а не реально просто, но боюсь,
> что в вашем случаи это лишняя "оградка", копните немного гугл в
> сторону --timestart --timestop --days параметров.

кое-что накопал, но в сумме как я понял эти параметры для iptables и используются в Linux'e. У меня IPFW. Ну а так, как я сказал со скриптами и расписанием по крону, работать будет?


"Ограничение траффика по времени суток"
Отправлено anonymous , 02-Дек-10 11:50 
Смотри, друг, про ipfw add pipe. Оно ограничивает скорость.
Добавлять и удалять правила по расписанию, конечно, можно.


"Ограничение траффика по времени суток"
Отправлено ARH665 , 02-Дек-10 12:29 
> Смотри, друг, про ipfw add pipe. Оно ограничивает скорость.
> Добавлять и удалять правила по расписанию, конечно, можно.

да, насчет пайпов я тоже слышал, но опять же, как их править? через скрипт через echo как-нибудь? или как мне обратиться в определенное время суток в файл firewall.conf для изменения пайпа?


"Ограничение траффика по времени суток"
Отправлено edd , 02-Дек-10 13:02 
>> Скрипт сделать не то что реально, а не реально просто, но боюсь,
>> что в вашем случаи это лишняя "оградка", копните немного гугл в
>> сторону --timestart --timestop --days параметров.
> кое-что накопал, но в сумме как я понял эти параметры для iptables
> и используются в Linux'e. У меня IPFW. Ну а так, как
> я сказал со скриптами и расписанием по крону, работать будет?

Хммм, ну, вы как-то не уточнили, а я больше привык работать с Linux-ами чем с BSD, потому и iptables. Окей, по поводу скрипта.
И так, условия. У нас есть два конфига которые лежат в /home/admin/, это firewall.conf-night и firewall.conf-day .

Тогда просто добавьте в крон:
0   9   *   *   *   sh /home/admin/firewall.conf-day
0   1   *   *   *   sh /home/admin/firewall.conf-night


"Ограничение траффика по времени суток"
Отправлено DeadLoco , 02-Дек-10 12:51 
> написать скрипт, который например в 9 утра копирует файл firewall.conf например
> в /home/admin/ с названием firewall.conf-night, и вытаскивает из /home/admin/ файл с
> названием girewall.conf-day и кидает его переименованный в /etc/firewall.conf, а в час
> ночи все наоборот. Насколько реальная эта задумка и стоит ли заморачиваться
> вовсе?

Задумка абсолютно реальная, только не надо менять целый файрволл. В IPFW для таких случаев специально существует понятие набора (set) правил. Вместо полной замены целого файрволла, вы просто переключаете текущий активный набор правил. Ну, например:

. . . .
$fwcmd set enable 1 disable 2 disable 3 disable 4  
$fwcmd pipe 10 config bw 2Mbit/s
$fwcmd pipe 20 config bw 10Mbit/s
$fwcmd add 1010 set 1 pipe 10 tcp from me 3128 to $lan via $lcard
$fwcmd add 1010 set 2 pipe 20 tcp from me 3128 to $lan via $lcard
. . . .

А по крону у вас будут вызываться два скрипта

> #!/bin/sh
>
> /sbin/ipfw -q set disable 1 enable 2

и

> #!/bin/sh
>
> /sbin/ipfw -q set disable 2 enable 1

При этом собсно файл с файрволлом у вас будет один, накладные расходы на смену правил - минимальны.


"Ограничение траффика по времени суток"
Отправлено ARH665 , 02-Дек-10 13:02 
это именно то, что было надо, буду крутить под свой фаер. спасибо большое Вам! от души :)



"Ограничение траффика по времени суток"
Отправлено DeadLoco , 02-Дек-10 13:16 
> это именно то, что было надо, буду крутить под свой фаер. спасибо
> большое Вам! от души :)

Ну так не ленитесь читать маны, там все это подробно описано.