schnm Posted January 16, 2007 Posted January 16, 2007 Господа, прошу помощи. Имеется порядка 2000 анлимитчиков, выходящих через маршрутизатор с nat в инет, причем их число постоянно растет. Необходимо ограничивать каждому полосу в зависимости от тарифного плана (как входящий так и исходящий трафик). Проблем в том, что на таком количестве правил и при таком трафике существующий линукс роутер просто умирает от нагрузки, увеличивается время отклика, дропаются пакеты. Пока проблема решается максимальным уменьшением проходящего трафика (роутер так же занимается маршрутизацией некоторых внешних сегментов сети которые для юзеров локальны и не ограничиваются). Используется дисциплина htb. Дерево примитивно - есть корень, от него растут классы на каждого юзера. Метим с помощью Iptables. PPP не используется Курс партии указывает на цисковское оборудование, но реализовать задачу подобного рода на маршрутизаторе как то проблематично из-за необходимости создавать на каждого юзера отдельный acl, а точнее даже два. Есть решение в виде UBRL, но он встречается только на каталистах 4500 или 6500 да и не с самым дешевым супом. Сталкивался ли кто то с аналогичной задачей? Как оптимизировать существующию линукс-схему? Возможно есть решения на той же циске без кучи ACL? Вставить ник Quote
Kirya Posted January 16, 2007 Posted January 16, 2007 У меня через Linux роутер даже по-более анлимитчиков бегает и ничего :). Какая полоса через ваш роутер сейчас идет ? Какой сам по себе роутер ? Какой Линух ? Вставить ник Quote
deep_admin Posted January 17, 2007 Posted January 17, 2007 Уберите iptables вообще, используйте tc filter для пометки трафика. Сетевые карты Intel, лучше гигабитные, дровы под них должны быть собраны с NAPI. Вставить ник Quote
Nallien Posted January 17, 2007 Posted January 17, 2007 поддерживаю отписавшихся - либо слабовата машинка, либо немножко не туда покручено.... даже если метить трафик таблицами - оно очень даже шутсренько летает на обычном ПК, не говоря уж о болле дорогих серверных варинтах. имхо - таблицы упорядочить надо. так чтобы самые используемые правила - были повыше в таблицах. 2 килоклиента - это не проблема. Вставить ник Quote
nuclearcat Posted January 17, 2007 Posted January 17, 2007 ip link set eth0 txqueuelen 10000 ну и остальные интерфейсы жевать mpstat смотреть dmesg ethtool -S eth0 ... Вставить ник Quote
schnm Posted January 18, 2007 Author Posted January 18, 2007 (edited) Спасиба, будем бороться. Правда забыл отметить что эта же машинка еще и в качестве файрвола трудилась - ограничивала доступ интернет для пользователей и на ней еще порядка 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 Edited January 18, 2007 by schnm Вставить ник Quote
nuclearcat Posted January 18, 2007 Posted January 18, 2007 На u32 можно хешировать и создавать дерево. Весьма существенно помогает. С iptables тоже можно, но подозреваю эффективность будет ниже. Вставить ник Quote
rus-p Posted January 19, 2007 Posted January 19, 2007 Спасиба, будем бороться. Правда забыл отметить что эта же машинка еще и в качестве файрвола трудилась - ограничивала доступ интернет для пользователей и на ней еще порядка 3-6 тысяч правил было в цепочке форварда. Вынес этот функционал на отдельный роутер стало значительно легче. Это и была основная проблема - можно пропатчить IPTables, для возможности создания таблиц, тогда поиск идет не перебором по цепочке, а по бинарному дереву в таблице, все шустро. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.