The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"OpenNews: Патч для ограничения трафика в ipfw"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [Проследить за развитием треда]

"OpenNews: Патч для ограничения трафика в ipfw"
Сообщение от opennews on 06-Май-05, 12:43 
Andrey V. Elsukov предложил протестироать патч (ftp://ftp.opennet.ru/pub/FreeBSD/ipfw_bound/) для ipfw, позволяющий задавать правила срабатывающие в зависимости от объема трафика прошедшего в соответвсии с определенным правилом.


Патч (ftp://ftp.opennet.ru/pub/FreeBSD/ipfw_bound/) небольшой,  и при желании его функциональность может быть легко
расширена. На данный момент патч делает следующие изменения в системе:

-  в IPFW добавляется новая опция (см. man ipfw: RULE OPTIONS/MATCH
PATTERNS) bound числовое_значение. Правила с этой опцией проходят
дополнительную проверку. Проверка заключается в сравнении байтового
счётчика правила со значением указанном в bound. Если значение счётчика
меньше значения в bound, то правило срабатывает (конечно при этом
делаются все остальные проверки), иначе - пропускается.

-  необходимые для поддержки выше описанного изменения в утилите
/sbin/ipfw.


Пример использования:

ipfw add 100 allow ip from any to hostA in recv internet bound 10000000

ipfw add 200 deny ip from any to any


Здесь hostA - это хост, у которого лимит входящего траффика ~10 MБайт.
Сотое правило перестанет срабатывать когда лимит будет исчерпан. Можно
придумать и более сложные конструкции.


Установка


Патч писался для FreeBSD 5.4-STABLE, т.е. RELENG_5. Исходя из этого
ставим так:


1. Патчим:
   # cd /usr/src
   # patch < путь/к/патчу

2. Чтобы утилиту ipfw можно было скомпилить, нужно заменить один
заголовочный файл:
   # cp /usr/src/sys/netinet/ip_fw.h /usr/include/netinet/

3. В зависимости от того как у вас сконфигурирована система, нужно
перекомпилировать и установить либо модуль ядра ipfw.ko, либо само ядро.
  Так же утилиту ipfw.
   # cd /usr/src/sys/modules/ipfw/ && make depend all install
   # cd /usr/src/sbin/ipfw/ && make depend all install

URL: ftp://ftp.opennet.ru/pub/FreeBSD/ipfw_bound/
Новость: http://www.opennet.me/opennews/art.shtml?num=5427

Cообщить модератору | Наверх | ^

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Патч для ограничения трафика в ipfw"
Сообщение от Аноним email on 06-Май-05, 12:43 
А как-нить по прошествию времени это ограничение можно снять автоматически? Или придется самому 1-го числа каждого месяца обнулять счетчики?
Cообщить модератору | Наверх | ^

3. "Патч для ограничения трафика в ipfw"
Сообщение от uldus (ok) on 06-Май-05, 13:09 
>А как-нить по прошествию времени это ограничение можно снять автоматически? Или придется
>самому 1-го числа каждого месяца обнулять счетчики?


ipfw zero N по крону ?

Cообщить модератору | Наверх | ^

2. "Патч для ограничения трафика в ipfw"
Сообщение от Freedom email on 06-Май-05, 13:06 
спасибо автору за патч, идея интресна.
Хорошо бы переработать, что бы можно было лимиты хранить в table (или общий на всех лимит), в таком случае не будет громоздких правил.
Cообщить модератору | Наверх | ^

13. "Патч для ограничения трафика в ipfw"
Сообщение от butcher (ok) on 11-Май-05, 08:56 
С таблицами сложнее. Для каждого адреса не ведётся отдельного счётчика, счётчик присутсвует только для "действия" (deny, pass, count, ..). Поэтому тут нужны более существенные изменения.
Cообщить модератору | Наверх | ^

4. "Патч для ограничения трафика в ipfw"
Сообщение от santa email on 06-Май-05, 13:41 
а если байтовый счётчик обнулен например после перезагрузки ? нужно чтоб счетчик сохранялся еще гдето кроме как в правиле ipfw
Cообщить модератору | Наверх | ^

5. "Патч для ограничения трафика в ipfw"
Сообщение от tadmin (ok) on 06-Май-05, 16:20 
сохранять периодически состояния счетчиков, а при запуске IPFW брать параметры обратно.
Cообщить модератору | Наверх | ^

7. "Патч для ограничения трафика в ipfw"
Сообщение от keepver (??) on 06-Май-05, 17:06 
http://ipa-system.sourceforge.net/
Cообщить модератору | Наверх | ^

8. "Патч для ограничения трафика в ipfw"
Сообщение от Xater email on 09-Май-05, 17:17 
Я конечно может немного и не понимаю чего.... Но зачем все эти телодвижения, если можно написать свой  скрипт который подсчитывает байты из ipfw по каким хотите правилам (либо на Си написать программулину) и запускать все это дело по крону...
Cообщить модератору | Наверх | ^

9. "Патч для ограничения трафика в ipfw"
Сообщение от Anonymous on 09-Май-05, 21:22 
>Я конечно может немного и не понимаю чего.... Но зачем все эти
>телодвижения, если можно написать свой  скрипт который подсчитывает байты из
>ipfw по каким хотите правилам (либо на Си написать программулину) и
>запускать все это дело по крону...

Это стремление к блокировке в реалтайм.
За миниту юзер сидящий на 100 Мбит может прокачать сверх лимита почти Гиг траифика.

Cообщить модератору | Наверх | ^

10. "Патч для ограничения трафика в ipfw"
Сообщение от bsdaemon email(??) on 10-Май-05, 11:28 
посоветуйте какими будут правила с использванием ограничений скорости при наборе определенного лимита. К примеру у пользвателя 128, после скачки 10G скорость до конца месяца должна быть 64. Как правильнее написать при использовании патча.
Cообщить модератору | Наверх | ^

11. "Патч для ограничения трафика в ipfw"
Сообщение от t0ly on 10-Май-05, 14:43 
>посоветуйте какими будут правила с использванием ограничений скорости при наборе определенного лимита.
>К примеру у пользвателя 128, после скачки 10G скорость до конца
>месяца должна быть 64. Как правильнее написать при использовании патча.

я думаю что то вроди
sysctl net.inet.ip.fw.one_pass=1

ipfw add #1 pipe #1 ip from any to ip# out bound 10000000000
ipfw pipe #1 config bw 128kbit/s
ipfw add #2 pipe #2 ip from any to ip# out
ipfw pipe #1 config bw 64kbit/s

но учити что тут только входящий трафик учитывается...

зы divert,reg,gred,queue по вкусу

Cообщить модератору | Наверх | ^

12. "Патч для ограничения трафика в ipfw"
Сообщение от c0x email(??) on 11-Май-05, 08:34 
IMHO, вместо bound логичнее реализовать что-то вроде lt/le (less then/less or equal), gt/ge (greater then/greater or equal).
И полезно иметь возможность задавать в k,M,G

(default_to_pass)
deny all from any to 1.2.3.4 out xmit $iface gt 10G

(default_to_deny)
pass all from any to 1.2.3.4 out xmit $iface le 10G

pipe $M config bw 256Kbytes/s
pipe $N config bw 64Kbytes/s
pipe $M all from any to 1.2.3.4 out xmit $iface le 10G
pipe $N all from any to 1.2.3.4 out xmit $iface gt 10G

Cообщить модератору | Наверх | ^

14. "Патч для ограничения трафика в ipfw"
Сообщение от butcher (ok) on 11-Май-05, 08:59 
>IMHO, вместо bound логичнее реализовать что-то вроде lt/le (less then/less or equal),
>gt/ge (greater then/greater or equal).

Возможно, но мои задачи пока этого требуют, разве что позднее ;)

>И полезно иметь возможность задавать в k,M,G

Об этом уже думал, но тоже позднее, если будет время.
Первоначальная задача не подразумевала, что добавление удаление правил будет происходить в "ручном" режиме.

Cообщить модератору | Наверх | ^

15. "OpenNews: Патч для ограничения трафика в ipfw"
Сообщение от Mikhail Zinovyev on 13-Май-05, 16:07 
попробовал эту штучку .
Хочу сразу сказать что ситема 5.3
Проблема в том что да это правило(ipfw add 100 allow ip from any to hostA in recv internet bound 10000000 ) считает колво пакетов но не пропускает и правила обробатываются дальше, т.е. если я ставлю
ipfw add 200 deny ip from any to any
то в инет я идтить не могу так как 200 правило всегда отрабатывает.
Может я что-то недопонял ?
Может еще надо что-то прикутить?
Cообщить модератору | Наверх | ^

16. "OpenNews: Патч для ограничения трафика в ipfw"
Сообщение от butcher (ok) on 13-Май-05, 16:46 
>Может я что-то недопонял ?
>Может еще надо что-то прикутить?

Да, надо разрешить вашему адресу выходить в инет.

Cообщить модератору | Наверх | ^

17. "Патч для ограничения трафика в ipfw"
Сообщение от butcher (ok) on 23-Май-05, 13:53 
Последняя версия патча доступна на http://butcher.heavennet.ru/
Нужен доброволец для перевода этого текста на английский язык.
Cообщить модератору | Наверх | ^

Удалить

Индекс форумов | Темы | Пред. тема | След. тема




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

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