Перейти к содержимому
Калькуляторы

Ограничение полосы на юзера при большом их количестве

Господа, прошу помощи.

Имеется порядка 2000 анлимитчиков, выходящих через маршрутизатор с nat в инет, причем их число постоянно растет. Необходимо ограничивать каждому полосу в зависимости от тарифного плана (как входящий так и исходящий трафик). Проблем в том, что на таком количестве правил и при таком трафике существующий линукс роутер просто умирает от нагрузки, увеличивается время отклика, дропаются пакеты. Пока проблема решается максимальным уменьшением проходящего трафика (роутер так же занимается маршрутизацией некоторых внешних сегментов сети которые для юзеров локальны и не ограничиваются). Используется дисциплина htb. Дерево примитивно - есть корень, от него растут классы на каждого юзера. Метим с помощью Iptables. PPP не используется

 

Курс партии указывает на цисковское оборудование, но реализовать задачу подобного рода на маршрутизаторе как то проблематично из-за необходимости создавать на каждого юзера отдельный acl, а точнее даже два. Есть решение в виде UBRL, но он встречается только на каталистах 4500 или 6500 да и не с самым дешевым супом.

 

Сталкивался ли кто то с аналогичной задачей? Как оптимизировать существующию линукс-схему? Возможно есть решения на той же циске без кучи ACL?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня через Linux роутер даже по-более анлимитчиков бегает и ничего :).

Какая полоса через ваш роутер сейчас идет ?

Какой сам по себе роутер ?

Какой Линух ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уберите iptables вообще, используйте tc filter для пометки трафика. Сетевые карты Intel, лучше гигабитные, дровы под них должны быть собраны с NAPI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

поддерживаю отписавшихся - либо слабовата машинка, либо немножко не туда покручено.... даже если метить трафик таблицами - оно очень даже шутсренько летает на обычном ПК, не говоря уж о болле дорогих серверных варинтах.

 

имхо - таблицы упорядочить надо. так чтобы самые используемые правила - были повыше в таблицах. 2 килоклиента - это не проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ip link set eth0 txqueuelen 10000

 

ну и остальные интерфейсы

жевать mpstat

смотреть dmesg

ethtool -S eth0 ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасиба, будем бороться. Правда забыл отметить что эта же машинка еще и в качестве файрвола трудилась - ограничивала доступ интернет для пользователей и на ней еще порядка 3-6 тысяч правил было в цепочке форварда. Вынес этот функционал на отдельный роутер стало значительно легче.

 

С упорядочиванием таблиц есть проблемка - правила формируются при включениее/выключении юзером инета и утилитами от биллинговой системы.

Откуда информация что при использовании tc filter менее ресурсоемкая процедура классификации чем Iptables -j CLASSIFY? Можно пример или ссылку? Ну или результаты эксперимента :)

 

PS: Intel® Pentium® 4 CPU 3.00GHz;

04:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express (rev 11)

Трафик через роутер: 45Mbit/s; 10-20 Kpps

Изменено пользователем schnm

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На u32 можно хешировать и создавать дерево. Весьма существенно помогает.

С iptables тоже можно, но подозреваю эффективность будет ниже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасиба, будем бороться. Правда забыл отметить что эта же машинка еще и в качестве файрвола трудилась - ограничивала доступ интернет для пользователей и на ней еще порядка 3-6 тысяч правил было в цепочке форварда. Вынес этот функционал на отдельный роутер стало значительно легче.

Это и была основная проблема - можно пропатчить IPTables, для возможности создания таблиц, тогда поиск идет не перебором по цепочке, а по бинарному дереву в таблице, все шустро.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.