Яке найкраще рішення для управління трафіком у великій системі (приблизно 2000 користувачів)?


11

наступна ситуація: ми - група студентів, що здійснюють інтернет-зв’язок для місцевих мешканських залів, усього близько 2000 кінцевих користувачів.

У нас є система точок трафіку, кожен MB знижує або завантажує бали, нові бали додаються за годину. На даний момент ми блокуємо доступ користувача до Інтернету, коли він витратив усі свої пункти (розміщуючи його в політиці REJECT в iptables на нашому маршрутизаторі шлюзу Debian).

Ми хотіли б лише обмежити пропускну здатність користувача. Який найкращий спосіб зробити це?

Найпростішою відповіддю було б встановити обмеження швидкості на порту комутатора користувача (в основному Cisco Catalyst 3550s). Однак це небажано, оскільки трафік всередині нашої власної мережі та до університетської мережі повинен залишатися необмеженим. Чи є спосіб обмежити пропускну здатність лише для пакетів з певним діапазоном IP-адреси призначення (тобто як вихід, так і вхід) у Cisco IOS? Я нічого не міг знайти.

Іншим способом було б контролювати трафік на маршрутизаторі нашого шлюзу. На думку мені приходить декілька рішень:

  • tc або tcng - схоже, що обидва мають досить затаємний синтаксис і не пропонують хороших функцій для управління трафіком за IP-адресою. Виділений QDisc для такої кількості людей, ймовірно, дуже сповільнить роутер. Крім того, документація щодо обох є досить застарілою.

  • shorewall - здається, має досить акуратний синтаксис для конфігурацій, проте я не впевнений, чи може він обробляти таку кількість трафіку та користувачів і чи підходить він для обмеження трафіку за IP-адресою

  • pfSense - виглядає як ОС, призначена для таких цілей, як наша. Однак, нам потрібно буде повністю встановити наш маршрутизатор. У нас немає інших систем BSD, і pfSense повинен був би мати дуже хороші можливості обліку трафіку (зараз ми також використовуємо fprobe-ulog та ulog-acctd).

Який ваш досвід? Яке рішення відповідає нашим потребам і яке найлегше підтримувати? У вас є інші ідеї?

Якщо вам потрібна додаткова інформація про нашу систему, будь ласка, не соромтеся запитати.

Заздалегідь спасибі.


EDIT : Я впровадив систему з iptablesі tc.

Кожен користувач має підмережу / 28, VPN IP (обидва з 10.0.0.0/8) та зовнішній IP, всі вони керуються через один ланцюжок iptables. Цей ланцюжок має лише одне правило, просте RETURN.

Кожні п’ять хвилин сценарій Python зачитує лічильники байтів цих правил. Він скидає лічильники та оновлює обліковий запис точки трафіку користувача в нашій базі даних PostgreSQL.

Якщо баланс точок користувача зменшується нижче певного порогу, для цього користувача створюються два класи tc (один для вхідного, один для вихідного інтерфейсу на нашому маршрутизаторі шлюзу), IP-адреси вводяться у фільтри tc, що належать до цих класів. Класи обмежені швидкістю HTB.

У порівнянні з попередньою системою, fprobe-ulogі ulog-acctdце набагато швидше, оскільки підрахунок байтів здійснюється iptables.

Швидкість мережі значно покращилась для наших користувачів.

Відповіді:


2

Я не впевнений, наскільки ви зацікавлені в переконфігуруванні всієї настройки (тобто заміні Debian), або наскільки можливо було б розмістити щось подібне за вашим шлюзом, але FreeBSD має функцію в ipfw, відому як dummynet . Оскільки це здається, що вам не подобається отримати спеціальний формувач апаратного руху, це може бути для вас варіантом. В даний час ми використовуємо його для задушення вхідного та вихідного трафіку SMTP через один з наших проксі-шлюзів, щоб запобігти перевантаженню системи старішого резервного сервера NFS і згодом стати невідповідною.

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


0

Мені доведеться запитати, чим ми користуємось, але наші ResTek мають пристрій на кордоні Інтернету, який виконує функції обслуговування. Він має пріоритет за замовчуванням для некласифікованих потоків і надає пріоритет іншому трафіку на основі правил. Ця функція є пріоритетною, яка реально продає її, оскільки вони також керують кластером кешування на основі кальмарів, який вказаний як найвищий пріоритет у прикордонному пристрої. Тоді користувачі в їхній мережі мають вибір веб-серфінгу за стандартним (і дещо смішним) пріоритетом, або користуються проксі-сервером і отримують дуже непростий відгук. Вони також приймають запити на пріоритет ігрового сервера, оскільки вони, звичайно, чутливі до затримки, але низької пропускної здатності.

Існує велика кількість роботи з обробкою запитів ігрових серверів, але вони поволі йдуть убік, оскільки все більше і більше ігор віддаляються від приватних серверів. В цілому я чую, що це працює досить добре для них. Вони можуть уберегти такі речі, як bittorrent, щоб не перевантажувати увесь інший трафік, а також зберігати швидкість завантаження YouTube на YouTube.


0

З цим багатьма користувачами більшість простих програм на основі програмного забезпечення почне руйнуватися.

Розглянемо, як подивитися на пакети та подібні пристрої. У наші дні вони майже дорожчі, ніж просто купівля більшої пропускної здатності (У США та Європі у нас, бідних людей в Австралії, все ще дуже високі показники).


На жаль, ми не можемо дозволити собі інвестувати в це багато грошей, ні для виділення спеціальної форми пакетів, ні для збільшення пропускної здатності. Наша система працює на даний момент, питання полягає в тому, як замість блокування користувачів, які перевищили їх виділений трафік, ми можемо лише зменшити доступну їм пропускну здатність.
Крістоф Вурм

0

dummynet - це дуже гарна пропозиція на мою думку. Але я впевнений, що iptables також здатні формувати трафік , так що ви можете просто зробити це на своєму вікні debian.


0

tc повинен працювати добре .. Я вважаю, що ви хочете зробити, це змінити ваші поточні правила iptables, щоб позначити, а не відхиляти трафік, тоді ви можете використовувати невелику кількість правил tc, щоб застосувати форму трафіку до цих позначених потоків.

також перегляньте ipset для керування списком заглушених користувачів http://ipset.netfilter.org/


0

Trafficpanel, здається, є рішенням. Серед інших особливостей:

  • Обмеження максимальної швидкості HTTP на з'єднання
  • Обмеження загального обсягу трафіку веб-ресурсів на хоста локальної мережі
  • Журнал Інтернет-трафіку на хоста локальної мережі
  • Обмеження максимальної швидкості руху на хоста локальної мережі
  • Обмеження загальної кількості інтернет-трафіку на хоста локальної мережі

Насправді, ніколи цього не пробував, але виглядає нормально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.