On Fri, 03 Feb 2006 19:32:31 +0300, Eugene <my-subscr@xxxxxxx> wrote:
Вобщем да. Задача стоит именно эта.
Мне кажется, что более низкоуровнеыве средства значительно сильнее
напрягают железо.
Если просто залить в фаерфол весь список то при большом трафике он
начинает активно жрать процессор.
Для этого в большинстве файрволов уже давно существуют таблицы. У меня на
FreeBSD4.11 + ipfw работает на ура. Поиск по таблицам работает очень
быстро и систему грузит не сильно. А ограничение скорости тем же dummynet,
или ALTQ тем более на уровне ядра эфективнее.
В общем это неудивительно - каждый пакет приходится проверять на
соответствие списку сетей, а работа это не маленькая, к тому же фаервол
"крутится" в ядре как привилегированный процесс.
Я хотел как раз для облегчения нагрузки вынести проверку на уровень
приложения, чтобы nginx при подключении сам решал,
что вот это соединение с такми-то ограничением и дальше уже работал с
ним, не делая каждый раз проверку.
Евгений
Так вам на сервере в целом надо обеспечить непревышение зарубежным
трафиком русского?
Для этого более низкоуровневые средства надо использовать. На Linux
надо собрать ядро с патчем ipsets, залить в него базу сетей, сделать
чтобы iptables маркировал соединения, а tc - ограничивал скорость. На
FreeBSD как-то тоже с помощью dummynet можно (хотя насколько я
понимаю, классификация пакетов при большом количестве подсетей может
потреблять много процессора).
--
Alexey Polyakov