здравствуйте! недавно закралась в голову идея, что бы ограничивать юзерам в сети скорость по времени суток. например днем, с 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, а в час ночи все наоборот. Насколько реальная эта задумка и стоит ли заморачиваться вовсе?
>[оверквотинг удален]
> (я не в курсе как это правильно делается у провайдеров, но
> наверняка совсем не так). Я думаю что можно сделать какой-нибудь скрипт,
> что бы он подменял firewall.conf с разной скоростью по времени, а
> время он будет брать по cron. Думаю так на небольшой сетке
> можно пользоваться. Теперь другой вопрос, как же все это реализовать? Как
> написать скрипт, который например в 9 утра копирует файл firewall.conf например
> в /home/admin/ с названием firewall.conf-night, и вытаскивает из /home/admin/ файл с
> названием girewall.conf-day и кидает его переименованный в /etc/firewall.conf, а в час
> ночи все наоборот. Насколько реальная эта задумка и стоит ли заморачиваться
> вовсе?Скрипт сделать не то что реально, а не реально просто, но боюсь, что в вашем случаи это лишняя "оградка", копните немного гугл в сторону --timestart --timestop --days параметров.
> Скрипт сделать не то что реально, а не реально просто, но боюсь,
> что в вашем случаи это лишняя "оградка", копните немного гугл в
> сторону --timestart --timestop --days параметров.кое-что накопал, но в сумме как я понял эти параметры для iptables и используются в Linux'e. У меня IPFW. Ну а так, как я сказал со скриптами и расписанием по крону, работать будет?
Смотри, друг, про ipfw add pipe. Оно ограничивает скорость.
Добавлять и удалять правила по расписанию, конечно, можно.
> Смотри, друг, про ipfw add pipe. Оно ограничивает скорость.
> Добавлять и удалять правила по расписанию, конечно, можно.да, насчет пайпов я тоже слышал, но опять же, как их править? через скрипт через echo как-нибудь? или как мне обратиться в определенное время суток в файл firewall.conf для изменения пайпа?
>> Скрипт сделать не то что реально, а не реально просто, но боюсь,
>> что в вашем случаи это лишняя "оградка", копните немного гугл в
>> сторону --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
> написать скрипт, который например в 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При этом собсно файл с файрволлом у вас будет один, накладные расходы на смену правил - минимальны.
это именно то, что было надо, буду крутить под свой фаер. спасибо большое Вам! от души :)
> это именно то, что было надо, буду крутить под свой фаер. спасибо
> большое Вам! от души :)Ну так не ленитесь читать маны, там все это подробно описано.